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

Drupal 在模板文件中使用模块变量,drupal,drupal-6,Drupal,Drupal 6,我使用Drupal6和book模块。我想更改书籍内容类型的设计。所以我需要在我的tpl文件中使用模块的变量。book-navigation.tpl.php中有一个变量,名为$next\u title。如何在模板文件中使用它 我读了很多关于预处理函数的书,但是我没有看到一个真实的例子 您需要使用模板预处理节点: 在主题的template.php文件中,执行以下操作: /** * Implements template_preprocess_node(). */ function MY_THE

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


我读了很多关于预处理函数的书,但是我没有看到一个真实的例子

您需要使用模板预处理节点:

在主题的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\u preprocess_node

然后在book-navigation.tpl.php中(您可以使用默认文件,也可以将此文件添加到主题目录并进行修改),只需使用:

<?php print $next_title; ?>

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

首先感谢您的回复。我知道这个方法。但我想让它充满活力。通常$next_title对于每个图书节点都有不同的值。我想在node book.tpl.php$variables['next_title']='My custom next title'中使用它;这对于每个book节点都是静态的。有一些变量是book-naviagtion.tpl.php,我想在node-book.tpl.php中分别打印它们。我会发疯的,没有解决方案,有一个函数叫做book_next(),我们能用它吗?我用的是devel模块和列表变量。但我没能做到。我需要更多帮助。看一下,这就是
$next\u title
变量的来源。我知道,但我是个新手。我需要指导。我克隆了这个函数,并将其名称更改为book_preprocess_节点。变量已到达节点页,但所有变量均为NULL。
dpm($variables);