簡體   English   中英

Joomla:獲取活動菜單項

[英]Joomla: get active menu item

我正在嘗試在我的joomla模板中實現自定義菜單。 我在index.php中的所需位置添加了這一行

<?php include(dirname(__FILE__).DS.'/navi.php'); ?>

navi.php看起來像這樣

<?php
defined( '_JEXEC' ) or die( 'Restricted access');

$db = &JFactory::getDBO();

$query = "SELECT * FROM jos_menu WHERE menutype='mainmenu' AND published='1' AND sublevel='0' AND access='0' ORDER BY ordering ASC;";
$db->setQuery($query);
$navi = $db->loadAssocList();

$menu   = &JSite::getMenu();
$active = $menu->getActive();

foreach ($navi as $item) {
    if ($item['id'] == $active->id) {
        $open = ' class="open"';
    } else {
        $open = '';
    }
    echo '<li'.$open.'><a href="'.$item['link'].'">'.$item['name'].'</a></li>';
}

?>

問題在於,僅當打開首頁時, $active變量才包含數據。 此代碼有什么問題?

謝謝!

發現了錯誤:您需要使用其他方法來確定菜單項的網址:

$url = JRoute::_($item['link'].'&Itemid='.$item['id']);
echo '<li'.$open.'><a href="'.$url.'">'.$item['name'].'</a></li>';

謝謝!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM