如何为mod_menu创建一个模板覆盖,以备用布局输出链接?

7

我理解并热爱模板覆盖。我需要对菜单输出进行一些重大更改(基本上是使输出与Bootstrap更好地配合)-但仅适用于某些菜单。

目前在Joomla 3中,mod_menu/tmpl文件夹中有以下内容:

default.php
default_component.php
default_heading.php
default_separator.php
default_url.php

如果我想更改类别,我会将default.php复制到mytemplate/html/mod_menu中并进行更改。非常好,没有问题。
如果我想更改链接输出以适应此,则可以将default_component.php复制到mytemplate/html/mod_menu中并进行更改。很好,没有问题。
如果我想选择一个不同的“替代布局”,我会将mytemplate/html/mod_menu/default.php重命名为newlayout.php,然后在菜单的管理员模块中选择它。 很好,没有问题。
这里是问题:如果我想更改某些菜单的链接输出而不是所有菜单,我认为我会像上面那样将default_component.php更改为newlayout_component.php,这将对应于newlayout.php......但是那样行不通。
问题:
1)如何为每个default_component.phpdefault_heading.phpdefault_separator.phpdefault_url.php模板文件具有替代布局(而不仅仅是覆盖)?
2)我认为default_url.php是会影响链接输出的文件,但似乎是default_component.php起作用。那每个文件都是做什么的?我在joomla.org上找不到任何信息。
谢谢!
1个回答

9
  1. 备选布局功能仅适用于主文件(default.php),不适用于子布局(default_component.php等)。因此,您需要创建自己的newlayout.php,然后可以加载newlayout_component.php,或者使用default_component.php。实际上,如果找不到newlayout_component.php,则将使用default_component.php作为后备。
  2. 代码根据链接的$item->type进行切换。'separator''url''component''heading''default_'.$item->type处理,其他所有内容都将使用default_url。因此,普通URL应该由default_url.php生成,而不是default_component.php。如果它行为不同,那么很可能是一个错误。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接