Uso de la interfaz de usuario para exportar código para campos personalizados
A veces, cuando extraes un tipo de contenido de un módulo personalizado, también puedes agregar campos relacionados con ese tipo de contenido. La capacidad de crear campos automáticamente te permite eliminar y reinstalar en múltiples sitios sin dejar campos innecesarios y garantiza que no olvides agregarlos. Hay dos maneras de agregar estos campos a tu base de código, que exploraremos.
Requisitos previos
- Drupal 8.0.x instalado.
- Tener un módulo personalizado (el nombre del módulo usado en este ejemplo es foobar).
- Tener un tipo de contenido personalizado en el módulo (por favor, sigue las instrucciones en la página principal. El nombre del tipo de contenido será Marca de automóvil).
Agregar campos adicionales a nuestro tipo de contenido
Hay dos formas de hacer este paso. Puedes usar la interfaz de usuario para crear campos y exportar la configuración a archivos, o puedes escribir los archivos manualmente. Me gusta usar la primera opción para asegurar que no omitas nada necesario, sin embargo los campos exportados comienzan con "field_" y no con "foobar_car_brand_" para asociarlos con nuestro tipo de contenido personalizado. Aquí veremos cómo usar la interfaz de usuario para crear campos y exportar el código que se usará en tu módulo personalizado.
Usar la interfaz para crear campos
Como se mencionó antes, este método es un poco mejor para usuarios que no están muy familiarizados con los requisitos que Drupal impone para agregar campos a un tipo de contenido.
Habilitar el tipo de contenido personalizado
Si aún no has habilitado el módulo foobar al final de la página principal, hazlo ahora. Si ahora vas a la página de "Crear contenido", verás que puedes crear un nuevo nodo del tipo de contenido "Car Brand".
/admin/structure/types/manage/car_brand/fields
Ahora que tienes habilitado el módulo, puedes ir a la sección de gestión de campos de tu tipo de contenido. Añade todos los campos que desees. Asegúrate de que uno de los campos que añades sea "Brand Information" (field_brand_information) del tipo "Texto (formateado, largo, con resumen)", y elimina el campo "Texto". Deja todo lo demás por defecto.
Usar la interfaz para exportar la configuración de campos /admin/config/development/configuration/single/export
Una vez que hayas añadido tus campos, ve a la página de sincronización de configuración. En la parte superior hay tres pestañas. Selecciona "Exportar" de esas tres. Luego selecciona "Elemento único" debajo de esas pestañas.
Obtener la configuración para exportar
Abajo se adjuntan cuatro imágenes que muestran qué elementos debes exportar para el campo "field_brand_information".
- Almacenamiento del campo (Field Storage)
- Campo (Field)
- Visualización de entidad (Entity View Display)
- Visualización del formulario de entidad (Entity Form Display)
Debajo del bloque de código de configuración verás el nombre del archivo que debes crear en tu módulo personalizado. Copia todo el código de configuración en el archivo indicado, excepto la primera línea que comienza con "uuid:".
Nota: si añadiste otros campos adicionales, deberás exportar el almacenamiento de campo y el campo para cada uno de ellos. Lo mismo aplica si creaste varias visualizaciones, como teaser. En este ejemplo mostramos sólo las visualizaciones por defecto.
modules/custom/foobar/config/install/field.storage.node.field_brand_information.yml
modules/custom/foobar/config/install/field.field.node.car_brand.field_brand_information.yml
modules/custom/foobar/config/install/core.entity_view_display.node.car_brand.default.yml
modules/custom/foobar/config/install/core.entity_form_display.node.car_brand.default.yml
Eliminar y volver a habilitar el módulo foobar
Ahora que tienes toda la configuración de campos en tu base de código, es hora de eliminar el módulo foobar. Después de desinstalarlo, vuelve a habilitar el módulo para ver si añade tus campos personalizados. Si ahora visitas la página "Crear contenido", verás que puedes crear un nuevo nodo del tipo "Car Brand" y que incluirá nuestro nuevo campo llamado "Brand Information" y cualquier otro campo que hayas creado.
Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.