为什么在Drupal 6x中没有调用php_template_preprocess_page函数?

时间:2009-12-14 22:59:09

标签: templates drupal-6

从另一个论坛我发现了以下示例:

“我正在寻找一种通过ajax提取节点数据的方法,并为Drupal 6提出了以下解决方案。在实现下面的更改后,如果在URL中添加ajax = 1(例如mysite.com/node/) 1?ajax = 1),你只会得到内容而没有页面布局。

在主题的template.php文件中:

function phptemplate_preprocess_page(&$vars) {

  if ( isset($_GET['ajax']) && $_GET['ajax'] == 1 ) {
        $vars['template_file'] = 'page-ajax';
  }

}

然后使用以下内容在主题目录中创建page-ajax.tpl.php:

<?php print $content; ?>

这似乎是合乎逻辑的方法,我这样做了,但phptemplate_preprocess_page函数从未被调用过......任何建议?

1 个答案:

答案 0 :(得分:4)

我从Drupal支持主题开发页面中找到了自己:

“也许这会有所帮助 leahcim.2707 - 2008年5月29日 - 05:40

我试图完成相同的事情并且对我来说这是有效的,但我不确定这是否是正确的方式,因为我还是Drupal的新手:

在“template.php”中我添加了以下功能: function phptemplate_preprocess_page(&amp; $ vars) { $ css = $ vars ['css']; 未设置($ CSS [ '全部'] [ '模块'] [ '模块/系统/ system.css']); 未设置($ CSS [ '全部'] [ '模块'] [ '模块/系统/ defaults.css中']); $ vars ['styles'] = drupal_get_css($ css); }

我认为在添加该功能之后,您需要转到/ admin / build / themes,以便Drupal识别该功能。

粗体部分就是诀窍......你必须重新保存配置,以便它识别你已经为模板添加了一个新功能。