[英]how to get joomla menu object based on name?
這個問題只針對joomla。
我知道是否可以使用代碼$menu = &JSite::getMenu()
獲得完整菜單的引用對象。 但是如何根據名稱獲取特定菜單?
我的場景:我的頁腳菜單包含以下項目:主頁| 關於我們| 規則| 隱私政策。
我需要在組件中顯示兩個菜單項“規則”和“隱私策略”的鏈接。 我不能對鏈接進行硬編碼,因為itemid在開發和生產環境中會有所不同。
我們是否有一些解決方法,例如$menu = &JSite::getMenu()->get('footer-menu')->getMenuItem('rules');
這可以使我將對象指向特定菜單項,從中可以為該特定文章創建鏈接。
謝謝,坦美
方法1:
$menu = & JSite::getMenu();
$item = $menu->getItems('link', 'index.php?option=com_content&view=article&id=1', true);
方法2:
$menu = & JSite::getMenu();
$item = $menu->getItems('alias', 'rules', true);
據我所知,沒有內置的方法可以做到這一點。 但是我感到你的痛苦。
這是我之前構建的功能的改編。 它不是遞歸的,所以您只會在菜單層次結構中深入一層,但這對我來說已經足夠了。
function getMenuItems( $parentAlias ) {
$db =& JFactory::getDBO();
$sql = 'SELECT * FROM #__menu WHERE parent in ' .
'(SELECT id FROM #__menu WHERE alias='.$db->Quote($parentAlias).') '.
'AND published=1 ORDER BY ordering';
$db->setQuery($sql);
$results = $db->loadObjectList();
}
讓我知道這是否適合您。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.