Je souhaite ajouter un champ à plusieurs types de contenu à la fois, et le configurer pour tous en même temps.
La raison en est que j'ai de nombreux types de contenu, qui doivent tous être mis à jour en ajoutant ce nouveau champ à chacun. Ce champ sera également configuré pour tous les types de contenu. Je dois répéter ce processus d'ajout, puis de configuration du champ pour chaque type de contenu auquel je veux l'ajouter, et cela devient difficile après un certain temps.
Existe-t-il un moyen d'ajouter / configurer en masse un nouveau champ à de nombreux types de contenu?
Réponses:
Les grandes lignes utilisant le module Fonctionnalités peuvent être:
la source
Utilisez le module Field Tools :
Une collection d'outils UI utiles pour travailler avec les champs:
la source
Si cela ne vous dérange pas d'écrire un module personnalisé pour cela, il est relativement facile d'ajouter un champ à un type de contenu via du code:
$instance = array(
'field_name' => 'field_firstname',
'label' => 'First name',
'entity_type' => 'node',
'bundle' => 'person',
);
field_create_instance($instance);
Le code ci-dessus ajoutera le champ "field_firstname" au type de contenu avec le nom de machine "person". Ainsi, vous pouvez créer un module qui un formulaire qui vous permet de sélectionner un champ et un certain nombre de type de contenu et lors de la soumission, le champ est ajouté à tous les types de contenu sélectionnés.
la source
Les quelques fois où j'ai dû faire cela, j'ai utilisé Field Collection .
C'est encore assez difficile, car vous devez ajouter le champ de collecte de champs à chaque type de contenu. Cela dit, si vous ajoutez 5 ou 6 champs à plusieurs types de contenu, vous n'avez qu'à configurer les 5 ou 6 champs initiaux une fois dans la collection de champs.
Après cela, vous créez le champ de collecte de champs (pour des raisons d'appellons-le
field_collection_field
) sur l'un de vos types de contenu, puis réutilisez le même champ sur tous les autres.Comme je l'ai dit, vous devez toujours configurer un champ sur x quantité de types de contenu ... mais c'est mieux que de créer 10 champs sur 10 types de contenu (par exemple).
la source
Si vous êtes à l'aise de manipuler la base de données directement, les instances de champ sont stockées dans la table {field_config_instance}. Vous pouvez ajouter / configurer votre champ pour un type de contenu, puis rechercher l'enregistrement dans la table de base de données et le dupliquer.
Vous devrez modifier deux valeurs de colonne sur la ligne dupliquée:
la source