一次将字段添加到多种内容类型?


9

我想一次将字段添加到多种内容类型,并同时为所有这些内容类型进行配置。

原因是我有很多内容类型,所有这些内容类型都需要通过将每个新字段添加到其中来进行更新。对于所有内容类型,此字段的配置也将相同。我必须重复此添加过程,然后配置要将该字段添加到的每个内容类型的字段,一段时间后,它变得很繁琐。

有什么方法可以对许多内容类型进行大量新字段的添加/配置?


您有几种内容类型?
bobylapointe

我假设这个问题不再与OP有关,而与设置赏金的Nigel Waters有关。你奈杰尔愿意发表评论吗?
KariKääriäinen13年

有25个(这是一个非常大的网站,确实要求它们是单独的内容类型)。
Nigel Waters

顺便说一句,另一种解决方案是雇用便宜的人来这种东西:)
donquixote

还是浏览器宏?
donquixote13年

Answers:


9

使用“功能”模块的粗线可能是:

  1. 手动将字段添加到两种(以查看模式)内容类型
  2. 创建包含新创建字段的字段基础和字段实例的功能
  3. 编辑创建的模块,将字段基础和实例乘以所需的所有内容类型
  4. 启用编辑的模块

我不记得要素是如何处理字段的。创建字段后可以禁用该功能吗?
donquixote

据我所知,新生模块将取决于功能,因此基本上不取决于功能。
KariKääriäinen13年

我的意思是禁用新生模块,而不是禁用功能。问题是字段实例是否仍然存在。也许Lester Peabody或Nigel Waters可以尝试一下并报告。
donquixote

哦对不起。是的,实际上两者都可以被禁用,这些字段将保留在数据库中,我现在正在自己对其进行测试。
KariKääriäinen13年

对于默认的drupal设置和大多数其他drupal设置,这也是正确的答案。但是,如果对不同的内容类型有不同的显示模式,则最好手动配置每种内容类型中的字段,或者确保在field_instance数组代码中使用正确的显示类型。
Sumeet Pareek 2015年

5

使用“ 现场工具”模块:

一组用于处理字段的有用的UI工具:

Overview of fields with links to edit single instances, and all instances at once
Clone any field instance to multiple entities and bundles
Clone all field instance of a bundle to multiple entities and bundles
Import and export fields
Delete multiple instances of a field
Apply a vocabulary to multiple entities and bundles at once (the same way vocabularies were applied to content types on Drupal 6)
... your idea here. Patches welcome!

这听起来很棒,我将不得不考虑一下。
Lester Peabody 2013年

3

如果您不介意为此编写自定义模块,则通过代码将字段添加到内容类型相对容易:
$instance = array(
'field_name' => 'field_firstname',
'label' => 'First name',
'entity_type' => 'node',
'bundle' => 'person',
);
field_create_instance($instance);

上面的代码会将字段“ field_firstname”添加到机器名称为“ person”的内容类型。因此,您可以创建一个模块,该模块具有一个允许您选择字段和多种内容类型的表单,并在提交后将该字段添加到所有选定的内容类型中。


1

我不得不这样做几次,所以我使用了Field Collection

提供一个字段收集字段,可以将任意数量的字段附加到该字段收集字段。

但是,这仍然很艰巨,因为您必须将字段收集字段添加到每种内容类型中。也就是说,如果要将5或6个字段添加到多种内容类型,则只需在字段集合中配置一次5或6个初始字段。

然后,您field_collection_field在其中一种内容类型上创建字段集合字段(为方便起见,我们称之为),然后在所有其他内容类型上重用同一字段。

就像我说的那样,您仍然必须在x种内容类型上配置一个字段。但是比在10种内容类型上创建10个字段要好。


抱歉。我也只是重新阅读了您的问题,只需要一个领域。抱歉浪费您的时间> _ <
Chapabu 2012年

也就是说,您可以将该字段放入字段集合中并按需要配置它,然后使用已配置的字段引用该字段集合。但是,这有点矫kill过正。
Chapabu 2012年

Chapabu没问题,如果将来我需要做类似的事情,这仍然是有用的信息。
Lester Peabody

1

如果您愿意直接操作数据库,则字段实例存储在{field_config_instance}表中。您可以为一种内容类型添加/配置字段,然后在数据库表中找到记录并将其复制。

您必须在重复的行上更改两个列的值:

  • id:应该是表唯一的新整数
  • bundle:应该是新内容类型的机器名称
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.