Pagina 1 di 1
iscrizione utente x gruppo
Inviato: 12/07/2011, 11:33
da ale206
Ciao a tutti, sono nuovo e spero sia questa la sezione adatta al mio problema.
Sto creando un forum in cui ci saranno diverse aree di discussione e diversi gruppi di utenti.
Ad esempio ci sarà l'area discussione per giornalisti, l'area per programmatori, l'area per negozianti, etc...
Quindi gli utenti registrati saranno divisi in gruppi (giornalisti, programmatori, negozianti, etc...) ed ognuno dovrà visualizzare solo la propria area.
Quello che vorrei è che durante la registrazione di un nuovo utente gli venga chiesto di scegliere il gruppo di appartenenza, in modo da applicargli automaticamente tutte le autorizzazioni che gli appartengono.
E' possibile implementare questa funzionalità?
Se si, come devo fare?
Grazie.
Re: iscrizione utente x gruppo
Inviato: 12/07/2011, 11:36
da Carlo
Re: iscrizione utente x gruppo
Inviato: 12/07/2011, 15:08
da ale206
Grazie.. ho scaricato e installato il modulo solo che è come se mancasse un pezzo: il menu a tendina con l'elenco dei gruppi che l'utente deve scegliere in fase di registrazione.
Premetto che esistono già dei gruppi e nel nuovo menu "Groups on registration" ho aggiunto due gruppi di prova all'elenco.
Ho notato che è come se mancasse un pezzo di codice nel file \cache\tpl_prosilver_ucp_register.html.php che genera appunto il menu...
ad esempio il menu dell'elenco delle lingue viene generato da:
<dl>
<dt><label for="lang"><?php echo ((isset($this->_rootref['L_LANGUAGE'])) ? $this->_rootref['L_LANGUAGE'] : ((isset($user->lang['LANGUAGE'])) ? $user->lang['LANGUAGE'] : '{ LANGUAGE }')); ?>:</label></dt>
<dd><select name="lang" id="lang" onchange="change_language(this.value); return false;" tabindex="6" title="<?php echo ((isset($this->_rootref['L_LANGUAGE'])) ? $this->_rootref['L_LANGUAGE'] : ((isset($user->lang['LANGUAGE'])) ? $user->lang['LANGUAGE'] : '{ LANGUAGE }')); ?>"><?php echo (isset($this->_rootref['S_LANG_OPTIONS'])) ? $this->_rootref['S_LANG_OPTIONS'] : ''; ?></select></dd>
</dl>
Manca invece il codice che genera il menu chiamato "reg_group_id" già presente nel file ucp_register.html.
Grazie del supporto...
Re: iscrizione utente x gruppo
Inviato: 12/07/2011, 18:13
da Carlo
Hai effettuato tutte le modifiche? Hai svuotato la cache?
Re: iscrizione utente x gruppo
Inviato: 13/07/2011, 8:17
da ale206
si.. ho seguito le istruzioni del file install.xml
Re: iscrizione utente x gruppo
Inviato: 13/07/2011, 8:51
da ale206
Forse ci sono riuscito:
ho creato un nuovo Campo Personalizzato Profilo (menu a tendina)...
Ora appare in fase di registrazione.
Grazie ancora.
Re: iscrizione utente x gruppo
Inviato: 13/07/2011, 11:22
da ale206
Come non detto... vi scrivo qui quello che ho fatto.
Creo dei gruppi dalla sezione GRUPPI -> Gestione Gruppi
Vado in Group on Registration. Se clicco su Add Group mi aggiunge correttamente i gruppi (vedo GROUP ID e GROUP NAME) ma non vedo questo elenco in fase di registrazione utente.
Allora ho provato creando un menu a tendina da "Campi personalizzati Profilo" con 3 voci (i nomi dei miei 3 gruppi).
In Group on Registration vado alla sezione Groups based on custom profile fields.
Vado su Add cpf based groups.
Scelgo il nome del Gruppo (Group Name) sopra, e lo associo con il profilo appropriato (Custom Profile fields option value) sotto.
(In questo Custom Profile fields option value non visualizzo tutte le voci che ho scritto (le visualizzo tutte meno una casuale) ma questo è un problema che affronterò dopo)
Così facendo vedo il menu in fase di registrazione ma inserendo i dati e cliccando su "Invia" mi compare questo errore:
SQL ERROR [ mysql4 ]
Unknown column 'Array' in 'where clause' [1054]

Re: iscrizione utente x gruppo
Inviato: 13/07/2011, 15:44
da ale206
Posto la soluzione.. potrebbe servire a qualcuno in futuro...
Utilizzando il template "prosilver" non viene inserito durante l'installazione automatica quel pezzo di codice che genera l'elenco dei gruppi. Cosa che avviene invece utilizzando il template "subsilver2".
Basta aggiungere quindi il seguente codice nel file \cache\tpl_prosilver_ucp_register.html.php prima di </fieldset>:
Codice: Seleziona tutto
<dl>
<dt><label><?php echo ((isset($this->_rootref['L_GROUPS_ON_REGISTRATION'])) ? $this->_rootref['L_GROUPS_ON_REGISTRATION'] : ((isset($user->lang['GROUPS_ON_REGISTRATION'])) ? $user->lang['GROUPS_ON_REGISTRATION'] : '{ GROUPS_ON_REGISTRATION }')); ?>:
<?php if ($this->_rootref['S_GROUPS_REQUIRED']) { ?>*<?php } ?>
</label><br /><span><?php echo (isset($this->_rootref['GROUPS_REGISTRATION_EXP'])) ? $this->_rootref['GROUPS_REGISTRATION_EXP'] : ''; ?></span></dt>
<dd><?php if ($this->_rootref['S_GROUPS_ON_REG_MULTIPLE']) { ?>
<div style="height: 6em; width: 12em; overflow: auto;"><?php echo (isset($this->_rootref['S_GROUP_MULTIPLE_OPTIONS'])) ? $this->_rootref['S_GROUP_MULTIPLE_OPTIONS'] : ''; ?></div>
<?php } else { ?><select name="reg_group_id" id="reg_group_id" class="autowidth"><?php echo (isset($this->_rootref['S_GROUP_OPTIONS'])) ? $this->_rootref['S_GROUP_OPTIONS'] : ''; ?></select>
<?php } ?></dd>
</dl>
Re: iscrizione utente x gruppo
Inviato: 13/07/2011, 22:09
da Carlo
Ma quello è un file di cache. Quando svuoti la cache, o quando il file di cache scade, viene rigenerato.