Submódulos.

Learn DXPR BuilderExtendArchitectuur en API’s

El directorio modules/ tiene tres submódulos. Dos son pequeños paquetes de configuración: un tipo de contenido y un tipo de bloque conectados al constructor. El tercero es el selector de medios Entity Browser heredado que precede a la compatibilidad con Media Library. Esta página documenta lo que cada uno instala, de qué depende y cómo habilitarlo o retirarlo.

Módulo Nombre de máquina Ofrece Estado
DXPR Builder Drag and Drop Page dxpr_builder_page drag_and_drop_page como tipo de contenido Admitido
DXPR Builder Block Type dxpr_builder_block drag_and_drop_block como tipo de bloque Admitido
DXPR Builder Media dxpr_builder_media Selector de medios Entity Browser Heredado; oculto en la página Extend

Ninguno es obligatorio. El constructor funciona en cualquier campo de texto cuya presentación usa el formato DXPR Builder (dxpr_builder_text); consulta Instalación en tipos de contenido existentes.

DXPR Builder Drag and Drop Page

modules/dxpr_builder_page instala el tipo de contenido Drag and Drop Page (node.type.drag_and_drop_page) desde config/optional/:

  • El campo body, con la presentación predeterminada usando el formato dxpr_builder_text y la presentación de formulario agrupada con Field Group.
  • Tres campos de DXPR Theme: field_dth_hide_regions, field_dth_main_content_width y field_dth_page_layout. Se instalan solo cuando existen sus almacenamientos de campo, que el módulo DXPR Theme Helper ofrece.

Dependencias desde dxpr_builder_page.info.yml: field_group, text, node y dxpr_builder. hook_install() crea el almacenamiento de campo body cuando no existe. Cuando la configuración opcional no puede instalarse, como en el perfil Minimal, instala el tipo, el campo body y las presentaciones por su cuenta, sin las partes menu_ui y path. dxpr_builder_page_update_8001() marca la configuración instalada como impuesta por el módulo.

src/DXPRBuilderPageUninstallValidator.php (registrado en dxpr_builder_page.services.yml) bloquea la desinstalación mientras existe algún nodo drag_and_drop_page. Elimina o cambia el tipo de esos nodos primero.

  1. Habilita el módulo:

    drush en dxpr_builder_page -y
    
  2. Crea una página en /node/add/drag_and_drop_page. El constructor arranca en el campo body cuando una persona que edita ve la página.

Si habilitar falla con "unmet dependencies", habilita Field Group y comprueba que existe un almacenamiento de campo body; consulta Problemas tras actualizar.

DXPR Builder Block Type

modules/dxpr_builder_block instala el tipo de bloque Drag and Drop Block (block_content.type.drag_and_drop_block) desde config/optional/, con un campo body, el formato dxpr_builder_text en la presentación predeterminada, y la presentación de formulario. El tipo tiene Create new revision activado, y dxpr_builder_block_update_8002() lo activa para instalaciones viejas, así que cada guardado del constructor en un bloque crea una revisión (consulta Staging de contenidos).

Dependencias: text, node y dxpr_builder.

  1. Habilita el módulo:

    drush en dxpr_builder_block -y
    
  2. Crea un bloque en /block/add/drag_and_drop_block.

  3. Ponlo en una región. Las personas que editan lo editan en su sitio en cualquier página donde aparece.

dxpr_builder_entity_type_alter() cambia a la propia clase Drupal\dxpr_builder\Entity\BlockContent del módulo, como hace para Node. La clase guarda una cadena vacía en campos del constructor vacíos, así que el editor siempre tiene algo a lo que unirse. Un tipo de bloque que creas por tu cuenta funciona igual una vez que su presentación usa el formato de DXPR Builder.

DXPR Builder Media

modules/dxpr_builder_media es el selector de imágenes basado en Entity Browser que el módulo usaba antes de la compatibilidad con Media Library del núcleo. Está marcado hidden: true en su .info.yml, así que no aparece en Extend; aún puedes habilitarlo con Drush. Instala:

  • entity_browser.browser.dxpr_builder_media_modal: un explorador modal etiquetado DXPR Builder Image Browser con dos widgets, una pestaña Media Library respaldada por la vista dxpr_builder_media y una pestaña Upload new image que crea una entidad media image con Inline Entity Form.
  • views.view.dxpr_builder_media: la cuadrícula de medios para el primer widget.
  • image.style.dxpr_builder_media_thumbnail: un estilo de escala y recorte de 300 por 300 píxeles para la cuadrícula.
  • Bibliotecas view, claro_style y gin_style (dxpr_builder_media.libraries.yml). El módulo adjunta la hoja de estilos Gin a la vista cuando el tema activo es Gin o basado en él, y la hoja de estilos Claro si no.

Dependencias: inline_entity_form, entity_browser, entity_browser_entity_form, media, media_library y views. Al instalar, el módulo fija media_browser en dxpr_builder.settings a dxpr_builder_media_modal; al desinstalar lo fija a una cadena vacía (Basic file upload) y elimina el estilo de imagen.

El explorador recomendado es Media Library del núcleo, que no necesita submódulo:

  1. Desinstala el módulo heredado si está habilitado:

    drush pm:uninstall dxpr_builder_media -y
    
  2. Ve a DXPR Studio > DXPR Builder > General Settings (/admin/dxpr_studio/dxpr_builder/settings) y abre Media.

  3. Fija Browser type en Media Library y haz clic en Save settings. La desinstalación lo restableció a Basic file upload.

Conserva el submódulo solo en un sitio que depende de un Entity Browser que devuelve ID de archivo; consulta Las imágenes no se suben o desaparecen para los errores que produce un explorador no coincidente. El módulo lleva la única prueba PHPUnit del repositorio, tests/src/FunctionalJavascript/MediaEntityBrowserTest.php; consulta Pruebas.

Habilitar varios a la vez

drush en dxpr_builder_page dxpr_builder_block -y

Cada submódulo es independiente de los demás.

¿Qué sigue?