Submodule.

Learn DXPR BuilderExtendArchitectuur en API’s

Der Ordner modules/ hält drei Submodule. Zwei sind kleine Konfigurationspakete: ein Inhaltstyp und ein Blocktyp, verdrahtet mit dem Builder. Das dritte ist der alte Entity-Browser-Medienpicker, der älter ist als die Medienbibliothek-Unterstützung. Diese Seite dokumentiert, was jedes installiert, wovon es abhängt und wie Sie es aktivieren oder ausmustern.

Modul Systemname Bietet Status
DXPR Builder Drag and Drop Page dxpr_builder_page drag_and_drop_page-Inhaltstyp Unterstützt
DXPR Builder Block Type dxpr_builder_block drag_and_drop_block-Blocktyp Unterstützt
DXPR Builder Media dxpr_builder_media Entity-Browser-Medienpicker Alt; verborgen auf der Extend-Seite

Keines ist erforderlich. Der Builder arbeitet auf jedem Textfeld, dessen Anzeige den Formatierer DXPR Builder nutzt (dxpr_builder_text); siehe Installation auf bestehenden Inhaltstypen.

DXPR Builder Drag and Drop Page

modules/dxpr_builder_page installiert den Inhaltstyp Drag and Drop Page (node.type.drag_and_drop_page) aus config/optional/:

  • Das Feld body, mit Standardanzeige per Formatierer dxpr_builder_text und mit Field Group gruppiertem Formular.
  • Drei DXPR-Theme-Felder: field_dth_hide_regions, field_dth_main_content_width und field_dth_page_layout. Sie installieren sich nur, wenn ihre Feld-Storages existieren, die das DXPR-Theme-Helper-Modul bereitstellt.

Abhängigkeiten aus dxpr_builder_page.info.yml: field_group, text, node und dxpr_builder. hook_install() erzeugt das body-Feld-Storage, wenn es fehlt. Wenn die optionale Konfiguration nicht installieren kann, wie auf dem Minimal-Profil, installiert es Typ, Body-Feld und Anzeigen selbst, ohne die menu_ui- und path-Teile. dxpr_builder_page_update_8001() markiert die installierte Konfiguration als vom Modul erzwungen.

src/DXPRBuilderPageUninstallValidator.php (registriert in dxpr_builder_page.services.yml) blockiert Deinstallation, solange eine drag_and_drop_page-Node existiert. Löschen oder ändern Sie zuerst den Typ dieser Nodes.

  1. Modul aktivieren:

    drush en dxpr_builder_page -y
    
  2. Seite unter /node/add/drag_and_drop_page erstellen. Der Builder startet auf dem Body-Feld, wenn die Seite von einer bearbeitenden Person betrachtet wird.

Wenn Aktivieren mit „unmet dependencies“ scheitert, aktivieren Sie Field Group und prüfen, dass ein body-Feld-Storage existiert; siehe Probleme nach dem Update.

DXPR Builder Block Type

modules/dxpr_builder_block installiert den Blocktyp Drag and Drop Block (block_content.type.drag_and_drop_block) aus config/optional/, mit einem body-Feld, dem Formatierer dxpr_builder_text in der Standardanzeige und der Formularanzeige. Der Typ hat Create new revision eingeschaltet, und dxpr_builder_block_update_8002() schaltet es für ältere Installationen ein, daher erzeugt jeder Builder-Speichervorgang auf einem Block eine Revision (siehe Content-Staging).

Abhängigkeiten: text, node und dxpr_builder.

  1. Modul aktivieren:

    drush en dxpr_builder_block -y
    
  2. Block unter /block/add/drag_and_drop_block erstellen.

  3. In einer Region platzieren. Bearbeitende bearbeiten ihn direkt auf jeder Seite, auf der er erscheint.

dxpr_builder_entity_type_alter() tauscht die eigene Klasse Drupal\dxpr_builder\Entity\BlockContent des Moduls ein, wie für Node. Die Klasse speichert eine leere Zeichenkette in leere Builder-Felder, daher hat der Editor immer etwas, woran er andockt. Ein Blocktyp, den Sie selbst erstellen, funktioniert daher genauso, sobald seine Anzeige den DXPR-Builder-Formatierer nutzt.

DXPR Builder Media

modules/dxpr_builder_media ist der Entity-Browser-basierte Bildpicker, den das Modul vor der Core-Medienbibliothek-Unterstützung nutzte. Es ist mit hidden: true in seiner .info.yml markiert, erscheint daher nicht unter Extend; Sie können es weiterhin per Drush aktivieren. Es installiert:

  • entity_browser.browser.dxpr_builder_media_modal: ein modaler Browser mit Bezeichnung DXPR Builder Image Browser mit zwei Widgets, einem Tab Media Library, gestützt von der Ansicht dxpr_builder_media, und einem Tab Upload new image, der über Inline Entity Form eine image-Medienentität erzeugt.
  • views.view.dxpr_builder_media: das Medienraster für das erste Widget.
  • image.style.dxpr_builder_media_thumbnail: ein 300-mal-300-Pixel- Skalieren-und-Zuschneiden-Stil für das Raster.
  • Bibliotheken view, claro_style und gin_style (dxpr_builder_media.libraries.yml). Das Modul hängt das Gin-Stylesheet an die Ansicht, wenn das aktive Theme Gin ist oder darauf basiert, und sonst das Claro-Stylesheet.

Abhängigkeiten: inline_entity_form, entity_browser, entity_browser_entity_form, media, media_library und views. Bei Installation setzt das Modul media_browser in dxpr_builder.settings auf dxpr_builder_media_modal; bei Deinstallation setzt es ihn auf leere Zeichenkette (Basic file upload) und löscht den Bildstil.

Der empfohlene Browser ist die Core-Medienbibliothek, die kein Submodul braucht:

  1. Altes Modul deinstallieren, falls aktiviert:

    drush pm:uninstall dxpr_builder_media -y
    
  2. Zu DXPR Studio > DXPR Builder > General Settings (/admin/dxpr_studio/dxpr_builder/settings) gehen und Media öffnen.

  3. Setzen Sie Browser type auf Media Library und klicken Sie auf Save settings. Die Deinstallation hat es auf Basic file upload zurückgesetzt.

Behalten Sie das Submodul nur auf einer Website, die von einem Entity-Browser abhängt, der Datei-IDs zurückgibt; siehe Bilder laden nicht hoch oder verschwinden für die Fehler, die ein unpassender Browser erzeugt. Das Modul trägt den einzigen PHPUnit-Test des Repositorys, tests/src/FunctionalJavascript/MediaEntityBrowserTest.php; siehe Testen.

Mehrere auf einmal aktivieren

drush en dxpr_builder_page dxpr_builder_block -y

Jedes Submodul ist unabhängig von den anderen.

Wie geht es weiter?