Multisite-Installationen.

DXPR Builder lernenWebsite verwaltenIm Live-Betrieb

DXPR Builder läuft in einer Drupal-Multisite-Installation wie auf getrennten Servern: eine Kopie des Modulcodes, eine Datenbank pro Website und ein Produktschlüssel, den alle Websites teilen. Diese Seite erklärt, was geteilt wird, was pro Website gilt und wie Sie es einrichten.

Lizenzierung über Websites hinweg

Ein Produktschlüssel bedient alle Ihre Websites. Die Lizenzierung zählt pro bearbeitender Person, nicht pro Website, und der Zähler liegt beim DXPR-Lizenzserver:

  • Jede Website sendet ihren Hostnamen und ihre Bearbeitenden (die Konten mit der Berechtigung edit with dxpr builder, die nicht ausgeschlossen sind, plus Benutzer 1) an den Lizenzserver (src/Service/DxprBuilderLicenseService.php). Konten ohne gültige E-Mail-Adresse werden nicht gesendet.
  • Der Server hält einen Datensatz pro E-Mail-Adresse mit der Liste der Domains, auf denen diese Adresse bearbeitet hat. Wer auf drei Websites mit derselben E-Mail-Adresse bearbeitet, zählt einmal.
  • Jede Website holt die geteilte Redaktionsliste vom Server und meldet die Gesamtzahl an den Statusbericht und die Seite User Licenses. Die Liste wird 24 Stunden zwischengespeichert.

Lesen Sie Multisite-Lizenzierung, wie Bearbeitende gezählt und freigegeben werden.

Was geteilt wird und was pro Website gilt

Geteilt über die Codebasis:

  • Das Modul und seine Submodule in modules/contrib/dxpr_builder.
  • Das Editor-JavaScript. Mit Asset source auf Cloud, der Standardeinstellung, lädt jede Website dasselbe Release vom DXPR-CDN. Wenn das Modulverzeichnis einen lokalen Build hält, lädt jede Website stattdessen die Dateien von dort.
  • Icon-Sets und Dienstklassen, die Module und Themes deklarieren (*.dxpr_icon_sets.yml, dxpr_builder_classes in einer .info.yml des Themes). Die Klassen eines Themes erscheinen nur auf Websites, auf denen dieses Theme aktiviert ist.

Pro Website, weil es in Datenbank und Konfiguration dieser Website lebt:

  • dxpr_builder.settings: der Produktschlüssel oder die Key-Entität, die ihn hält, Custom styles, Sideload Bootstrap files, Browser type für Medien, die Textfilter- und Editor-Asset-Einstellungen.
  • Die Key-Entität selbst (key.key.*), wenn der Produktschlüssel mit dem Key-Modul gespeichert wird.
  • KI-Einstellungen (DXPR Studio > DXPR Builder > AI), einschließlich der aktivierten Modelle.
  • Builder-Profile (dxpr_builder.dxpr_builder_profile.*), Seitenvorlagen (dxpr_builder.page_template.*) und Benutzervorlagen (dxpr_builder.user_template.*).
  • Hochgeladene Bilder im Dateiverzeichnis jeder Website (dxpr_builder_images, dxpr_builder_videos, dxpr_builder_files).

Die Bootstrap-Einstellung hat zwei Werte, None (theme provides Bootstrap) und Bootstrap 5. Wählen Sie pro Website passend zum Theme, das diese Website nutzt.

Neue Website in der Multisite einrichten

  1. Erstellen Sie sites/<name>/settings.php und die Datenbank der Website wie für jede Drupal-Multisite-Website.

  2. Aktivieren Sie das Modul auf dieser Website:

    drush --uri=https://<site-host> en dxpr_builder -y
    
  3. Gehen Sie auf dieser Website zu DXPR Studio > DXPR Builder > General Settings (/admin/dxpr_studio/dxpr_builder/settings). Fügen Sie im Abschnitt License denselben Produktschlüssel ein, den Sie auf den anderen Websites nutzen, oder wählen Sie einen Key dieser Website, der ihn hält.

  4. Setzen Sie Sideload Bootstrap files passend zum Theme der Website.

  5. Erstellen Sie die Builder-Profile der Website und importieren Sie bei Bedarf Vorlagen wie unten beschrieben.

Vorlagen zwischen Websites teilen

Seitenvorlagen und Benutzervorlagen sind Konfigurationsentitäten, daher bewegen Sie sie per Konfigurationsexport und -import:

  1. Exportieren Sie die Konfiguration der Quell-Website:

    drush --uri=https://<source-host> config:export
    
  2. Kopieren Sie die Dateien dxpr_builder.page_template.*.yml und dxpr_builder.user_template.*.yml in das Konfigurations-Sync-Verzeichnis der Ziel-Website.

  3. Importieren Sie sie auf der Ziel-Website:

    drush --uri=https://<target-host> config:import --partial
    

Benutzervorlagen tragen eine uid; die exportierte Datei referenziert die ID der besitztenden Person auf der Quell-Website, prüfen Sie daher nach dem Import die besitztende Person.

Wie geht es weiter?