0

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

4

2 回答 2

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
于 2013-05-17T14:44:27.310 回答
0

从 Drupal 答案(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");
  }
}
于 2013-05-18T10:21:42.587 回答