La classe SiteMenu ne fournit aucune méthode pour extraire la colonne du titre du menu de la table * _menu_types. Toutefois, ce champ est modifiable dans la section admin (section com_menus, champ 'title').
Existe-t-il un autre moyen que d'interroger la base de données pour extraire ce champ (tel qu'il est codé dans cpanel)?
Si non, quelqu'un a-t-il un exemple de code avec une requête de base de données?
Merci !
Vous pouvez obtenir l'alias de l'élément de menu actuel comme suit:
$alias = JFactory::getApplication()->getMenu()->getActive()->alias;
$active = JFactory::getApplication()->getMenu()->getActive();
var_dump($active);
ou
//(int)$id - the actual itemid you want to get;
$specificMenuItem = JFactory::getApplication()->getMenu()->getItem($id);
var_dump($specificMenuItem);
Voir: API JMen
Juste au cas où cela pourrait aider quelqu'un, voici comment je l'ai réalisé:
$menu = $app->getMenu();
$active_item = $menu->getActive();
$loader = function ($menu_type) {
$db = \JFactory::getDbo();
$result = null;
$query = $db->getQuery(true)
->select('m.id, m.menutype, m.title, m.description')
->where("m.menutype = '{$menu_type}'")
->from('#__menu_types AS m');
$db->setQuery($query);
$list = $db->loadObjectList();
if(count($list)) $result = array_shift($list);
return $result;
};
$menu = $loader($active_item->menutype);
$menu_title = $menu->title;