【问题标题】:Meaning of code in custom Mod_menu override自定义 Mod_menu 覆盖中代码的含义
【发布时间】:2013-10-20 12:37:58
【问题描述】:

我只是在 Joomla 3 中创建自定义 mod_menu

我想知道是否有人可以这么好心并解释这段代码的含义,因为我找不到对参数 $item->params->get('aliasoptions) 的任何引用,而且这段代码实际上做了什么到菜单项? - (第 37 行 - 代码取自 mod_menu 的 tmpl 文件夹中的 default.php)

    $aliasToId = $item->params->get('aliasoptions');
    if (count($path) > 0 && $aliasToId == $path[count($path) - 1])
    {
        $class .= ' active';
    }
    elseif (in_array($aliasToId, $path))
    {
        $class .= ' alias-parent-active';
    }

对此的任何解释都会很有帮助,我想知道它是否真的需要?

【问题讨论】:

    标签: joomla joomla2.5 joomla-extensions joomla3.0 joomla1.7


    【解决方案1】:

    这就是helper.php中对应的函数

    case 'alias':
    // If this is an alias use the item id stored in the parameters to make the link.
    $item->flink = 'index.php?Itemid=' . $item->params->get('aliasoptions');
    break;
    

    所以如果你看一下default.php中的函数你会看到这段代码:

    foreach ($list as $i => &$item) :
    $class = 'item-'.$item->id;
    

    然后是 if 子句,然后是您要求的代码。

    那么它的基本作用(在我的理解中):

    如果链接只是另一个菜单项的别名,请使用 itemparameters 中定义的项目 ID(基本上它只是项目 ID xD)。没有它,Joomla 应该无法设置正确的活动菜单链接。

    创建或编辑菜单项时,您可以通过在菜单项类型选择中选择它们来设置菜单项别名:“系统链接 -> 菜单项别名”;)

    我希望这会有所帮助^^

    【讨论】:

    • 嗨 Django,感谢您的提醒我并没有为这个参数寻找足够的努力,这在菜单项类型选择中是正确的:“系统链接 - >菜单项别名”现在它在它只有在被选中时才会变为活动状态,这就是为什么我在菜单上执行 var_dump 时看不到它的原因。 - 再次感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-03
    • 1970-01-01
    • 2015-05-28
    • 1970-01-01
    相关资源
    最近更新 更多