You are here

请教一个书上的问题

xmxiaxmxia 的头像
Submitted by xmxiaxmxia on 星期三, 2013-01-09 13:47

你好,看到了您的think in drupal的第二集,在其中的第139页里的“node-book.tpl.php”段开始说:在templates目录下建一个override目录,在这个目录下再建目录,然后在里页面写node模板。请问,这个“override”的名字是固定的吗?还是这个模板文件里哪里注册一下,让系统找到,还是drupal会遍历这个templates目录下的所有文件夹的所有文件?

论坛:

Drupal版本:

g089h515r806 的头像

“override”这个文件的名字,不是固定的,你也可以用别的名字,不过使用override时大部分Drupal程序员的一个约定俗成的用法。

在里面,创建多个子文件夹,是为了覆写的方便。

Drupal会遍历templates目录下面的所有的子目录,迭代处理,找到所有可用的模板建议文件。

 

Think in Drupal第4集,对Drupal主题系统的注册机制做了探讨,有兴趣的可以阅读一下。

xmxiaxmxia 的头像

哦,谢谢了。

那就是说您用node-book模板覆写了系统的node模板?那就是这个模板的命名是:“node”+"-"+'定义的页面机读名称'。这个命名的模板系统就会自动把它做为node模板的子模板进行继承与覆写?

 

我刚看到第二集,但是我已经买了第四集了。这个也应该是对您的课本的疑问了。

如果这个已经在第四集中讲了,那真不好意思了,您告诉我第几页就行。

g089h515r806 的头像

一个比较常见的错误就是写成“node-book.tpl.php”,

正确的应该写成“node--book.tpl.php”

第四集里面,有关breadcrumb.tpl.php的覆写问题,弄明白了这个问题,就基本掌握了Drupal背后的主题机制了。

 

这个命名的模板系统就会自动把它做为node模板的子模板进行继承与覆写?

    这样理解是错误的,Drupal的主题系统会优先查找node--book.tpl.php,找不到的话,再去查找node.tpl.php文件。这是面向过程的,没有继承关系。