Volendo recuperare l’identificativo di una voce di menu il codice di esempio qui sotto può essere di aiuto:
$Itemid = '';
$menu = &JSite::getMenu();
if ( $items = $menu->getItems( 'link', 'index.php?option=com_agimm&view=elencoimmobili' ) )
foreach( $items as $menuItem )
{
if ( !$menuItem->published )
continue;
$params = $menu->getParams( $menuItem->id );
if ( $params->get('tipo') == $immobili[0]->tipo and $params->get('id_categoria') == $immobili[0]->id_categoria )
$Itemid = $menuItem->id;
}
- 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