如何根据drupal 6中的模块更改页面的整个模板

时间:2013-05-17 12:48:10

标签: php drupal drupal-6

我在网上检查了很多关于drupal6中主题的区域。网络中的所有教程都说主题模块,这意味着主题是一个小区域或主题是一个小小的blobk等。但在我的情况下,我需要在访问模块时更改页面的整个模板。这可以在drupal6吗?

2 个答案:

答案 0 :(得分:2)

您可以在主题的template.php函数中编写if条件。 该函数为template_preprocess_page(&$variables)

在这个函数中,写一些if条件。

For example:
if($some_condition) {
  $suggestions[] = 'YOUR_CUSTOM_TEMPLATE';
}
$variables['template_files'] = $suggestions;

您将获得模板“YOUR_CUSTOM_TEMPLATE.tpl.php”。 哪个应该在主题的模板目录中。

此外,您可以拥有内容类型的自定义模板。 例如对于内容类型学生,模板将为:

page--student.tpl.php

答案 1 :(得分:0)

来自Drupal Answers(https://drupal.stackexchange.com/a/18670):

  

如何使用其他模板创建自定义页面?

     

您可以通过建议新的页面为页面使用不同的模板   将使用的模板文件。

     

这可以通过写一个主题来完成   template_preprocess_page(),或通过实施的模块   hook_preprocess_page()。   如果您在模块中使用它,则需要使用template_preprocess_page()   重命名为mymodule_preprocess_page(),其中“mymodule”是模块的简称。

function mymodule_preprocess_page(&$variables) {
  if (arg(0) == "node" && arg(1) == "1") {
    array_unshift($variables['theme_hook_suggestions'], "page--custom-template");
  }
}