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.phpnewlayout.php,然后在该菜单的管理模块管理器中选择它。太好了,没问题。

这就是问题所在:如果我想更改某些菜单的链接输出,但不是所有菜单,我想我会像上面所做的那样更改default_component.php为……但这不起作用。newlayout_component.phpnewlayout.php

问题:

1) 如何为每个default_component.php, default_heading.php, default_separator.php,default_url.php模板文件提供替代布局(不仅仅是覆盖)?

2)我认为default_url.php是会影响链接输出的,但似乎default_component.php确实如此。那么每个人的作用是什么?我在 joomla.org 上找不到任何关于此的信息。

谢谢!

4

1 回答 1

9
  1. 替代布局功能仅适用于主文件 ( default.php),不适用于子布局 ( default_component.php, ...)。所以你必须创建自己的newlayout.php,然后可以加载newlayout_component.php或使用default_component.php. 事实上,default_component.php如果没有找到 newlayout_component.php, 将被用作后备。
  2. 代码切换$item->type链接的。'separator', 'url','component'并由'heading'处理'default_'.$item->type,其他一切都将使用default_url。所以一个纯 URL 确实应该由 生成default_url.php,而不是default_component.php. 如果它的行为不同,则很可能是一个错误。
于 2013-05-31T09:16:43.450 回答