Supporto volontario e collaborativo per Joomla!® in italiano

Come semplificare il form di registrazione di Joomla

Valutazione attuale: 5 / 5

Stella attivaStella attivaStella attivaStella attivaStella attiva
 
codice
Abbiamo visto nell'articolo Creazione di articoli: come semplificare la vita agli autori come eliminare i campi in fase di inserimento di un articolo per renderne più semplice l'utilizzo. Vediamo ora come semplificare il form di registrazione di Joomla diminuendo il numero di campi per velocizzare la registrazione.


Il form di registrazione di default prevede la compilazione di 6 campi:



Possiamo ridurre a soli 3 campi questo form.

Creiamo l'override del template:
- andiamo in Estensioni > Template > Lista template
- clicchiamo su Protostar dettagli e files
- andiamo sul tab Crea override
- nella colonna Componenti clicchiamo su com_users > registration



Andiamo ora nel tab Editor e su html > com_users >registration > default.php
Clicchiamo sul file e cerchiamo il codice
JHtml::_('behavior.formvalidator');



Posizioniamo il cursore del mouse sotto a questo codice e copiamo ed incolliamo questa parte:
/*** Begin Registration Form Override ***/
 
$doc = JFactory::getDocument();
 $js = "
        jQuery(document).ready(function($){
             // Define the variables
            var regForm     = $('#member-registration');
            var name        = regForm.find('#jform_name');
            var password    = regForm.find('#jform_password1');
            var password2   = regForm.find('#jform_password2');
            var email       = regForm.find('#jform_email1');
            var email2      = regForm.find('#jform_email2');
            // Hide the required field, star, name, confirm pass and confirm email
            regForm.find('.spacer').parents('.control-group').hide();
            regForm.find('.star').hide();
            name.parents('.control-group').hide();
            password2.parents('.control-group').hide();
            email2.parents('.control-group').hide();
             // Add a default value to the name field
            name.val('Anonymous');
             // Clone password and email values to the confirm fields
            email.on('keyup', function() {
                email2.val( this.value );
            });
            password.on('keyup', function() {
                password2.val( this.value );
            });
         });    
    ";    
$doc->addScriptDeclaration($js);

/*** Finish Registration Form Override ***/

Salviamo e andiamo a vedere come appare ora il form di registrazione in fronend (ovviamente il parametro per che abilita la registrazione utenti deve essere attivo nelle opzioni):



Come vedete abbiamo ridotto notevolmente il numero dei campi di registrazione, ora sono solo 3, non è più necessario inserire il nome e ripetere la password e l'email.
Questo override tuttavia assegnerà a tutti gli utenti che si registrano al sito il nome Anonymous, forse sarebbe più utile inserire in quel campo ad es. l'email, oppure lo stesso nome utente inserito in fase di registrazione.
Oltretutto se in amministrazione cerchiamo dei contenuti filtrando per Autore, apparirà nel menù a tendina del filtro il Nome, non il Nome utente, quindi avere tutti gli utenti con lo stesso nome può creare qualche difficoltà di gestione.



Anche il modulo login in frontend saluterà ogni utente con un poco personale "Ciao Anonymous".
Per ovviare a questo problema possiamo sostituire la parte di codice precedentemente inserita con questa:

/*** Begin Registration Form Override ***/
 
$doc = JFactory::getDocument();
 $js = "
        jQuery(document).ready(function($){
             // Define the variables
            var regForm     = $('#member-registration');
            var name        = regForm.find('#jform_name');
            var password    = regForm.find('#jform_password1');
            var password2   = regForm.find('#jform_password2');
            var email       = regForm.find('#jform_email1');
            var email2      = regForm.find('#jform_email2');
            // Hide the required field, star, name, confirm pass and confirm email
            regForm.find('.spacer').parents('.control-group').hide();
            regForm.find('.star').hide();
            name.parents('.control-group').hide();
            password2.parents('.control-group').hide();
            email2.parents('.control-group').hide();
             // Add a default value to the name field
            email.on('keyup', function() {
                name.val( this.value );
            });
             // Clone password and email values to the confirm fields
            email.on('keyup', function() {
                email2.val( this.value );
            });
            password.on('keyup', function() {
                password2.val( this.value );
            });
         });    
    ";    
$doc->addScriptDeclaration($js);

/*** Finish Registration Form Override ***/


In questo modo non avremo più il termine Anonymous nel nome di ogni utente ma sarà inserito l'indirizzo mail del relativo utente.

E' comunque richiesta molta attenzione nell'attuare queste modifiche ad una parte tanto sensibile del codice del CMS. Non è ovviamente consigliata su siti di tipo "Community" dove è presente un elenco pubblico degli utenti o dove il nome utente viene utilizzato per pubblicare articoli o post su forum ecc...
Mentre può essere utile per siti di ecommerce o simili dove è importante limitare al massimo gli "ostacoli" per la conversione e dove non avviene alcuna pubblicazione online dei dati dell'utente.


Fonte: How to Simplify the Joomla Registration Form

 

CommentaCommenta questo articolo sul forum

Ultima versione di Joomla!®

downloadVer. 3.7.2 Stabile Italiana
Data di rilascio: 23 Maggio 2017
(leggi la notizia Demo online

Le migliori estensioni gratuite

Un elenco aggiornato con i link a più di 100 estensioni fra componenti, moduli e plugin gratuiti per Joomla! 3

Manuale in italiano

Manuale in italianoPer conoscere meglio Joomla!, le sue caratteristiche ed il metodo di utilizzo leggi il manuale tradotto in italiano.

Molto utili anche le risposte alle domande più frequenti: FAQ

Sicurezza del proprio sito Joomla!Leggi anche: Nozioni sulla sicurezza del proprio sito

Autori di articoli recenti

Invia un articolo!Scrivi un articolo su Joomla.it e ricevi i ricavi dalle pubblicità di Google Adsense!
Segui queste istruzioni, condividi e collabora con la community. L'elenco degli autori attivi sul sito.

Libri consigliati

Torna su

Joomla.it sui Social Network

JoomlaDay Italia

JoomlaDay

Newsletter

Inserisci qui la tua e.mail: