Multisite-installaties.
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 builderdie 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_classesin een.info.ymlvan 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
-
Maak de
sites/<name>/settings.phpvan de site en de database aan zoals voor elke Drupal-multisitesite. -
Schakel de module op die site in:
drush --uri=https://<site-host> en dxpr_builder -y -
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. -
Zet Sideload Bootstrap files passend bij het thema van de site.
-
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:
-
Exporteer de configuratie van de bronsite:
drush --uri=https://<source-host> config:export -
Kopieer de bestanden
dxpr_builder.page_template.*.ymlendxpr_builder.user_template.*.ymlnaar de configuratiesyncmap van de doelsite. -
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?
- Multisite-licenties voor het tellen van redacteurs en het vrijgeven van licenties.
- Sjablonen importeren en exporteren voor het verplaatsen van losse sjablonen via de admininterface.