Back to top

Autore Topic: [RISOLTO] Impostare automaticamente indirizzo e-mail come username  (Letto 465 volte)

Offline dgardina

  • Nuovo arrivato
  • *
  • Post: 1
    • Mostra profilo
Buongiorno a tutti,
nei giorni scorsi ho avuto la necessità di modificare il form di registrazione di Joomla! (versione 3.4.5), per evitare che in fase di iscrizione agli utenti fosse richiesto di indicare uno username e facendo in modo che al suo posto utilizzassero invece il loro indirizzo di posta elettronica, in maniera a loro del tutto trasparente.
Per fare questo ho modificato i seguenti file nel modo indicato:


/components/com_users/models/registration.php
Aggiunto il seguente codice dopo la riga 365 (ovvero nella sezione che inizia col commento "Prepare the data for the user object.")
Codice: [Seleziona]
$data['username'] = $data['email1'];Questo in pratica imposta forzatamente il campo username ad essere valorizzato con l'indirizzo mail. Il valore "email1" l'ho dedotto dal file registration.xml presente nella sottocartella "forms", che ho a sua volta modificato come segue.

/components/com_users/models/forms/registration.xml
Codice: [Seleziona]
<field
     name="username"
     type="hidden"
     class="validate-username"
     description="COM_USERS_DESIRED_USERNAME"
     filter="username"
     label="COM_USERS_REGISTER_USERNAME_LABEL"
     message="COM_USERS_REGISTER_USERNAME_MESSAGE"
     required="false"
     size="30"
     validate="username"
/>
In pratica ho impostato il campo "type=hidden" anziché "text" (per fare in modo che il campo non fosse visibile all'utente ma venisse comunque in qualche modo valorizzato automaticamente da Joomla!) e il "required=false" anziché "true" (altrimenti Joomla! restituisce un errore quando si confermano i dati cliccando sul button "Registrati" perché non trova il campo obbligatorio compilato; i valori vengono comunque poi passati prima del salvataggio nel DB).
L'inconveniente di questa procedura è che temo che durante la procedura di aggiornamento le modifiche vengano sovrascritte dai file della nuova versione, però basta avere l'accortezza di salvarsi prima la cartella /components/com_users/models/ oppure rifare le modifiche.


In alternativa a questo esistono un'estensione "*****", che però è a pagamento, oppure un'altra, "Authentication - EMail", che consente di utilizzare indifferentemente username o indirizzo email per la login, ma durante la registrazione l'utente deve comunque indicare il primo, che è però la cosa che io volevo evitare.


Spero questa breve "guida" possa essere utile a qualcuno, dato che io non ho trovato molta documentazione a riguardo in rete.

edit by mod: No a link di estensioni commerciali.
« Ultima modifica: 28 Ott 2015, 18:14:49 da tomtomeight »

 



Web Design Bolzano Kreatif