CHAPITRE 25 — Configuration avancée (constantes) Le module expose une vingtaine de constantes Dolibarr qui permettent d'ajuster son comportement. Ce chapitre les classe par catégorie d'usage avec les valeurs typiques. Sites gérés Constante Description INFRASSTUDIO_MANAGED_SITES CSV des identifiants de sites gérés. Exemple : 1,2,5 . INFRASSTUDIO_SITE__MEDIA_MODE Mode média par site. native (par défaut) ou module . INFRASSTUDIO_SITE__BLOG_INDEX_PAGE Identifiant de la page d'index du blog (active l'assistant « + Nouvel article »). INFRASSTUDIO_SITE__DOCROOT Surcharge du docroot Apache pour ce site spécifique. Portabilité du système de fichiers Pour les hébergements aux configurations non standards : Constante Description INFRASSTUDIO_DOCROOT_PATTERN Modèle de chemin partagé utilisant le marqueur {ref} . Exemple : /srv/sites/{ref} . INFRASSTUDIO_TEMPLATE_EXTRA_DIR Dossier supplémentaire à scanner pour les gabarits de page. Note — Cascade de résolution — Pour le docroot d'un site, l'ordre de recherche est : INFRASSTUDIO_SITE__DOCROOT , puis INFRASSTUDIO_DOCROOT_PATTERN , puis le repli sur /var/www/ . Catalogue produit Constante Description INFRASSTUDIO_WEBSITE_KEY Référence du site cible des wrappers solution. INFRASSTUDIO_PUBLIC_DOCROOT Docroot Apache absolu où écrire les wrappers. INFRASSTUDIO_PRODUCT_UNIVERS_MAP Surcharge JSON de la cartographie catégorie vers univers. INFRASSTUDIO_TRANSLATABLE_PRODUCT_FIELDS CSV de slugs de champs personnalisés à déclarer comme traduisibles, en complément du registre par défaut. INFRASSTUDIO_TRANSLATABLE_PRODUCT_FIELDS_JSON Surcharge JSON complète du registre. INFRASSTUDIO_SITE__WRAPPER_PREFIX Préfixe des wrappers (par défaut solution- ). INFRASSTUDIO_SITE__WRAPPER_TEMPLATE_PAGEURL Slug du gabarit (par défaut solution-detail ). Apparence du Studio Constante Valeurs Par défaut INFRASSTUDIO_UI_THEME light , dark light INFRASSTUDIO_UI_ACCENT indigo , ochre , plum , forest indigo Multilingue côté gabarits Constante Description INFRASSTUDIO_LANG_ISO Force la langue active. Définie dynamiquement par les gabarits. INFRASSTUDIO_LANG_COOKIE Nom du cookie de persistance de la langue (par défaut infras_lang ). INFRASSTUDIO_LANG_MAP_JSON Surcharge de la cartographie ISO2 vers locale (exemple : {"en":"en_GB"} ). INFRASSTUDIO_BLOG_FALLBACK_IMAGE Image par défaut affichée lorsqu'un article ne possède pas d'image principale. Compatibilité et débogage Constante Description INFRASSTUDIO_DOL_VERSION Version de Dolibarr lors de l'activation du module. Géré automatiquement. INFRASSTUDIO_MAIN_VERSION Version du module. Géré automatiquement. INFRASSTUDIO_DISABLE_CHECK_VERSION_MIN À régler sur 1 pour contourner la vérification de version Dolibarr minimale (usage avancé). Définir une constante Méthode A — Via l'administration du module La majorité des constantes sont accessibles dans Outils → InfraSStudio → Configuration, dans la section dépliable « Réglages avancés ». Le formulaire valide les saisies et affiche des avertissements non bloquants en cas d'incohérence. Méthode B — Via SQL INSERT INTO llx_const (name, value, type, visible, entity) VALUES ('INFRASSTUDIO_DOCROOT_PATTERN', '/srv/sites/{ref}', 'chaine', 0, 2); Méthode C — Via PHP en ligne de commande php -r " require 'htdocs/master.inc.php'; \$conf->entity = 2; dolibarr_set_const(\$db, 'INFRASSTUDIO_DOCROOT_PATTERN', '/srv/sites/{ref}', 'chaine', 0, '', 2); " Vérifier la configuration Après chaque modification de constante, lancez la page Diagnostic du module. Elle valide en direct l'existence des chemins, la cohérence des modèles, etc. Onglet Sites — administration centralisée L'onglet Outils → InfraS → InfraSStudio → Configuration → Sites est le point d'entrée canonique pour piloter chaque site Dolibarr Website pris en charge par le module. Il consolide en une seule page la liste des sites détectés, leur statut (géré / non géré), le nombre de pages et de slots qu'ils contiennent, la date de dernière édition et les actions disponibles pour chacun : configurer, voir le site public, exporter en ZIP, restaurer depuis un ZIP, nettoyer. Le tableau s'alimente à la volée à partir de llx_website , llx_website_page et llx_infrasstudio_slot . Aucune configuration préalable n'est nécessaire : tout site Dolibarr Website existant apparaît automatiquement dans la liste, qu'il soit déjà géré par InfraSStudio ou non. Configurer automatiquement un site Pour un site qui n'est pas encore géré par le module (par exemple un site Dolibarr Website existant créé avant l'activation d'InfraSStudio), le bouton « Configurer automatiquement » exécute en un clic la cascade d'opérations habituellement éparpillées dans plusieurs pages d'administration : Détection du docroot Apache effectif en suivant la cascade de résolution en cinq niveaux  : INFRASSTUDIO_SITE__DOCROOT → INFRASSTUDIO_DOCROOT_PATTERN → entrée dans /etc/apache2/sites-enabled/ → réutilisation d'un docroot voisin → repli /var/www/ . Pose des constantes INFRASSTUDIO_WEBSITE_KEY et INFRASSTUDIO_PUBLIC_DOCROOT . Ajout du site à INFRASSTUDIO_MANAGED_SITES pour qu'il apparaisse dans le Studio. Patch des pageN.tpl.php pour invoquer le moteur de slots. Scan initial des tokens {{slot:...}} présents dans le HTML et peuplement de llx_infrasstudio_slot . L'opération est idempotente — un site déjà configuré ne sera pas écrasé, et un re-clic ne pose aucun problème. Pratique pour aligner d'un coup une instance qui contient déjà plusieurs sites Dolibarr Website. Voir mon site public Le bouton « Voir mon site public » ouvre dans un nouvel onglet l'URL publique réelle du site, telle qu'un visiteur la verrait. L'URL est résolue dynamiquement à partir du docroot configuré et du virtual host Apache associé, ce qui évite d'avoir à mémoriser ou retaper l'adresse. Le même bouton est également présent dans la barre supérieure de l'éditeur Studio pour basculer en un clic entre l'édition et le rendu live. Sitemap automatique Chaque site géré dispose d'un fichier sitemap.xml régénéré automatiquement à chaque modification de page. Pas de cron à configurer, pas de bouton à cliquer : la classe StudioSitemap est appelée à la volée chaque fois qu'un slot est publié, qu'une page passe de brouillon à publié ou inversement, ou qu'une page est dupliquée ou supprimée. Le sitemap respecte les bonnes pratiques SEO : les pages en brouillon sont exclues, les pages sœurs (canon + traductions) sont regroupées avec leurs . Exporter un site en ZIP Le bouton « Exporter en ZIP » télécharge une archive complète des données InfraSStudio du site sélectionné, indépendamment du dump SQL global de Dolibarr. L'archive contient : Tous les slots du site (canonique + overrides de locale) au format SQL idempotent. Toutes les configurations de formulaire scopées au site ( fk_website= ), avec leur descripteur JSON complet. Les médias InfraSStudio rattachés au site, fichiers binaires inclus, avec leurs alts par locale. Un manifest qui décrit le contenu de l'archive et la version du module qui l'a produite. Cette archive sert principalement à : Cloner un site d'une instance Dolibarr vers une autre (recette → production, démo → client). Sauvegarder ponctuellement un état stable avant une refonte risquée. Archiver un site en fin de vie sans perdre la trace de sa configuration. Restaurer un site depuis un ZIP Le bouton « Restaurer depuis un ZIP » applique un export précédemment téléchargé sur le site sélectionné. La restauration est idempotente et préserve par défaut les éditions utilisateur déjà présentes : Les slots déjà saisis ne sont pas écrasés, sauf si l'option Forcer le remplacement est cochée. Les médias dont la ref existe déjà sont conservés, sauf en mode force. Les configurations de formulaire en conflit (même name ) sont signalées et l'admin choisit explicitement de les fusionner ou de les remplacer. Note — Cleanup automatique — Quand un site Dolibarr Website est supprimé via l'interface native ( Module Site Internet → Supprimer ), un hook InfraSStudio déclenche automatiquement le nettoyage en cascade des données associées : slots, médias, configurations de formulaire scopées au site, wrappers solution-*.php , retrait de INFRASSTUDIO_MANAGED_SITES . Aucune donnée orpheline ne reste en base. Le helper infrasstudio_cleanup_after_website_delete() est également exposé pour les scripts CLI de migration ou de réinitialisation d'instance. Récapitulatif Vous savez désormais : Identifier les vingt constantes du module classées par usage. Comprendre la cascade de résolution du docroot. Configurer le catalogue produit (référence du site, docroot, préfixe, gabarit). Personnaliser l'apparence (thème, couleur d'accent). Définir une constante via l'administration, SQL ou ligne de commande. Valider une configuration via la page Diagnostic.