Creación de un tipo de contenido personalizado en Drupal 8
Esta página es una copia de la configuración "Habilitar por defecto" en el módulo Drupal 8. Debe considerarse como una amortización.
Crear un tipo de contenido personalizado se ha vuelto bastante sencillo gracias a la nueva API de configuración que viene con Drupal 8.
Requisitos previos
- Drupal 8.0.x instalado
- Tener un módulo propio (el nombre del módulo utilizado en este ejemplo es foobar)
Crear un tipo de contenido personalizado
Como se mencionó en la introducción, crear un tipo de contenido personalizado se realiza creando varios archivos YAML que contienen toda la configuración necesaria. En este ejemplo crearemos el tipo de contenido Car Brand, que contendrá dos campos (por defecto): cuerpo y título.
foobar/config/install/node.type.car_brand.yml
Este archivo indica a Drupal que debe crear un nuevo tipo de contenido.
Nota: ten en cuenta que añadimos una dependencia forzada al módulo foobar. Si no añadimos esta dependencia, Drupal no eliminará el tipo de contenido cuando se desinstale nuestro módulo. Cuando el desarrollador del sitio decida que ya no necesita este módulo, no queremos que el tipo de contenido siga estando disponible.
# node.type.car_brand.yml langcode: en status: true dependencies: enforced: module: - foobar # Este es el nombre del módulo que usamos en este ejemplo name: 'Car Brand' type: car_brand description: 'Tipo de contenido que puede usarse para proporcionar información adicional sobre <em>Marcas de autos</em>' help: '' new_revision: false preview_mode: 1 display_submitted: true
foobar/config/install/field.field.node.car_brand.body.yml
Este archivo añadirá el campo body a nuestro tipo de contenido.
# field.field.node.car_brand.body.yml langcode: en status: true dependencies: config: - field.storage.node.body - node.type.car_brand module: - text id: node.car_brand.body field_name: body entity_type: node bundle: car_brand label: Body description: 'Información más específica sobre la marca del auto.' required: false translatable: true default_value: { } default_value_callback: '' settings: display_summary: true field_type: text_with_summary
foobar/config/install/core.entity_view_display.node.car_brand.teaser.yml
Este archivo indica a Drupal cómo debería mostrarse el teaser de nuestro tipo de contenido personalizado.
# core.entity_view_display.node.car_brand.teaser.yml langcode: en status: true dependencies: config: - core.entity_view_mode.node.teaser - field.field.node.car_brand.body - node.type.car_brand module: - text - user id: node.car_brand.teaser targetEntityType: node bundle: car_brand mode: teaser content: body: label: hidden type: text_summary_or_trimmed weight: 101 settings: trim_length: 600 third_party_settings: { } links: weight: 100 hidden: { }
foobar/config/install/core.entity_view_display.node.car_brand.default.yml
Este archivo indica a Drupal cómo debería mostrarse el contenido de nuestro tipo personalizado por defecto.
# core.entity_view_display.node.car_brand.default.yml langcode: en status: true dependencies: config: - field.field.node.car_brand.body - node.type.car_brand module: - text - user id: node.car_brand.default targetEntityType: node bundle: car_brand mode: default content: body: label: hidden type: text_default weight: 101 settings: { } third_party_settings: { } links: weight: 100 hidden: { }
foobar/config/install/core.entity_form_display.node.car_brand.default.yml
Este archivo indica a Drupal cómo debe mostrarse el formulario para crear un nuevo nodo de nuestro tipo de contenido personalizado.
# core.entity_form_display.node.car_brand.default.yml langcode: en status: true dependencies: config: - field.field.node.car_brand.body - node.type.car_brand module: - text - user id: node.car_brand.default targetEntityType: node bundle: car_brand mode: default content: body: label: hidden type: text_textarea_with_summary weight: 101 settings: { } third_party_settings: { } links: weight: 100 hidden: { }
Habilitar el tipo de contenido personalizado
Ahora que tenemos nuestros archivos de configuración, debemos informar a Drupal sobre nuestro nuevo tipo de contenido personalizado. Esto se hace reinstalando el módulo. Si tu módulo no estaba habilitado, simplemente habilítalo. Si ya estaba habilitado, desinstálalo y vuélvelo a habilitar.
Si ahora vas a la página "Crear contenido", verás que puedes crear un nuevo nodo del tipo de contenido "Car Brand".
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.