Drupal7:尝试使用预处理函数对特定页面进行主题化,但是……我得到了一个空白屏幕



我刚刚发现,如果您想更改一个特定的页面(或一组页面),您所需要的只是将模板文件添加到核心模板中。例如,我需要使用page——helloworld.tpl.php和node——helloworld.tpl.php模板文件来主题化我的/helloword页面。

现在我得到的是一个空白的屏幕,所以我试着写一个预处理函数,增加对自定义主题文件的支持,如:

<?php
/**
* Adding or modifying variables before page render.
*/
function phptemplate_preprocess_page(&$vars) {
  // Page change based on node->type
  // Add a new page-TYPE template to the list of templates used
  if (isset($vars['node'])) {
    // Add template naming suggestion. It should alway use doublehyphens in Drupal7.
    $vars['template_files'][] = 'page--'. str_replace('_', '-', $vars['node']->type);   
  }
}
?>

我没有看到语法错误,但我仍然得到一个空白的屏幕。还是没有运气

有人能找出代码/例程中的错误吗?

Drupal7 + Omega子主题

亲切的问候

我认为这里有一点混乱:一个名为node--type.tpl.php的模板文件将自动被任何具有type类型的节点调用…你不需要自己添加模板建议。

有一个警告,你必须复制原来的node.tpl.php到你的主题文件夹,并清除你的缓存,否则Drupal不会捡起它。

你也不想使用phptemplate_前缀…而你希望你的函数被称为MYTHEMENAME_preprocess_page

根据节点类型添加页面模板的代码看起来很准确,看看在更改函数名称并清除缓存后是否仍然存在问题。

希望有帮助

相关内容

最新更新