Submodules.

Learn DXPR BuilderExtendArchitectuur en API’s

De map modules/ bevat drie submodules. Twee zijn kleine configuratiepakketten: een inhoudstype en een bloktype gekoppeld aan de builder. De derde is de legacy Entity Browser-mediakiezer die ouder is dan Media Library-ondersteuning. Deze pagina documenteert wat elk installeert, waarvan het afhangt en hoe je het inschakelt of uitfaseert.

Module Machinenaam Levert Status
DXPR Builder Drag and Drop Page dxpr_builder_page drag_and_drop_page-inhoudstype Ondersteund
DXPR Builder Block Type dxpr_builder_block drag_and_drop_block-bloktype Ondersteund
DXPR Builder Media dxpr_builder_media Entity Browser-mediakiezer Legacy; verborgen op de pagina Extend

Geen van hen is vereist. De builder werkt op elk tekstveld waarvan de weergave de DXPR Builder-formatter gebruikt (dxpr_builder_text); zie Installeren op bestaande inhoudstypen.

DXPR Builder Drag and Drop Page

modules/dxpr_builder_page installeert het inhoudstype Drag and Drop Page (node.type.drag_and_drop_page) uit config/optional/:

  • Het body-veld, met de standaardweergave die de dxpr_builder_text-formatter gebruikt en de formulierweergave gegroepeerd met Field Group.
  • Drie DXPR Theme-velden: field_dth_hide_regions, field_dth_main_content_width en field_dth_page_layout. Ze installeren alleen wanneer hun veldopslag bestaat, die de DXPR Theme Helper-module levert.

Afhankelijkheden uit dxpr_builder_page.info.yml: field_group, text, node en dxpr_builder. hook_install() maakt de body-veldopslag aan wanneer die niet bestaat. Wanneer de optionele config niet kan installeren, zoals op het Minimal-profiel, installeert hij het type, bodyveld en weergaven zelf, zonder de menu_ui- en path-delen. dxpr_builder_page_update_8001() markeert de geïnstalleerde config als afgedwongen door de module.

src/DXPRBuilderPageUninstallValidator.php (geregistreerd in dxpr_builder_page.services.yml) blokkeert deïnstalleren zolang een drag_and_drop_page-node bestaat. Verwijder of wijzig eerst het type van die nodes.

  1. Schakel de module in:

    drush en dxpr_builder_page -y
    
  2. Maak een pagina op /node/add/drag_and_drop_page. De builder start op het bodyveld wanneer de pagina door een redacteur wordt bekeken.

Als inschakelen mislukt met "unmet dependencies", schakel Field Group in en check dat een body-veldopslag bestaat; zie Problemen na het updaten.

DXPR Builder Block Type

modules/dxpr_builder_block installeert het bloktype Drag and Drop Block (block_content.type.drag_and_drop_block) uit config/optional/, met een body-veld, de dxpr_builder_text-formatter op de standaardweergave en de formulierweergave. Het type heeft Create new revision aanstaan, en dxpr_builder_block_update_8002() zet het aan voor oudere installs, zodat elke builderopslagactie op een blok een revisie maakt (zie Contentstaging).

Afhankelijkheden: text, node en dxpr_builder.

  1. Schakel de module in:

    drush en dxpr_builder_block -y
    
  2. Maak een blok op /block/add/drag_and_drop_block.

  3. Plaats het in een regio. Redacteurs bewerken het ter plekke op elke pagina waar het verschijnt.

dxpr_builder_entity_type_alter() wisselt de eigen Drupal\dxpr_builder\Entity\BlockContent-klasse van de module in, zoals hij doet voor Node. De klasse slaat een lege string op in lege buildervelden, zodat de editor altijd iets heeft om aan te koppelen. Een bloktype dat je zelf maakt werkt daarom op dezelfde manier zodra zijn weergave de DXPR Builder-formatter gebruikt.

DXPR Builder Media

modules/dxpr_builder_media is de op Entity Browser gebaseerde afbeeldingskiezer die de module gebruikte vóór core Media Library-ondersteuning. Hij is gemarkeerd met hidden: true in zijn .info.yml, dus hij verschijnt niet bij Extend; je kunt hem nog steeds inschakelen met Drush. Hij installeert:

  • entity_browser.browser.dxpr_builder_media_modal: een modale browser gelabeld DXPR Builder Image Browser met twee widgets, een Media Library-tab ondersteund door de dxpr_builder_media-View en een Upload new image-tab die via Inline Entity Form een image-media-entiteit maakt.
  • views.view.dxpr_builder_media: het mediagrid voor de eerste widget.
  • image.style.dxpr_builder_media_thumbnail: een 300 bij 300 pixel scale-and-crop-stijl voor het grid.
  • Libraries view, claro_style en gin_style (dxpr_builder_media.libraries.yml). De module koppelt de Gin-stylesheet aan de View wanneer het actieve thema Gin is of erop is gebaseerd, en anders de Claro-stylesheet.

Afhankelijkheden: inline_entity_form, entity_browser, entity_browser_entity_form, media, media_library en views. Bij installatie zet de module media_browser in dxpr_builder.settings op dxpr_builder_media_modal; bij deïnstallatie zet hij hem op een lege string (Basic file upload) en verwijdert de afbeeldingsstijl.

De aanbevolen browser is core Media Library, die geen submodule nodig heeft:

  1. Deïnstalleer de legacymodule als die is ingeschakeld:

    drush pm:uninstall dxpr_builder_media -y
    
  2. Ga naar DXPR Studio > DXPR Builder > General Settings (/admin/dxpr_studio/dxpr_builder/settings) en open Media.

  3. Zet Browser type op Media Library en klik op Save settings. De deïnstallatie heeft hem teruggezet op Basic file upload.

Houd de submodule alleen op een site die afhangt van een Entity Browser die bestands-ID's teruggeeft; zie Afbeeldingen uploaden niet of verdwijnen voor de fouten die een niet-passende browser produceert. De module draagt de enige PHPUnit-test van de repository, tests/src/FunctionalJavascript/MediaEntityBrowserTest.php; zie Testen.

Meerdere tegelijk inschakelen

drush en dxpr_builder_page dxpr_builder_block -y

Elke submodule is onafhankelijk van de andere.

Wat nu?