如何使用不同的drupal页面模板?

时间:2010-07-28 14:52:10

标签: drupal templates

我有两个页面模板文件,一个只是'page.tpl.php',另一个是页面子集。

如何仅针对某些页面应用此其他模板,其余模板默认为page.tpl.php?

谢谢!我在Drupal 6上。

3 个答案:

答案 0 :(得分:7)

在Drupal中,模板遵循所谓的“建议”。

对于页面,使用url-path建立建议。

在页面/ foo / bar上,您可以按如下方式命名page.tpl.php

  • page.tpl.php中
  • 页-foo.tpl.php
  • 页面FOO-bar.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。

我在我创建的其中一个网站上使用它,效果很好。