Quiero agregar un campo a múltiples tipos de contenido a la vez, y configurarlo para todos a la vez también.
La razón es que tengo muchos tipos de contenido, todos los cuales deben actualizarse agregando este nuevo campo a cada uno. Este campo se configurará igual para todos los tipos de contenido también. Tengo que repetir este proceso de agregar y luego configurar el campo a cada tipo de contenido al que quiero agregarlo, y se vuelve difícil después de un tiempo.
¿Hay alguna forma de agregar / configurar en masa un nuevo campo para muchos tipos de contenido?
Respuestas:
Las líneas generales que utilizan el módulo Características podrían ser:
fuente
Utilice el módulo de herramientas de campo :
Una colección de herramientas útiles de IU para trabajar con campos:
fuente
Si no le importa escribir un módulo personalizado para esto, es relativamente fácil agregar un campo a un tipo de contenido a través del código:
$instance = array(
'field_name' => 'field_firstname',
'label' => 'First name',
'entity_type' => 'node',
'bundle' => 'person',
);
field_create_instance($instance);
El código anterior agregará el campo "field_firstname" al tipo de contenido con el nombre de máquina "persona". Por lo tanto, puede crear un módulo con un formulario que le permita seleccionar un campo y varios tipos de contenido y, al enviarlo, el campo se agrega a todos los tipos de contenido seleccionados.
fuente
Las pocas veces que tuve que hacer esto, utilicé Field Collection .
Sin embargo, todavía es bastante arduo, ya que debe agregar el campo de colección de campos a cada tipo de contenido. Dicho esto, si está agregando 5 o 6 campos a múltiples tipos de contenido, solo tiene que configurar los 5 o 6 campos iniciales una vez en la colección de campos.
Después de eso, crea el campo de colección de campos (por el bien de los argumentos, llamémoslo
field_collection_field
) en uno de sus tipos de contenido, y luego reutiliza el mismo campo en todos los demás.Como dije, aún debe configurar un campo en x cantidad de tipos de contenido ... pero es mejor que crear 10 campos en 10 tipos de contenido (por ejemplo).
fuente
Si se siente cómodo manipulando la base de datos directamente, las instancias de campo se almacenan en la tabla {field_config_instance}. Puede agregar / configurar su campo para un tipo de contenido, luego buscar el registro en la tabla de la base de datos y duplicarlo.
Tendrá que cambiar dos valores de columna en la fila duplicada:
fuente