Supporto volontario e collaborativo per Joomla!® in italiano

Personaliziamo il plug in user_profile di joomla 2.5

Sviluppo

Joomla 2.5 porta in seno un plug-in poco conosciuto che si chiama user_profile. La funzione di questo plug-in è quella di avere una serie di campi supplementari che vorremmo far compilare al nostro utente; un campo per un numero di telefono in più, un secondo indirizzo, l'accettazione di qualche clausaula o i termini e le condizioni del sito, la privacy, la data di nascia ed altri utili campi.



Molti di questi campi possono essere modificati semplicemente agendo sulla traduzione del campo, editando le stringhe della traduzione o meglio utilizzando un override per la lingua.

User_profile di default è disattivato, quindi attiviamolo nella gestione dei plug di joomla, entrando dentro per scoprire le meraviglie che nasconde.

Sulla destra possiamo vedere le Opzioni di base con al suo interno due sezioni, Campi profilo utente per la registrazione e il form utente amministrativo e Campi profilo utente per il form di modifica del profilo.

Nel primo riquadro possiamo impostare quali di questi campi desideriamo rendere disponibili, decidendo anche cosa sarà obbligatorio compilare e cosa facoltativo. Nel riquadro sotto invece possiamo scegliere quali di questi campi rendere disponibili nella scheda account dell'utente per una eventuale modifica.

Fin qui niente di particolarmente macchinoso, ma adesso sappiamo come intervenire se desideriamo che durante l'iscrizione del nostro utente vogliamo che ci indichi delle informazioni supplementari, potendo anche far accettare termini e condizioni d'uso abilitando la i termini di utilizzo e collegandolo ad un articolo creato all'uopo!

Vediamo adesso come rendere più interessante questo plug-in in caso volessimo qualcosa di diverso. Per fare questo duplicheremo il nostro plug-in, e per gli utenti amanti del step by step iniziamo con la prima fase:

Creiamo una cartella sul nostro desktop e chiamiamola profile_v2
Accediamo con il nostro client FTP alle cartelle di Joomla sul nostro server, e andiamo dunque in plugins/user/profile, copiado tutti i file e le cartelle contenute in /profile nella cartella sul nostro desktop appena creata profile_v2.

Sempre nel nostro sito scarichiamo da administrator/language/it-IT i seguenti file:

it-IT.plg_user_profile.ini
it-IT.plg_user_profile.sys.ini


Li rinominiamo in it-IT.plg_user_profile_v2.ini e it-IT.plg_user_profile_v2.sys.ini e li trasferiamo in administrator/language/it-IT

Dentro questi file ci sono le traduzioni relative al plug-in, quindi se aveste bisogno di utilizzarlo in un sito multilingua vi basterà scaricare, rinominare e ritrasferire i rispettivi file nelle lingue che avrete installato nel sito.

Il prossimo passo sarà quello di rinominare tutte le occorrenze di profile con profile_v2 nei file profile.xml e profile.php , il naming è fondamentale in joomla, quindi fate attenzione!

   
    per il file profile.xml
    Rinominiamo profile.xml in profile_v2.xml
    LINEA 3: plg_user_profile_v2
    LINEA 14: profile_v2.php
    LINEA 19: it-IT.plg_user_profile_v2.ini
    LINEA 20: it-IT.plg_user_profile_v2.sys.ini

    per il file profile.php
    Rinominiamo profile.php in profile_v2.php
    LINEA 18: class plgUserProfile_v2 extends JPlugin

Adesso creiamo un archivio ZIP di tutta la cartella profile_v2 e installiamo il nostro nuovo plug-in profile_v2.zip da gestione estensioni come un normale plug-in, dopodiché se è abilitato, disabilitiamo il plugin User Profile standard ed abilitiamo il nostro User Profile_v2 appena installato.

Vi consiglio a questo punto di fare una rapida verifica per controllare che ciò che abbiamo fatto finora è perfettamente funzionante; configurando da back-end il user_profile_v2 e andando nel front-end a registrasi con un nuovo nome. Se tutto funziona andiamo avanti.

Inseriamo un nuovo campo

Aggiungiamo un nuovo campo select, ad esempio il campo"operatore" per far inserire l'operatore telefonico che utlizzano i nostri utenti. Naturalmente possiamo inserire tutto ciò che vogliamo nella select, città, province, regioni, marca di auto e qualsiasi cosa vi passi per la testa.

Per prima cosa editiamo il file:

/plugins/user/profile_v2/profiles/profile.xml

All’interno del file XML, come possiamo notare, troviamo dichiarati tutti i campi attualmente disponibili per un’utente, ogni campo è identificabile dal tag <field.......> .

Nel punto dove più ci piace, ad esempio nel nostro caso sotto al field phone, inseriamo il nuovo campo operatore, andando a scrivere questo pezzo di codice:

<field
name=”operatore“
description=”operatore“
filter=”string”
label=”operatore“
message=”PLG_USER_PROFILE_FIELD_WEB_SITE_MESSAGE”
size=”30″
>
<option value=”fastweb”>fastweb</option>
<option value=”tiscali”>tiscali</option>
<option value=”infostrada”>infostrada</option>
<option value=”telecom”>telecom</option>
<option value=”altro”>altro</option>
</field>
In <option> abbiamo inserito le voci che vorremmo vedere in un menù a tendina, che possono essere 2 o più, nell’esempio sopra abbiamo inserito un campo per identificare l'operatore che l'utente sceglierà.

Ora rendiamo il nostro campo “configurabile” da back-end, ovvero come succede per gli altri user profile fields, inseriamo il codice necessario a configurare il campo come Opzionale, Obbligatorio o Disabilitato.

Editiamo quindi il file:

plugins/user/profile_v2/profile_v2.php

intorno alla riga 71 aggiungendo il campo “operatore” nell’arrey in questo modo:

$fields = array(
‘address1′,
‘address2′,
‘city’,
‘region’,
‘country’,
‘postal_code’,
‘phone’,
‘operatore’,
‘website’,
‘favoritebook’,
‘aboutme’,
‘tos’,
‘dob’,
);

Adesso editiamo il file:

plugins/user/profile_v2/profile_v2.xml

in 2 punti:
Il primo pezzo di codice servirà per visualizzare il form lato registrazione e lato amministrazione
Il secondo pezzo di codice servirà per dare la possibilità di modifica da parte dell’utente una vola fatto il login.

Per il primo punto scriviamo intorno alla riga 100 questo codice:

<field “name”=register-require_operatore” type=”list”
description=”operatore”
label=”operatore”
>
<option value=”2″>JOPTION_REQUIRED</option>
<option value=”1″>JOPTION_OPTIONAL</option>
<option value=”0″>JDISABLED</option>
</field>

 


Per il secondo punto nello stesso file intorno alla riga 320,
o comunque cercando di rispettare un certo ordine:

<field “name”=profile-require_operatore” type=”list”
description=”operatore”
label=”operatore”
>
<option value=”2″>JOPTION_REQUIRED</option>
<option value=”1″>JOPTION_OPTIONAL</option>
<option value=”0″>JDISABLED</option>
</field>

 


Se volete inserire ulteriori campi si procede allo stesso modo decidendo se inserire dei semplici campi di testo come il dodice che riporto più sotto, dei radio button, dei checkBox o altro.

Questo il codice per inserire un campo di testo:

<field
name=”mio_campo_personalizzato“
description=”mio_campo_personalizzato“
filter=”string”
label=”mio_campo_personalizzato“
message=”PLG_USER_PROFILE_FIELD_WEB_SITE_MESSAGE”
size=”30″
/>

 

 

Questo plug-in potrebbe servirvi per implementare i vostri campi nel momento della registrazione o semplicemente essere un punto di partenza per capire come è fatto, potendolo implemetare ad esempio con select agganciate ad un tipo di gruppo, per far si che chi si registra decida di far parte del gruppo "PIPPO" o del gruppo "TOPOLINO"

Questa la discussione creata per domande e chiarimenti.

 

Giusebos



CommentaCommenta questo articolo sul forum