Drupal 内容类型中节点引用的错误标签

Posted

技术标签:

【中文标题】Drupal 内容类型中节点引用的错误标签【英文标题】:Wrong label for a nodereference in Drupal content-type 【发布时间】:2010-06-14 18:33:04 【问题描述】:

我们有一个使用 CCK 构建的内容类型。其中一个字段是节点引用。节点选择器正在使用视图来构建选项。

几天前,一切正常。

今天,所有使用视图填充选择选项的节点引用字段似乎都显示了错误的标签。选项中的每个标签都是“A”,但实际的节点号是正确的。表单确实有效,只是标签不正确。

我们已经尝试了编辑/保存、禁用/启用、重启、清除缓存、克隆视图、重建视图、新视图等的几乎所有组合,但我们仍然有一个很大的 As 列表。

如果我们使用全新的节点引用字段创建全新的内容类型,我们就会遇到问题。

通过一些备份/恢复练习,我们确定问题实际上出在数据库中,而不是代码中。

我们可以恢复上次的良好备份,但我们会丢失大量已投入数据库其他部分的工作。

我们启用了 mysql 查询日志记录,并且视图实际上被正确调用,但我们无法追踪到问题出现的位置(解开 CCK / Views / Drupal 管道是一个挑战)。

安装是使用截至 4 月的最新稳定版本构建的。

http://drupal.org/node/624422中提到的问题类似,但我们的代码版本包含了提到的补丁。

任何想法将不胜感激。谢谢。

【问题讨论】:

FWIW,我们从最新的马厩构建了一个新的 Drupal 实例,克隆了数据库,并让新实例使用了克隆。现在一切正常。我们一直在浏览我们的 SVN 日志,找不到任何暗示有人编辑了核心或实际模块文件的内容。我们目前正在将此归咎于 gremlins,因为我们不能再花时间解决这个问题(或者使用干净的数据库对旧代码进行反测试),但我很想听听任何想法。 这真是个谜。我建议查看功能模块,作为一种通过手术将您的一些工作从混乱中导出的方法。 【参考方案1】:

我在使用视图作为节点参考时遇到了类似的问题,在拉了很多头发之后,结果证明我的缓存层有问题。我使用的是 memcached,但服务器上没有启用 memcached。这可能值得检查。

【讨论】:

【参考方案2】:

感谢您的回复。我们终于找到了真相。

有一个模块正在执行自定义 hook_views_post_render(),它执行 prep_replace 来重写一些输出。我们不知道,在某些情况下 $output 参数不是字符串,而是数组,这就是导致问题的原因。其中一个实例恰好是当您将视图附加到 CCK 中的构建选择时。

【讨论】:

以上是关于Drupal 内容类型中节点引用的错误标签的主要内容,如果未能解决你的问题,请参考以下文章

具有节点引用和 cck3 多组字段的 Drupal 视图

Ajax 加载的内容在 Drupal 中引用了错误的节点 ID

Drupal - 每种有机组内容类型的单独菜单

标签部分在 Drupal 8.1.1 中的不同内容类型中具有不同的视图

Drupal 7“新节点创建”是不是启动/准备不同内容类型的字段?

如何使用 CCK API 创建节点引用字段?