【问题标题】:Joomla: how to display sub-menu itemsJoomla:如何显示子菜单项
【发布时间】:2015-05-07 12:26:24
【问题描述】:

我使用 Joomla! 创建了一个网站! 3.4.1。它有一些类别,主菜单如下所示:

  • 首页
    • 主要分类
      • 类别 1
        • 1.1 类
          • 1.1.1 类
          • 1.1.2 类
          • 1.1.3 类
        • 1.2 类
        • 1.3 类
      • 类别 2
        • 2.1 类
        • 2.2 类

我决定(我不确定这是否是最佳决定)在主菜单中创建完整的网站结构。

现在,在“类别 1”页面中,我想要一个显示一些选定子菜单项的菜单,例如:

1 类菜单:

  • 1.1 类
  • 1.3 类

为了实现这一点,我决定使用菜单项别名创建一个名为“Category 1 Menu”的新菜单(以避免创建新的 URL)。

到目前为止一切正常,问题是现在我想显示类别 1.1 的子项,但我只想在选择类别 1.1 时显示类别 1.1 的子项。像这样的:

第 1 类

  • 1.1 类
  • 1.3 类

如果我点击“Category 1.1”,它的项目应该像这样展开:

第 1 类

  • 1.1 类
    • 1.1.1 类
    • 1.1.2 类
    • 1.1.3 类
  • 1.3 类

请记住,所有这些项目都是菜单项别名。

我知道如何在不使用菜单项别名的情况下做到这一点,但在这种情况下,我认为我需要使用菜单项别名,否则面包屑中不会有完整的“树”结构。

我能做什么?

提前致谢!

【问题讨论】:

    标签: joomla menu


    【解决方案1】:

    如果您不想使用别名,您可以轻松地创建一个模块或在 JED 中搜索一个。子菜单的代码基本上是这样的:

    $menu = JFactory::getApplication()->getMenu();
    $active = $menu->getActive();
    $childs = $menu->getItems('parent_id', $active->id);
    //now if childs are empty yoy don't have a submenu
    if( !empty($childs) )
    {
        //show menu using foreach $childs as $child and creating friendly url using JRoute
    }
    

    【讨论】:

    • 谢谢@Lanah。老实说,我更喜欢使用别名,因为这是现在的方式,而且我已经有数百个菜单项(这是一个大网站)。但是我怎样才能让它按预期工作呢?我需要更改模块代码吗?或者有没有办法在不改变它的情况下做到这一点?谢谢
    • 所以你有一个选择,使用别名,我的网页也使用它,当我们达到 100 多个链接时,我们开始感到困惑,但现在没关系。 :)
    • 谢谢@Lanah。在这种情况下,如何仅在单击父项时才展开子菜单项?我知道它适用于“正常”菜单项。但是由于某种原因,当我使用菜单项别名时,它不会扩展子菜单项
    • 现在取决于您的模板和模块显示菜单。检查模块参数和模板参数。
    • 谢谢@Lanah!我正在使用 protostar 模板和默认的菜单模块。我的设置是基础项目:当前;起始等级:1;结束等级:全部;显示子菜单项:否。此菜单仅由菜单项别名组成。如果我使用“常规”菜单项,它会起作用。我开始测试代码,问题是当我执行$menu->getActive(); 时,它不会检索菜单项别名的ID,而是检索原始菜单项。有什么建议?提前致谢
    猜你喜欢
    • 2012-02-15
    • 1970-01-01
    • 2011-09-21
    • 2013-08-12
    • 1970-01-01
    • 2019-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多