我需要在将节点内容数组渲染为html之前对其进行修改。 出于这个原因,我不能在我的节点模板中使用$ content变量。我在template.php文件中找它,但我找不到它。
感谢
答案 0 :(得分:1)
AFAIK,您无法从主题中访问未呈现的节点内容数组,因为主题处理发生在处理周期的后期(即内容数组已经按照您的观察呈现)。
在呈现之前访问和修改节点内容数组的标准方法是在自定义模块中实现hook_nodeapi()
,对“视图”操作做出反应。在内容数组组装完成后,但在呈现内容之前调用它,允许您随意调整它。
请注意,其他模块也可以这样做 - 如果是这种情况并且您想调整其他模块提供的值,则模块的调用顺序变得相关,您可能需要调整模块权重以确保它被别人打电话。
答案 1 :(得分:0)
生成节点可用变量的原始函数是:http://api.drupal.org/api/function/template_preprocess_node/6
您可以通过在template.php中实现自己的节点预处理函数来修改模板变量,该函数将在原始函数之后执行,因此允许您添加自己的变量:
function phptemplate_preprocess_node(&$vars, $hook) {
// Here you can add your custom variable...
$vars['myContent'] = "something";
}