Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用不同的drupal页面模板?_Drupal_Templates - Fatal编程技术网

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

如何使用不同的drupal页面模板?,drupal,templates,Drupal,Templates,我有两个页面模板文件,一个是“page.tpl.php”,另一个是页面子集 如何仅将此其他模板应用于某些页面,而将其他页面默认应用于page.tpl.php 谢谢!我在玩Drupal6 在Drupal中,模板遵循所谓的“建议” 对于页面,使用url路径建立建议 在page/foo/bar上,您可以将page.tpl.php命名如下: page.tpl.php page-foo.tpl.php page-foo-bar.tpl.php Drupal将从最具体的到最不具体的,然后选择第一个找到的

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

如何仅将此其他模板应用于某些页面,而将其他页面默认应用于page.tpl.php


谢谢!我在玩Drupal6

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

对于页面,使用url路径建立建议

在page/foo/bar上,您可以将
page.tpl.php
命名如下:

  • page.tpl.php
  • page-foo.tpl.php
  • page-foo-bar.tpl.php
Drupal将从最具体的到最不具体的,然后选择第一个找到的。 如果找到page-foo-bar.tpl.php,它将使用它作为foo/bar,如果没有找到,它将查看。如果它找到页面foo,它将使用它

page-foo.tpl.php也将用于/foo/beserk foo/pirate和foo/parrot,除非您创建了page-foo-parrot.tpl.php


首页没有路径(显然),但对fron页的建议确实存在:
page front.tpl.php
将仅用于frontpage。

您可能还想查看该模块,它允许为一组页面选择单独的主题。页面的选择与块显示配置页面上的选择相同-在除列出的页面之外的每个页面上显示,仅在列出的页面上显示,显示以下PHP代码是否返回TRUE


我在我创建的一个网站上使用了它,效果非常好。

除了Drupal的默认建议系统之外,您还可以在主题中实现模板预处理页面并更改模板建议数组:

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

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

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

如果您想找到任何内容的模板建议,请使用,wich添加了一种firebug控制台,允许您选择页面上的任何项目,并将为此显示大量主题信息。包括所有建议。它不是双破折号,即page--foo,而不是page foo吗?尽管如果您需要根据页面更改page.tpl.php,那么您需要使用其他建议。如果我不帮忙,很抱歉。答案在drupal 7中不起作用,使用
$vars['theme\u hook\u suggestions'][]='page\u special'有效,即它加载了
页面--special.tpl.php
显示在我的主题目录中