Back to top

Autore Topic: [RISOLTO] Info aggiuntive in voce di menu "Singolo contatto"  (Letto 1161 volte)

Offline rds89

  • Esploratore
  • **
  • Post: 117
  • Sesso: Maschio
    • Mostra profilo
In un menu ho una serie di voci di tipo "Singolo contatto" che visualizzano i nomi dei vari contatti.
Vorrei che, oltre a visualizzare i nomi dei contatti, in ogni voce di menu compaiano nome e ruolo del contatto.
Come posso attuare una cosa del genere?
« Ultima modifica: 02 Gen 2012, 19:43:31 da rds89 »

Offline matty80

  • Global Moderator
  • Instancabile
  • ********
  • Post: 3974
  • Sesso: Maschio
    • Mostra profilo
Re:Info aggiuntive in voce di menu "Singolo contatto"
« Risposta #1 il: 02 Gen 2012, 17:04:23 »
c'è già standard nel modulo contatti di joomla!!
Chi non ha mai posseduto un cane, non sa cosa significhi essere amato. Arthur Schopenhauer

Offline rds89

  • Esploratore
  • **
  • Post: 117
  • Sesso: Maschio
    • Mostra profilo
Re:Info aggiuntive in voce di menu "Singolo contatto"
« Risposta #2 il: 02 Gen 2012, 17:10:41 »

Forse non mi sono spiegato bene. Non intendo fare in modo che nella pagina di visualizzazione di un contatto appaia il ruolo. Voglio che il ruolo appaia accanto alla voce di menu che redirige verso la pagina che mostra le informazioni su quel contatto.


Offline rds89

  • Esploratore
  • **
  • Post: 117
  • Sesso: Maschio
    • Mostra profilo
Re:Info aggiuntive in voce di menu "Singolo contatto"
« Risposta #3 il: 02 Gen 2012, 17:43:08 »
Ho iniziato ad indagare nel codice, arrivano al file modules/mod_menu/default_component.php, che è lo script responsabile della stampa nella pagina di ogni singola voce di menu.
$item è la voce di menu presa in esame
$linktype = $item->title è il titolo della voce di menu, ovvero il testo visualizzato.


Quello che bisogna fare è aggiungere alla stringa $linktype il ruolo del contatto.
Per fare questo bisogna innanzitutto verificare che la voce di menu sia di tipo "Singolo articolo".
Dovrebbe esistere un metodo in $item che permetta di capire questo, ma la documentazione ufficiale di Joomla nasconde questi dettagli.

Offline rds89

  • Esploratore
  • **
  • Post: 117
  • Sesso: Maschio
    • Mostra profilo
Re:Info aggiuntive in voce di menu "Singolo contatto"
« Risposta #4 il: 02 Gen 2012, 19:42:36 »
Ho risolto facendo un override nel template del file default_component.php del modulo mod_menu.
Per chi fosse interessato, ho aggiunto il seguente codice che, a partire dal link, recupera l'id del contatto. Successivamente, effettua una query sul database in modo da reperirne il ruolo. La soluzione non credo sia molto ortodossa, ma per il mio scopo va più che bene.
Codice: [Seleziona]
//$linktype è la stringa che viene stampata come voce di menu.
//Modifico $linktype soltanto nel caso in cui il menu è di tipo "Singolo contatto"
$url = $item->link;
$pos = strpos($url, 'com_contact');
$toAdd = "";
if ($pos != false) {   //La voce di menu è di tipo "Singolo articolo"
   //Rilevo l'identificativo del contatto
   $subFromId = strstr($url, 'id=');   
   $posEndId = strpos($subFromId, '&');
   if ($posEndId != false)
      $identificativo = substr($subFromId, 3, $posEndId-3);
   else
      $identificativo = substr($subFromId, 3);
   
   $db = JFactory::getDbo();
   $query = $db->getQuery(true);
   $query->select('con_position');
   $query->from('#__contact_details');
   $query->where('id='.$identificativo);
   $db->setQuery($query);
   $data = $db->loadResult();
   
   if ($data!="")
      $linktype .= '<div class="contact-role">' . $data . '<>';
}

 



Web Design Bolzano Kreatif