You are here

根据当前路径使用不同的drupal页面模板

g089h515r806 的头像
Submitted by g089h515r806 on 星期四, 2008-09-11 00:45

在Drupal 5.0中, PHPTemplate支持在一个主题下,使用多个页面模板.根据当前的url路径(例如node/1, taxonomy/term/2, 或者user/1),PHPTemplate会按照顺序寻找相应的模板,如果找不到的话,将会采用默认的page.tpl.php模板文件。

 

例如,如果你访问http://www.example.com/node/1/edit,PHPtemplate将按照降序寻找下面的模板:

page-node-edit.tpl.php
page-node-1.tpl.php
page-node.tpl.php
page.tpl.php

 

如果你访问的是http://www.example.com/tracker,PHPTemplate将寻找下面的模板:

page-tracker.tpl.php
page.tpl.php

 

这一规则还适用于用户和分类的url。当访问http://www.example.com/user/1时 ,PHPtemplate将按照降序寻找下面的模板:

page-user-1.tpl.php
page-user.tpl.php
page.tpl.php

 

注意,首页是个特殊的情况(它的URL是http://example.com,后面没有相对路径了)。对于这种情况,你可以使用下面的模板:

page-front.tpl.php

 

记住,这些模板建议是基于drupal的内部路径的。如果你使用了path 或者pathauto模块的话,那么你看到的将是路径的别名。但是对于这些模板来说,他们仍然是基于drupal内部路径的。如果你想基于URL别名使用模板的话,可参看基于URL别名的不同页面模板一文。

如果你需要基于其它的一些规则来切换页面模板文件的话(例如,登录用户的角色),你可以在你主题的template.php文件中实现phptemplate_variables()函数。$vars['template_files']变量存储了一个可能的tpl.php文件数组,使用先进后出的规则。

Drupal版本: