Multisite-installaties.

DXPR Builder lerenDe site beherenNaar productie

DXPR Builder draait in een Drupal-multisite-installatie hetzelfde als op aparte servers: één kopie van de modulecode, één database per site en één productsleutel die alle sites delen. Deze pagina behandelt wat wordt gedeeld, wat per site geldt en hoe je het instelt.

Licenties voor alle sites

Eén productsleutel bedient al je sites. Licenties gelden per redacteur, niet per site, en de telling wordt bijgehouden door de DXPR-licentieserver:

  • Elke site stuurt zijn hostnaam en zijn redacteurs (de accounts met de rechten edit with dxpr builder die niet zijn uitgesloten, plus gebruiker 1) naar de licentieserver (src/Service/DxprBuilderLicenseService.php). Accounts zonder geldig e-mailadres worden niet verstuurd.
  • De server houdt één record per e-mailadres bij met de lijst domeinen waarop dat adres heeft bewerkt. Iemand die op drie sites met hetzelfde e-mailadres bewerkt telt één keer.
  • Elke site haalt de gedeelde redacteurslijst van de server op en rapporteert het totaal aan het statusrapport en de pagina User Licenses. De lijst wordt 24 uur gecachet.

Lees Multisite-licenties voor hoe redacteurs worden geteld en vrijgegeven.

Wat wordt gedeeld en wat per site geldt

Gedeeld via de codebase:

  • De module en zijn submodules in modules/contrib/dxpr_builder.
  • De editor-JavaScript. Met Asset source op Cloud, de standaard, laadt elke site dezelfde release vanaf het DXPR CDN. Wanneer de moduleremap een lokale build bevat, laadt elke site de bestanden daar vandaan in plaats daarvan.
  • Pictogrammensets en utility-klassen gedeclareerd door modules en thema's (*.dxpr_icon_sets.yml, dxpr_builder_classes in een .info.yml van een thema). De klassen van een thema verschijnen alleen op sites waar dat thema is ingeschakeld.

Per site, omdat het in de database en configuratie van die site staat:

  • dxpr_builder.settings: de productsleutel of de Key-entiteit die hem bevat, Custom styles, Sideload Bootstrap files, Browser type voor media, de tekstfilter- en editorassetinstellingen.
  • De Key-entiteit zelf (key.key.*), wanneer de productsleutel met de Key-module wordt opgeslagen.
  • AI-instellingen (DXPR Studio > DXPR Builder > AI), inclusief welke modellen zijn ingeschakeld.
  • Builderprofielen (dxpr_builder.dxpr_builder_profile.*), pagina sjablonen (dxpr_builder.page_template.*) en gebruikerssjablonen (dxpr_builder.user_template.*).
  • Geüploade afbeeldingen in de files-map van elke site (dxpr_builder_images, dxpr_builder_videos, dxpr_builder_files).

De Bootstrap-instelling heeft twee waarden, None (theme provides Bootstrap) en Bootstrap 5. Kies per site passend bij het thema dat die site gebruikt.

Een nieuwe site in de multisite opzetten

  1. Maak de sites/<name>/settings.php van de site en de database aan zoals voor elke Drupal-multisitesite.

  2. Schakel de module op die site in:

    drush --uri=https://<site-host> en dxpr_builder -y
    
  3. Ga op die site naar DXPR Studio > DXPR Builder > General Settings (/admin/dxpr_studio/dxpr_builder/settings). Plak in de sectie License dezelfde productsleutel die je op de andere sites gebruikt, of selecteer een Key op deze site die hem bevat.

  4. Zet Sideload Bootstrap files passend bij het thema van de site.

  5. Maak de builderprofielen van de site aan en importeer indien nodig sjablonen zoals hieronder beschreven.

Sjablonen tussen sites delen

Paginasjablonen en gebruikerssjablonen zijn configuratie-entiteiten, dus je kunt ze verplaatsen met configuratie-export en -import:

  1. Exporteer de configuratie van de bronsite:

    drush --uri=https://<source-host> config:export
    
  2. Kopieer de bestanden dxpr_builder.page_template.*.yml en dxpr_builder.user_template.*.yml naar de configuratiesyncmap van de doelsite.

  3. Importeer ze op de doelsite:

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

Gebruikerssjablonen dragen een uid; het geëxporteerde bestand verwijst naar de gebruikers-ID van de eigenaar op de bronsite, dus controleer de eigenaar na de import.

Wat nu?