我想一次将字段添加到多种内容类型,并同时为所有这些内容类型进行配置。
原因是我有很多内容类型,所有这些内容类型都需要通过将每个新字段添加到其中来进行更新。对于所有内容类型,此字段的配置也将相同。我必须重复此添加过程,然后配置要将该字段添加到的每个内容类型的字段,一段时间后,它变得很繁琐。
有什么方法可以对许多内容类型进行大量新字段的添加/配置?
我想一次将字段添加到多种内容类型,并同时为所有这些内容类型进行配置。
原因是我有很多内容类型,所有这些内容类型都需要通过将每个新字段添加到其中来进行更新。对于所有内容类型,此字段的配置也将相同。我必须重复此添加过程,然后配置要将该字段添加到的每个内容类型的字段,一段时间后,它变得很繁琐。
有什么方法可以对许多内容类型进行大量新字段的添加/配置?
Answers:
使用“功能”模块的粗线可能是:
使用“ 现场工具”模块:
一组用于处理字段的有用的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!
如果您不介意为此编写自定义模块,则通过代码将字段添加到内容类型相对容易:
$instance = array(
'field_name' => 'field_firstname',
'label' => 'First name',
'entity_type' => 'node',
'bundle' => 'person',
);
field_create_instance($instance);
上面的代码会将字段“ field_firstname”添加到机器名称为“ person”的内容类型。因此,您可以创建一个模块,该模块具有一个允许您选择字段和多种内容类型的表单,并在提交后将该字段添加到所有选定的内容类型中。
我不得不这样做几次,所以我使用了Field Collection。
提供一个字段收集字段,可以将任意数量的字段附加到该字段收集字段。
但是,这仍然很艰巨,因为您必须将字段收集字段添加到每种内容类型中。也就是说,如果要将5或6个字段添加到多种内容类型,则只需在字段集合中配置一次5或6个初始字段。
然后,您field_collection_field
在其中一种内容类型上创建字段集合字段(为方便起见,我们称之为),然后在所有其他内容类型上重用同一字段。
就像我说的那样,您仍然必须在x种内容类型上配置一个字段。但是比在10种内容类型上创建10个字段要好。