我理解并喜欢模板覆盖。我需要对菜单输出做一些更重的更改(基本上使输出更好地与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.php
, default_heading.php
, default_separator.php
, default_url.php
模板文件(不只是覆盖)的替代布局?
2)我认为default_url.php
是会影响链接输出的,但似乎是default_component.php
。每一个都有什么作用呢?我在joomla.org上找不到任何关于这个的信息。
谢谢!
- 可选布局功能仅适用于主文件(
default.php
),不适用于子布局(default_component.php
,…)。因此,您必须创建自己的newlayout.php
,然后可以加载newlayout_component.php
,或使用default_component.php
。事实上,如果没有找到newlayout_component.php,default_component.php
将被用作回退。 - 代码切换链路的
$item->type
。'separator'
,'url'
,'component'
和'heading'
由'default_'.$item->type
处理,其他所有内容将使用default_url
。因此,普通URL确实应该由default_url.php
生成,而不是default_component.php
。如果它的行为不同,很可能是一个bug。