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

mat*_*att 4 templates drupal

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

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

谢谢!我在Drupal 6上.

ber*_*kes 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将仅用于首页.


Dav*_*ads 5

除了Drupal的默认建议系统,您还可以在主题中实现template_preprocess_page并更改模板建议数组:

function my_theme_preprocess_page(&$vars) {
  if ($vars['some_var'] == 'some_value') {
    $vars['template_files'][] = "page-special";
  }
}
Run Code Online (Sandbox Code Playgroud)

请参阅使用模板建议.

您也可以强制模板文件而不是添加建议:

function my_theme_preprocess_page(&$vars) {
  if ($vars['some_var'] == 'some_value') {
    $vars['template_file'] = "page-special";
  }
}
Run Code Online (Sandbox Code Playgroud)