在模板文件中使用模块变量

时间:2013-04-11 10:00:21

标签: drupal drupal-6

我使用drupal 6和book模块。我想改变书籍内容类型的设计。所以我需要在我的tpl文件中使用模块的变量。 book-navigation.tpl.php中有一个变量叫做$ next_title。如何在模板文件中使用它?

我读了很多关于preproccess函数但我看不到一个真实的例子。

1 个答案:

答案 0 :(得分:0)

您将要使用template_preprocess_node:

http://api.drupal.org/api/drupal/includes%21theme.inc/function/template_preprocess_node/6

在主题的template.php文件中,执行以下操作:

/**
 * Implements template_preprocess_node().
 */
function MY_THEME_preprocess_node(&$variables) {
  if ($variables['node']->type == 'book') {
    $variables['next_title'] = 'My custom next title';
  }
}

在添加该功能后刷新Drupal的主题注册表,然后你应该全部设置。

或者,如果您希望该功能位于自定义模块中,则可以使用 MY_MODULE_preprocess_node

然后在你的book-navigation.tpl.php中(你可以使用默认的,或者将这个文件添加到你的主题目录并进行修改),你只需要使用:

<?php print $next_title; ?>

同时查看template_preprocess_book_navigation()功能:

并确保在$ variables上使用devel module's dpm函数轻松查看可用内容,如下所示:

dpm($variables);

book_next()函数可能在您的节点预处理器中使用。有时您必须使用预处理器将变量动态注入tpl.php文件。因为$ variables对于每个预处理器和每个tpl.php文件都是不同的。