【问题标题】:$content variable in node.tpl.php (Drupal 5)node.tpl.php 中的 $content 变量(Drupal 5)
【发布时间】:2009-10-13 13:20:25
【问题描述】:

node.tpl.php 中的 print $content 语句导致我的整个布局中断,可能是由于 DIV 嵌套不正确。

我想检查并修复它,但我无法弄清楚 node.tpl.php 文件中 $content 变量的来源/来源。

如果有任何帮助,我将不胜感激。谢谢。

【问题讨论】:

  • 正如许多人已经说过的,$content 变量是从许多来源组装而成的,因此很难调试。您可以从其中一个损坏的页面中发布 $content 变量的 print_rvar_dump 吗?

标签: php html drupal layout drupal-5


【解决方案1】:

$content 是保存所有内容的变量。所以很难用嵌套的 div 来确定错误的确切位置。

但是,问题很可能出在主题中的自定义主题功能或自定义构建的模块中。 d.o 的模块通常没有此类错误,因此希望您能够在有限的可能性下很快找到问题。

另一个问题可能是用于生成某些内容的模板,同样,您应该只查看主题中的自定义模板。

【讨论】:

    【解决方案2】:

    Drupal 节点中的$content 变量并非来自任何地方。所有启用的模块都能够添加、删除和调整 $content 变量,使用 Drupal 挂钩,如 hook_nodeapihook_view

    了解您启用了哪些模块以及导致问题的确切 HTML 可能有助于人们为您提供更多帮助。照原样,您的问题的答案是“视情况而定”。

    【讨论】:

      【解决方案3】:

      没有一个地方可以作为 $content 的来源,它可以包含几乎任何地方生成的内容。

      一种调试方法是关闭模块,直到问题消失,然后找出该模块中导致问题的原因。

      【讨论】:

      • 对,这就是我需要知道的,内容打印哪些节点以及我在哪里可以找到它们来跟踪错误。
      • 任何模块都可能有钩子,这些钩子会导致 $content 中的内容出现或更改。由于这个 $content 可以包含几乎任何东西。通常,会导致错误的自定义错误,但并非总是如此。隔离模块后,您可能会看到导致问题的原因。 ps 为什么投反对票?
      【解决方案4】:

      $content 是从hook_view() 返回的内容

      如果许多节点受到影响,听起来可能是自定义主题功能导致了问题。

      【讨论】:

      • 我只需要找出正在打印的块/函数/文件内容,以便检查和修复验证错误。 hook_view 在哪个文件中?它是否包含可能有错误嵌套的 html?
      • hook_view 不在特定文件中。 hook_view 是一个钩子,任何模块都可以使用它来添加到$content。许多模块对$content 做不同的事情。
      【解决方案5】:

      尝试使用调试器查看在给定时间包含变量的内容。如果我没记错的话 $content 是为当前节点生成的 html 内容。

      【讨论】:

      • 有很多“节点”或“帖子”,难以调试。我宁愿找到并调试源 html。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多