我有两个页面模板文件,一个只是'page.tpl.php',另一个是页面子集。
如何仅针对某些页面应用此其他模板,其余模板默认为page.tpl.php?
谢谢!我在Drupal 6上。
答案 0 :(得分:7)
在Drupal中,模板遵循所谓的“建议”。
对于页面,使用url-path建立建议。
在页面/ foo / bar上,您可以按如下方式命名page.tpl.php
:
Drupal将从最具体到最不具体的内容进行检查并选择找到的第一个。 如果找到page-foo-bar.tpl.php,它会将其用于foo / bar,如果没有找到它将会查找。如果它找到page-foo,它将使用它。
page-foo.tpl.php也将用于/ foo / beserk foo / pirate和foo / parrot,除非你当然要创建一个page-foo-parrot.tpl.php。
首页没有路径(显然)但是对于页面页面确实存在建议:page-front.tpl.php
将仅用于首页。
答案 1 :(得分:5)
除了Drupal的默认建议系统,您还可以在主题中实现template_preprocess_page并更改模板建议数组:
function my_theme_preprocess_page(&$vars) {
if ($vars['some_var'] == 'some_value') {
$vars['template_files'][] = "page-special";
}
}
请参阅Working with template suggestions。
您也可以强制模板文件而不是添加建议:
function my_theme_preprocess_page(&$vars) {
if ($vars['some_var'] == 'some_value') {
$vars['template_file'] = "page-special";
}
}
答案 2 :(得分:0)
您可能还想查看Sections模块,它允许为一组页面选择单独的主题。页面选择与块显示配置页面相同 - 在列出的页面以外的每个页面上显示,仅显示列出的页面,显示以下PHP代码是否返回TRUE。
我在我创建的其中一个网站上使用它,效果很好。