【问题标题】:Joomla 3 get parent title of active menu itemJoomla 3获取活动菜单项的父标题
【发布时间】:2013-09-01 03:29:21
【问题描述】:

我在这个帖子上找到了:get active menu item title 如何获取活动菜单项的标题:

$menu = &Jsite::getMenu();
$menuname = $menu->getActive()->title;

但我怎样才能得到他的父菜单项标题?

【问题讨论】:

    标签: php menu joomla3.0


    【解决方案1】:

    这应该可以工作

    $menu = JFactory::getApplication()->getMenu();
    $parent = $menu->getItem( $menu->getActive()->parent_id );
    $parentname = $parent->title;
    $parentlink = JRoute::_( $parent->link . '&Itemid=' . $parent->id );
    

    【讨论】:

    • 如何获取父菜单链接?
    • 我需要这个作为子菜单标题并且必须再添加两个变量:$menulevel = $menu->getActive()->level; $activename= $menu->getActive()->title; 然后我添加了这样的标题:<?php echo ($menulevel == 1)?$activename:$parentname; ?>
    【解决方案2】:

    自从我使用 Joomla 以来已经有一段时间了,不过还是试试吧:

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

    然后您可以将$parent 用作任何其他菜单项:

    echo $parent->title;
    

    【讨论】:

    • 刚试了下还是不行,什么都检索不到。谢谢你的尝试
    • 如何获取父菜单链接?
    【解决方案3】:

    我刚才用的是这个:

    $menu = &JSite::getMenu();
    $active = $menu->getActive();
    $menuname = $active->title;
    $parentId = $active->tree[0];
    $parentName = $menu->getItem($parentId)->title;
    $parentlink = $menu->getItem($parentId)->alias;
    echo "<h1><a href=\"$parentlink\">".$parentName."</a></h1>";
    

    在 Joomla 论坛中找到了大部分内容并添加了别名部分,我猜想……这适用于 SEF URLS 和 URL 重写。无论如何,标题行:

    &JSite::getMenu()->getItem(&JSite::getMenu()->getActive()->tree[0])->title;
    

    ...应该和AlexP列出的一样,我没有检查是否完全一样

    【讨论】:

    • getMenu() 不是静态方法。该代码将起作用,但会发出警告。在 Joomla 3 中执行此操作而不会收到 PHP 警告的正确方法如下: $menu = JFactory::getApplication()->getMenu();
    猜你喜欢
    • 1970-01-01
    • 2012-01-01
    • 2013-10-01
    • 1970-01-01
    • 2011-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-14
    相关资源
    最近更新 更多