Drupal:在我的主题中哪里可以获得$content数组?

Drupal:在我的主题中哪里可以获得$content数组?,drupal,drupal-6,Drupal,Drupal 6,在将节点内容数组呈现为html之前,我需要修改它。 因此,我无法在节点模板中使用$content变量。我正在template.php文件中查找它,但找不到它 感谢生成节点可用变量的原始函数是: 您可以通过在template.php中实现自己的节点预处理函数来修改模板变量,该函数将在原始函数之后执行,因此允许您添加自己的变量: function phptemplate_preprocess_node(&$vars, $hook) { // Here you can add your

在将节点内容数组呈现为html之前,我需要修改它。 因此,我无法在节点模板中使用$content变量。我正在template.php文件中查找它,但找不到它


感谢

生成节点可用变量的原始函数是:

您可以通过在template.php中实现自己的节点预处理函数来修改模板变量,该函数将在原始函数之后执行,因此允许您添加自己的变量:

function phptemplate_preprocess_node(&$vars, $hook) {
   // Here you can add your custom variable...
   $vars['myContent'] = "something";
}

另外,您不能从主题中访问未渲染的节点内容数组,因为主题处理发生在处理周期的后期(即,内容数组将按照您的观察进行渲染)

在呈现节点内容数组之前,访问和修改该数组的标准方法是在自定义模块中实现,并对“查看”操作作出反应。这将在内容数组组装之后,但在呈现之前调用,从而允许您随意调整它


请注意,其他模块也可以这样做-如果是这种情况,并且您希望调整其他模块提供的值,那么模块的调用顺序将变得相关,您可能需要调整模块的权重,以确保它在其他模块之后被调用。

ps。我也尝试在template.php文件中打印$vars['content'],但它已经呈现为html,而不是结构化的…嗨,谢谢你的回复。我真正想要的是包含内容的结构化树。我注意到内容作为html存储在$vars['content']中。因此它已经呈现在那里,我无法访问子项(CCK字段)。您在$vars['node']变量中有原始节点数据。要检查那里有什么,只需执行var_dump($vars);在preprocess函数中,查看页面源代码。如果替换$vars['node']中的内容,是否也会自动替换节点中的内容?我不明白为什么它是多余的,我有$vars['content']和$vars['node']。嗨,所以我在一个自定义模块中添加了函数:function hook_nodeapi(&$node,$op,$a3=NULL,$a4=NULL){echo“hook invoked”;die();}但什么都没有发生。我已经刷新了缓存。Thanks@Patrick:与所有hook_*函数一样,您需要在实现它的模块后对其命名,因此在本例中,
yourModuleName_nodeapi(&$node,…)