it-swarm.com.de

Wie erhalte ich den eigentlichen Titel eines Menütyp-Objekts?

Die SiteMenu-Klasse bietet keine Methode zum Abrufen der Menü-Titelspalte aus Tabelle * _menu_types. Dieses Feld kann jedoch im Admin-Bereich bearbeitet werden (com_menus-Bereich, Feld 'title').

Gibt es eine andere Möglichkeit als die Datenbank abzufragen, um dieses Feld abzurufen (wie in cpanel codiert)?

Wenn nicht, hat jemand einen Beispielcode mit DB-Abfrage?

Vielen Dank !

2

Sie können den aktuellen Menüpunkt-Alias ​​folgendermaßen abrufen:

$alias  = JFactory::getApplication()->getMenu()->getActive()->alias;

Aktualisieren:

$active = JFactory::getApplication()->getMenu()->getActive();
var_dump($active);

oder

//(int)$id - the actual itemid you want to get;  

$specificMenuItem = JFactory::getApplication()->getMenu()->getItem($id);
var_dump($specificMenuItem);

Siehe: JMenu API

2
FFrewin

Nur für den Fall, dass es jemandem hilft, so habe ich es erreicht:

$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;
1