Joomla! 2.5 - 基础指南17.3:模板覆盖

你已经创建了样式,更改了CSS文件和模板的主页,然而对结果还不满意? :-) 那就是讨论覆盖的好时机了。在Joomla内有两种覆盖:模板覆盖 和替代布局。

模板覆盖

假设你想改变搜索结果页的布局。类似搜索组件的组件都有默认的模板布局,保存在文件 /httpdocs/component/com_search/views/search/tmpl/default.php。该文件决定了搜索页面的 显示方式。给这个文件添加一些单词,保存后即可看到结果! 例如,在13行添加

<strong>I have changed something :-) </strong>

并看看发生了什么 (图 1)。

Template override

图 1: HTML 输出的变化

结果有助激发你的兴趣,因为这是如此简单,每个模板都会显示它了。然而,它有损你的名声,因为你改动了核心代码。下次 Joomla一升级,你的更改就没了!

更好的替代方法是针对模板使用模板覆盖。把更改后的文件复制到模板文件夹/httpdocs/templates/[template_name] /html/com_search/search/default.php 并放弃对于原始文件的修改。网页效果一样,但私底下你已经用所需要的内容布局覆盖了原始的.../default.php文件- 而没有改变核心代码 – 干得漂亮!

该系统是在2007年随着Joomla 1.5的发布而引入,目前仍然工作得很好。

替代布局

Joomla 2.5的覆盖有所提升,称为替代布局。 我相信你在文章、模块和类别的编辑表单内已经看到过替代布局字段(图 2)。

Alternative Layout

图 2: 文章的替代布局

我们为何需要替代布局? 请想象,你是个管理员或网管,某一模板自带三种不同的文章布局。有时它是'常规文章', 有时它看起来像个产品,有时看起来有像个书页。你只需要选择你想使用的布局。这听起来是个很棒的功能,当然,它确实是。

这项技术和模板覆盖一样。你必须创建和组件或模板同名的文件夹和用来保存视图的子文件夹。这里有两点区别:

  1. 很显然文件名必须和default.php有所不同,因为后者已预留给模板覆盖。
  2. 替代布局当然不是自动选择的。

除了替代布局,布局还能添加菜单项类型,文章也能通过在和替代布局文件同名的xml文件内定义选项条目来予以控制(图 3)。

Additional Menu item Type

图 3: 附加菜单项类型

创建这些文件不属于初学者的话题,但我相信不久后第三方模板就会使用到这些新特性(图 4)。

More alternative layouts

图 4: 文章的附加布局

文章评论功能仅对网站会员开放,请先 登录 注册