Nel precedente articolo abbiamo visto come espandere il profilo utente di Joomla, oggi vediamo come fargli apparire dentro un articolo. Utilizzeremo la tecnica del ovveride del template.
Come effettuare l’ovveride del template
Per visualizzare questi dati dobbiamo modificare il codice che ci consente la visualizzazione del singolo articolo in Joomla, avendo tutto il codice del CMS è semplicissimo, ma al primo aggiornamento rischiamo di perderci la modifica.
Per evitare questo, il team di sviluppo di Joomla ha strutturato il codice per poter intervenire sulla visualizzazione di moduli e componenti, senza rischiare però di perdere le nostre modifiche al primo aggiornamento.
Copiamo il file default.php presente in components/com_content/views/article/tmpl/ della nostra istallazione di Joomla, e incolliamolo in templates/NOMETEMPLATE/html/com_content/article/. Sicuramente è necessario creare le sotto cartelle com_content/article/ .
L’inserimento della descrizione nell’articolo
Editiamo il file appena copiato, con un editor di testo, cerchiamo la riga che contiene il seguente codice <?php echo $this->item->text; ?> (dovrebbe essere contenuto nella riga 177), creiamo sotto una nuova riga e copiamoci il seguente codice.
<p>
<?php
$cparams = JComponentHelper::getParams ('com_media');
jimport('mosets.profilepicture.profilepicture');
$profilepicture = new ProfilePicture($this->item->created_by);
// Carico i dettagli del profilo dell'autore
$db = JFactory::getDbo();
$db->setQuery(
'SELECT profile_key, profile_value FROM #__user_profiles' .
' WHERE user_id = '.$this->item->created_by." AND profile_key LIKE 'profile.%'" .
' ORDER BY ordering'
);
$results = $db->loadRowList();
$user_profile = array();
foreach ($results as $v)
{
$k = str_replace('profile.', '', $v[0]);
$user_profile[$k] = json_decode($v[1], true);
if ($user_profile[$k] === null)
{
$user_profile[$k] = $v[1];
}
}
if (substr ($user_profile['website'], 0, 4) == "http"){
$url = '<a href="'.$user_profile['website'].'">Sito Web</a>';
}else{
$url = '<a href="http://'.$user_profile['website'].'">Sito Web</a>';
}
//Stanpo l'immagine del profilo
if ($profilepicture->exists()){
echo '<img src="'.$profilepicture->getURL(50).'" alt="'.$this->item->author.'" width="50" height"50" align="left" />';
}
//visualizzo il profilo utente, il sito web e il bio dell'autore
echo 'Profilo Autore:' .$this->item->author .' - ' . $url .'<br>';
echo $user_profile['aboutme'];
?>
</p>
Visualizzando un articolo dal front end di Joomla, se abbiamo eseguito correttamente i passaggi precedenti, dovremmo vedere il mini profilo dell’autore. Andando a modificare il codice e lavorando con il CSS del proprio template è possibile renderlo graficamente ancora più gradevole.
Oltre alle informazioni che ho utilizzato nel mio codice di esempio, è possibile recuperarne altre, di seguito l’elenco completo dei campi messi a disposizione dal plugin User - Profile.
$user_profile['address1']
$user_profile['address2']
$user_profile['city']
$user_profile['region']
$user_profile['country']
$user_profile['postal_code']
$user_profile['phone']
$user_profile['website']
$user_profile['favoritebook']
$user_profile['aboutme']
$user_profile['dob']
Se vuoi scoprire qualche nuovo trucco per personalizzare il tuo sito realizzato con Joomla resta aggiornato iscrivendoti ai feed RSS o tweeter o alla fan page.
Se hai un dubbio su come aggiungere le informazioni aggiuntive sull’autore non esitare a chiedere, lasciando un commento.