Descrivo qua come ho affrontato il problema della registrazione sul portale che sto realizzando.
Si richiedeva potessero registrarsi due tipologie di utenti:
A seconda della scelta effettuata i campi da completare sarebbero risultati diversi. In particolare, con la seconda scelta, oltre ai campi per il profilo si doveva poter inserire sul portale l'azienda che l'utente rappresenta (e questa dovrà poi essere indicizzata per la ricerca).
L'utente (a qualunque profilo appartenga) doveva essere immediatamente loggato, visibile e con tutte le funzionalità; mentre l'eventuale azienda da questi inserita poteva essere visibile solo in seguito ad approvazione dalla redazione/amministrazione.
Sono stati dunque creati i seguenti ruoli per distinguere questi profili:
Moduli usati
I moduli utilizzati per raggiungere lo scopo sono stati:
Gestione utente > Permessi
e assegnare il permesso "cambia il suo nome utente" all'utente autenticato,token
per riempirlo automaticamente,Procedura
Passi da seguire:
Gestione utente > Impostazioni utente
e selezionare l'opzione "I visitatori possono creare profili e nessuna approvazione degli amministratori è richiesta". In questo modo l'utente può scegliersi direttamente la password in fase di registrazione e si trova loggato prima di dover rispondere all'email. D'altra parte potrebbe avere inserito una mail falsa o scorretta e per ovviare a questo problema si usa il modulo Login Toboggan. Sostituire anche l'email di \textit{Benvenuto} con:
!username,</li>
grazie per esserti registrato su !site.
Puoi ora effettuare l'accesso su !login_uri usando i seguenti nome utente e password:
nome utente: !mailto
password: !password
È importante che confermi la correttezza dell'email facendo clic su questo link:
!login_url
SE NON LA AUTENTICHERAI IL TUO UTENTE SARÀ CANCELLATA ENTRO UNA SETTIMANA!
-- Lo staff di !site
<strong>Pagina di registrazione (con scelta)</strong>
Scegli se vuoi registrarti come
<a href=user/register/profilepriv>PRIVATO</a>
oppure come
<a href=user/register/profileaz>AZIENDA</a>
registrazione
è un buon esempio, non lo è content/registrazione
). Questo per non creare conflitti successivamente con Auto Assign Role."edit own profile content"
. Inoltre, al momento della creazione profilo (quindi prima che l'utente sia autenticato) l'utente deve essere messo in condizione di poter modificare i campi del profilo e quindi i permessi di edit sui field del profilo vanno attribuiti anche agli utenti anonimi. Questa dunque è la parte più delicata; settare i permessi relativamente ai tipi di contenuto che dovranno gestire i vari ruoli.
Suggerimento:
Con il modulo Automatic Nodetitles si nasconde il campo titolo in una form.
Il campo titolo è quello usato anche nell'url di quel nodo.
Questo viene generato automaticamente a partire da un dato pattern.
In ogni tipo di contenuto si trova, dopo aver abilitato questo modulo, una sezione "Automatic title generation"
dove si può scegliere "Automatically generate the title and hide the title field".
Per scegliere come generarlo si può scorrere la lista dei token disponibili (http://drupal.org/node/390482).
Gestione Utente > Auto assign role > Assign from Path
in User Register Node
si inserisce la pagina che si vuole usare per sostituire la user/register
. Mettere qui il nodo di tipo Pagina creato al punto 4. Per ognuno dei ruoli che si intende usare spuntare "Attivato". Come metodo "Pages with no navigation" ed inserire path diversi a ruoli diversi (ad esempio user/register/profilepriv
e user/register/profileaz
)."(PreAutenticazione) user/register/profile"
dal tipo di contenuto Profilo Privato e "(Azienda) user/register/ecocompany"
dal tipo di contenuto Profilo Aziendale, ma anche dal tipo di contenuto Azienda.Costruzione del Sito > Temi > Configura > Impostazioni globali
c'è la voce Mostra le informazioni del contenuto su e lì si toglie la spunta da tutti i tipi di contenuto nei quali non voglio venga visualizzata la scritta "Inserito da ... il ...".Due moduli che potrebbero essere interessanti in questo contesto sono anche PageRoute e Real Name. Putroppo il primo non l'ho usato perché non sono riuscito a capire come integrarlo con quanto fatto, anzi non sono proprio riuscito a capire se sia compatibile con la fase di registrazione (lo era con Drupal 5 e il modulo Node Profile, ma sono portato a dire che da Drupal 6 Pageroute non sia utilizzabile in fase di registrazione). Real Name, invece, dovrebbe servire a sostituire, all'interno del portale, tutti i riferimenti all'utente con un field scelto dall'amministrazione (e quindi ad esempio un campo Nome_cognome
al posto del prefisso dell'email).
Trackback nella mia sezione nel blog i-ware.