Installations multisite.

Apprendre DXPR BuilderGérer le sitePasser en production

DXPR Builder tourne dans une installation multisite Drupal comme sur des serveurs séparés : une copie du code du module, une base de données par site, et une clé de produit que tous les sites partagent. Cette page couvre ce qui est partagé, ce qui est propre à chaque site, et comment le configurer.

Licences sur les sites

Une clé de produit sert tous vos sites. La licence compte par contributeur, pas par site, et le total est tenu par le serveur de licences DXPR :

  • Chaque site envoie son nom d’hôte et ses contributeurs (les comptes avec la permission edit with dxpr builder qui ne sont pas exclus, plus l’utilisateur 1) au serveur de licences (src/Service/DxprBuilderLicenseService.php). Les comptes sans adresse e-mail valide ne sont pas envoyés.
  • Le serveur garde un dossier par adresse e-mail avec la liste des domaines où cette adresse a modifié. Une personne qui modifie sur trois sites avec la même adresse e-mail compte une fois.
  • Chaque site récupère la liste partagée des contributeurs depuis le serveur et rapporte le total au rapport de statut et à la page User Licenses. La liste est mise en cache pour 24 heures.

Lisez Licences multi-sites pour savoir comment les contributeurs sont comptés et libérés.

Ce qui est partagé et ce qui est propre à chaque site

Partagé via la base de code :

  • Le module et ses sous-modules dans modules/contrib/dxpr_builder.
  • Le JavaScript de l’éditeur. Avec Asset source réglé sur Cloud, le défaut, chaque site charge la même version depuis le CDN DXPR. Quand le répertoire du module contient un build local, chaque site charge plutôt les fichiers depuis là.
  • Les jeux d’icônes et classes utilitaires déclarés par les modules et thèmes (*.dxpr_icon_sets.yml, dxpr_builder_classes dans un .info.yml de thème). Les classes d’un thème n’apparaissent que sur les sites où ce thème est activé.

Propre à chaque site, car cela vit dans la base de données et la configuration de ce site :

  • dxpr_builder.settings : la clé de produit ou l’entité Key qui la contient, Custom styles, Sideload Bootstrap files, Browser type pour les médias, les réglages de filtre de texte et de ressources de l’éditeur.
  • L’entité Key elle-même (key.key.*), quand la clé de produit est stockée avec le module Key.
  • Les réglages IA (DXPR Studio > DXPR Builder > AI), dont les modèles activés.
  • Les profils du builder (dxpr_builder.dxpr_builder_profile.*), les modèles de page (dxpr_builder.page_template.*) et les modèles d’utilisateur (dxpr_builder.user_template.*).
  • Les images téléversées dans le répertoire de fichiers de chaque site (dxpr_builder_images, dxpr_builder_videos, dxpr_builder_files).

Le réglage Bootstrap a deux valeurs, None (theme provides Bootstrap) et Bootstrap 5. Choisissez par site selon le thème qu’utilise ce site.

Configurer un nouveau site dans le multisite

  1. Créez le sites/<name>/settings.php du site et sa base de données comme pour tout site multisite Drupal.

  2. Activez le module sur ce site :

    drush --uri=https://<site-host> en dxpr_builder -y
    
  3. Accédez à DXPR Studio > DXPR Builder > General Settings (/admin/dxpr_studio/dxpr_builder/settings) sur ce site. Dans la section License, collez la même clé de produit que sur les autres sites, ou sélectionnez une Key de ce site qui la contient.

  4. Réglez Sideload Bootstrap files selon le thème du site.

  5. Créez les profils du builder du site et, si besoin, importez des modèles comme décrit ci-dessous.

Partager des modèles entre sites

Les modèles de page et d’utilisateur sont des entités de configuration, donc vous pouvez les déplacer par export et import de configuration :

  1. Exportez la configuration du site source :

    drush --uri=https://<source-host> config:export
    
  2. Copiez les fichiers dxpr_builder.page_template.*.yml et dxpr_builder.user_template.*.yml dans le répertoire de synchronisation de configuration du site cible.

  3. Importez-les sur le site cible :

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

Les modèles d’utilisateur portent un uid ; le fichier exporté référence l’identifiant de l’utilisateur propriétaire sur le site source, donc vérifiez le propriétaire après l’import.

Et ensuite ?