【问题标题】:Drupal: Content type in database not in the list of content types in Structure>Content typesDrupal:数据库中的内容类型不在结构>内容类型中的内容类型列表中
【发布时间】:2012-07-04 02:35:32
【问题描述】:

不久前,我创建了两种内容类型:“protocol”和“protocol2” 它们有点不同,我还不确定哪一个最适合我的目的,所以我尝试了两者并为每个创建了一些内容。经过一番测试,我得出结论,“protocol2”是我要使用的那个,我希望它被称为“protocol”而不是“protocol2”。但我想保存其他版本的协议内容类型,所以我教我简单地交换他们的名字。

所以我尝试更换他们的名字,但在此过程中,我想使用的“protocol2”内容类型出现问题,它就消失了。或者我是这么教的。无论如何,我将“协议”重命名为“协议 1”(名称和机器名称)。并重建了消失的那个。我给它起了名字 Protocol 并试图给它机器名 'protocol' 但这不起作用,所以我最终不得不再次将它命名为 protocol2。

我现在发现数据库中的 node_type 表中实际上有一个机器名称为“protocol”的内容类型,当我在页面上的 Structure>Content types 中查看时,它没有显示出来。我可以简单地从该表中清除它还是有其他更合适的方法可以做到这一点?

我一直在使用 Organic 组,并且与某些组相关联的内容类型为“protocol”或“protocol2”类型(我不记得是哪个)。而且我认为它搞砸了小组页面上的一个观点。标题为“将内容发布到组”的列表由“发布”和一个空列表元素组成。我在哪里可以控制这个列表?这不应该是一个视图吗?

【问题讨论】:

    标签: drupal


    【解决方案1】:

    node_type 表中,确保所有“协议”类型的locked 为0,disabled 为0。更改其所有 orig_type 值以匹配其当前 type 值。清除 admin/config/development/performance 中的 Drupal 缓存。

    它们现在应该都出现在您的“内容类型”列表中,您可以从那里开始工作。

    这是 Drupal 8 的一个活跃错误,有可能在 Drupal issue 515454 下向后移植任何补丁。

    【讨论】:

    • 如果两行具有相同的 orig_type 值是否有问题?我有三种类型的协议:type:'protocol' orig_type:'protocol2'(我看不到的那个),type:'protocol1' orig_type:'protocol',type:'protocol2' orig_type:'protocol2'。将 orig_type 设置为与类型相同的作用是什么?我还应该更改 'protocol1' orig_type 吗?
    • 我会更改所有 orig_types 以匹配它们的类型,以确保它们不会相互冲突。我不认为重复的 orig_types 一定是一个问题,但我会避免它。问题是 Drupal 在列出内容类型时会过滤掉与其类型不匹配的 orig_type 值。它在想:添加协议和删除协议2;添加protocol1和删除protocol(删除之前的类型);添加协议2。
    猜你喜欢
    • 2013-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-01
    • 1970-01-01
    • 2014-11-22
    相关资源
    最近更新 更多