0

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

我读了很多关于预处理函数的内容,但我看不到一个真实的例子。

4

1 回答 1

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 模块的dpm 函数来轻松查看可用的内容,如下所示:

dpm($variables);

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

于 2013-04-11T15:10:21.823 回答