Profilo, campi uomo donna dinamici
Salve a tutti,
sono nuovo del portale e di drupal; mi sto cimentando nella realizzazione di un piccolo sito con drupal 7, ho già realizzato alcune pagine, suddiviso i permessi e personalizzato il form di registrazione e profilo. A proposito del profilo, ho inserito il campo selezionabile uomo o donna, obbligatorio, tuttavia vorrei fare in modo che la selezione di questo campo, in automatico, mi vada ad impostare un'immagine utente predefinita, appunto uomo o donna, in base al sesso indicato, potreste indicarmi la via?
Magari anche un modo per poter differenziare i colori del nome utente o altri suggerimenti.
Ho provato a creare due OG maschio e femmina, ma non riesco comunque a relazionare l'OG con l'utente in fase di registrazione.
Grazie,
Pask

Risposte
Ciao, un'idea come base di
Ciao, un'idea come base di partenza potrebbe essere l'utilizzo delle funzioni preprocess del nome utente e dell'immagine del profilo, rispettivamente template_preprocess_username (http://api.drupal.org/api/drupal/includes%21theme.inc/function/template_...) e template_preprocess_user_picture (http://api.drupal.org/api/drupal/modules%21user%21user.module/function/t...), effettuandone l'override all'interno del template.php del tuo tema e modificandone l'output.
Ciao, grazie della risposta.
Ciao,
grazie della risposta. Al momento sono davvero ancora alle prime armi con drupal, potresti guidarmi un pò oppure indicarmi una qualche guida? Per quanto riguarda l'opzione che da l'immagine predefinita nel profilo, la lascio attiva o la disattivo?
Grazie,
Pask
Ti posto un pò di materiale
Ti posto un pò di materiale di prova.
Ho implementato nel template la funzione template_preprocess_username nel template.php così (nb il campo del profilo l'ho nominato "sesso" ed ha due valori M e F, obbligatorio):
<?phpfunction bartikclone_preprocess_username(&$variables) {
$account = user_load($variables['account']->uid);
$sesso = field_get_items('user', $account, 'field_sesso');
$sesso = array_pop($sesso);
if (isset($sesso['value'])) {
$variables['attributes_array']['class'][] = ($sesso['value'] == 'M' ? 'maschio' : 'femmina');
}
}
?>
il nome del tema è bartikclone (clonato per non modificare l'originale che fa parte del core!!) il pattern è quindi [nometema]_preprocess_username.
Poi ho aggiunto nel css (nello specifico del mio caso è il file style.css)
.username.maschio {padding: 0 0 0 25px;
background: url(maschio.png) no-repeat center left transparent;
}
che non fa altro che aggiungere un'icona vicino al link del nome utente.

Dopo aver pulito la cache di Drupal (altrimenti non leggerà la nuova funzione all'interno del tema e forse nemmeno il css se attiva l'aggregazione), dovresti ottenere questo postando una pagina con un utente che ha selezionato il tipo "Maschio".
Spero ti possa essere utile!