Joomla: recuperare l’identificativo di una voce di menu

Volendo recuperare l’identificativo di una voce di menu il codice di esempio qui sotto può essere di aiuto:

  1. $Itemid = '';
  2. $menu = &JSite::getMenu();
  3. if ( $items = $menu->getItems( 'link', 'index.php?option=com_agimm&view=elencoimmobili' ) )
  4.   foreach( $items as $menuItem )
  5.   {
  6.     if ( !$menuItem->published )
  7.      continue;
  8.  
  9.     $params = $menu->getParams( $menuItem->id );
  10.     if ( $params->get('tipo') == $immobili[0]->tipo and $params->get('id_categoria') == $immobili[0]->id_categoria )
  11.       $Itemid = $menuItem->id;
  12.   }
  • Alla linea 3 vengono recuperate le voci di menu in base al contenuto del link. Infatti il metodo getItems() di JMenu serve proprio a recuperare tutte le voci di menu corrispondenti ad un certo attributo. Il nome dell’attributo (ovvero il nome di un campo della tabella jos_menu) va indicato come primo parametro, mentre nel secondo va inserito il valore di pertinenza. Nel esempio vengono recuperate tutte le voci i cui link puntano alla view elencoimmobili del componente com_agimm.
  • Dalla linea 4 inizia il loop per ciclare le voci di menu recuperate
  • Alle linee 6 e 7 vengono saltate le voci di menu non pubblicate
  • Alle linee 9, 10 e 11  viene fatto un controllo sui parametri della voce di menu attuale e se corrisponde a quanto voluto viene preso l’id inserendolo nella variabile $Itemid

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.