【问题标题】:Drupal displays title (but no other data) from deleted content-typeDrupal 显示已删除内容类型的标题(但没有其他数据)
【发布时间】:2011-06-02 07:37:18
【问题描述】:

我的http://drupal.94y.info/ Drupal 6 安装显示来自一个 不再存在的内容类型。

当我删除内容类型时,Drupal 删除了那些 节点,除了显然仍然存在的标题。

如何解决?

对于管理员访问,gmail 聊天我 carter.barry@gmail.com

【问题讨论】:

  • 假设您使用的是视图,您可能将其配置错误...否则可能是性能指标出错...

标签: drupal


【解决方案1】:

原因是因为标题是核心字段(存储在表“node”和“node_revisions”中)。其他数据存储在另一个表“content_type_NAMEOFTYPE”中(加上每个接受多个值的字段的附加表)。

当您删除内容类型时,它只会删除额外的表,但“node”和“node_revisions”中的内容仍然存在,因此您最终会得到不完整的节点,因为只有标题(和正文/预告片)保留在数据库中,其余部分已与表一起删除(这是设计不一致恕我直言,他们应该真正删除使用您删除的内容类型的任何节点,而不是简单地删除额外的表(s))。


最直接的解决方法是直接删除数据库中的行(表“node”将内容类型的名称存储在“type”字段中所以很容易找到错误的行,只是不要忘记同时删除 node_revisions 中的匹配行),然后在“Drupal > Admin > Performance”中清除缓存。

但除非你先备份数据库,否则不要这样做,以防万一;-)

【讨论】:

  • 在我询问后不久,节点神奇地出现在“内容管理”下,我一次删除一页(奇怪的是你不能一次删除所有符合条件的节点..一次限制为大约 25 个节点)。
【解决方案2】:

当您删除内容类型时,Drupal 不会删除该内容类型的节点。我相信这是设计使然,如果您希望这样做,您应该自己删除节点。如果您没有太多节点,您可以使用默认的内容编辑管理屏幕来执行此操作。如果这太乏味,Views Bulk Operations 是一个很好的方法。您还可以对内容类型表单执行 form_alter 并自动执行此操作,但只有在您经常遇到这种情况时才值得探索。

【讨论】:

  • 我会尝试查看批量操作。这些节点不会显示在我的内容编辑管理屏幕上。此外,Drupal 警告我删除内容类型将删除具有此内容类型的“所有 1622 个节点”。撒谎?
  • 因为这些节点不再有类型,因此您无法按(空白)节点类型过滤掉。您可以创建一个虚拟类型,然后运行 ​​SQL 查询将该节点类型分配给未分配类型的节点,返回到内容管理屏幕,按您的虚拟类型过滤,然后运行删除。那会奏效的。
猜你喜欢
  • 2010-12-08
  • 2012-07-25
  • 1970-01-01
  • 2018-11-15
  • 2019-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-16
相关资源
最近更新 更多