# PARTIE VII — Annexes

# Annexe D — Crédits et licence

### <span style="color: rgb(35, 111, 161);">Équipe</span>

<table id="bkmrk-r%C3%B4leauteurconception" style="width: 100%; border-collapse: collapse; margin: 1rem 0px; font-size: 0.95em;"><colgroup><col></col><col></col></colgroup><tbody><tr style="background: rgb(25, 5, 45); color: rgb(254, 252, 232);"><th class="align-left" style="padding: 0.6rem 1rem; text-align: left; border: 1px solid rgb(25, 5, 45);">Rôle

</th><th class="align-left" style="padding: 0.6rem 1rem; text-align: left; border: 1px solid rgb(25, 5, 45);">Auteur

</th></tr><tr><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">**Conception et développement**

</td><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);"><span style="white-space: pre-wrap;">InfraS — </span>

[www.infras.fr](https://www.infras.fr)

</td></tr><tr style="background: rgb(250, 245, 255);"><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">**Contact**

</td><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);"><contact@infras.fr>

</td></tr></tbody></table>

### <span style="color: rgb(35, 111, 161);">Technologies utilisées</span>

Le module InfraSStudio s'appuie sur les technologies open source suivantes :

<table id="bkmrk-technologier%C3%B4ledolib" style="width: 100%; border-collapse: collapse; margin: 1rem 0px; font-size: 0.95em;"><colgroup><col></col><col></col></colgroup><tbody><tr style="background: rgb(25, 5, 45); color: rgb(254, 252, 232);"><th class="align-left" style="padding: 0.6rem 1rem; text-align: left; border: 1px solid rgb(25, 5, 45);">Technologie

</th><th class="align-left" style="padding: 0.6rem 1rem; text-align: left; border: 1px solid rgb(25, 5, 45);">Rôle

</th></tr><tr><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">[**Dolibarr ERP &amp; CRM**](https://www.dolibarr.org)

</td><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">Plateforme hôte (GPL v3+)

</td></tr><tr style="background: rgb(250, 245, 255);"><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">**Module Website Dolibarr**

</td><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">Couche de stockage et de rendu des pages

</td></tr><tr><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">[**CKEditor**](https://ckeditor.com)

</td><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">Éditeur visuel des slots de texte riche (livré avec Dolibarr)

</td></tr><tr style="background: rgb(250, 245, 255);"><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">[**FontAwesome**](https://fontawesome.com)

</td><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">Bibliothèque d'icônes (version Free)

</td></tr><tr><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">[**Inter**](https://rsms.me/inter/)

<span style="white-space: pre-wrap;"> et </span>

[**JetBrains Mono**](https://www.jetbrains.com/lp/mono/)

</td><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">Typographies du Studio

</td></tr></tbody></table>

### <span style="color: rgb(35, 111, 161);">Licence</span>

**InfraSStudio**<span style="white-space: pre-wrap;"> est distribué sous licence </span>**GNU General Public License v3.0 ou ultérieure**<span style="white-space: pre-wrap;"> (GPL-3.0+).</span>

Cette licence implique les libertés et obligations suivantes :

- Vous pouvez l'utiliser librement, dans un cadre commercial ou non.
- Vous pouvez le modifier pour répondre à vos besoins.
- Vous pouvez le redistribuer, à condition de conserver la même licence GPL et de mettre à disposition le code source.
- Aucune garantie n'est fournie : utilisation à vos risques et périls.

<span style="white-space: pre-wrap;">Le texte complet de la licence est disponible dans le fichier </span>`<span class="editor-theme-code">LICENSE</span>`<span style="white-space: pre-wrap;"> à la racine du module.</span>

### <span style="color: rgb(35, 111, 161);">Contribuer</span>

Vous avez identifié un bug, une amélioration possible ou souhaitez proposer une nouvelle fonctionnalité ? Plusieurs canaux existent pour contribuer :

- **Signaler un bug**<span style="white-space: pre-wrap;"> : préparez votre rapport en suivant la procédure du Chapitre 26 (capture du Diagnostic, extrait de </span>`<span class="editor-theme-code">dolibarr.log</span>`, version), puis transmettez-le à l'éditeur.
- **Suggérer une fonctionnalité**<span style="white-space: pre-wrap;"> : décrivez le cas d'usage concret et l'objectif visé. Les idées accompagnées d'un contexte utilisateur clair sont prioritaires.</span>
- **Soumettre du code**<span style="white-space: pre-wrap;"> : le module suit les conventions de code Dolibarr (PSR-2 modifié, tabulations, </span>`<span class="editor-theme-code">getDolGlobalString</span>`<span style="white-space: pre-wrap;"> partout, </span>`<span class="editor-theme-code">GETPOST</span>`<span style="white-space: pre-wrap;"> partout).</span>
- **Améliorer la documentation**<span style="white-space: pre-wrap;"> : ce wiki est ouvert aux corrections. Signalez les passages obscurs.</span>

### <span style="color: rgb(35, 111, 161);">Support</span>

<table id="bkmrk-canalusagecette-docu" style="width: 100%; border-collapse: collapse; margin: 1rem 0px; font-size: 0.95em;"><colgroup><col></col><col></col></colgroup><tbody><tr style="background: rgb(25, 5, 45); color: rgb(254, 252, 232);"><th class="align-left" style="padding: 0.6rem 1rem; text-align: left; border: 1px solid rgb(25, 5, 45);">Canal

</th><th class="align-left" style="padding: 0.6rem 1rem; text-align: left; border: 1px solid rgb(25, 5, 45);">Usage

</th></tr><tr><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">**Cette documentation**

</td><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">Première étape avant toute question. La majorité des cas y sont couverts.

</td></tr><tr style="background: rgb(250, 245, 255);"><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">**Page Diagnostic**

</td><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">Pour les problèmes techniques. Quatre-vingts pour cent des cas y trouvent leur résolution.

</td></tr><tr><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">**Courriel InfraS**

</td><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);"><span style="white-space: pre-wrap;">Pour les questions spécifiques à votre installation : </span>

<contact@infras.fr>

</td></tr></tbody></table>

### Fin de la documentation

Vous êtes parvenu au terme de la documentation. Que vous soyez rédacteur, intégrateur ou administrateur, vous disposez désormais de l'ensemble des informations nécessaires à l'utilisation et à l'administration du module InfraSStudio.

« Le développeur conserve le contrôle du HTML.  
L'éditeur conserve le contrôle du contenu.  
Chacun travaille dans son périmètre, sans empiéter sur celui de l'autre. »

# Annexe C — Historique des versions

Les jalons importants du module. Pour le détail complet, consultez l'onglet Changelog dans l'administration du module.

### <span style="color: rgb(35, 111, 161);">Version 1.9.0 — Mai 2026 (actuelle)</span>

**Robustesse, portabilité et synchronisation.**

- Nouvelle page Diagnostic dans l'administration pour vérifier l'intégration en un coup d'œil.
- <span style="white-space: pre-wrap;">Refactorisation complète de la gestion d'erreur (helpers centralisés, propagation </span>`<span class="editor-theme-code">setEventMessages</span>`<span style="white-space: pre-wrap;"> partout).</span>
- Synchronisation bidirectionnelle de l'onglet Traductions natif Dolibarr avec l'éditeur du module.
- <span style="white-space: pre-wrap;">Preset </span>`<span class="editor-theme-code">preset_default.php</span>`<span style="white-space: pre-wrap;"> avec fichier JSON, pour livrer des champs personnalisés produit sans code.</span>
- Renommage des gabarits exemples (`<span class="editor-theme-code">example-blog</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">example-landing</span>`) avec alias rétrocompatibles.
- <span style="white-space: pre-wrap;">Portabilité multi-installations améliorée (constante </span>`<span class="editor-theme-code">INFRASSTUDIO_DOCROOT_PATTERN</span>`, journalisation de la cascade docroot).

### <span style="color: rgb(35, 111, 161);">Version 1.8.x — Avril 2026</span>

**Catalogue produit dynamique et workflow brouillon/publication.**

- Système de catalogue produit dynamique : génération automatique des wrappers solution-\*.php.
- <span style="white-space: pre-wrap;">Workflow brouillon/publication des slots avec colonne </span>`<span class="editor-theme-code">value_draft</span>`.
- Éditeur de traductions produit dédié (champs natifs et champs personnalisés).
- <span style="white-space: pre-wrap;">Nouveau type de slot </span>`<span class="editor-theme-code">color</span>`<span style="white-space: pre-wrap;"> (sélecteur de couleur HTML5).</span>
- Système de blog natif via les pages Dolibarr Website (`<span class="editor-theme-code">type_container='blogpost'</span>`).
- Refonte de l'éditeur en interface trois colonnes orientée slots uniquement (suppression du système de blocs).
- <span style="white-space: pre-wrap;">Centralisation CSRF AJAX, rescan en mode </span>`<span class="editor-theme-code">--lint</span>`.

### <span style="color: rgb(35, 111, 161);">Version 1.7.x — Avril 2026</span>

**Éditeur unifié et inspecteur.**

- Phase A : nouvel éditeur trois colonnes (arborescence, aperçu, inspecteur).
- Phase B : inspecteur unifié pour les slots et les blocs, click-to-edit via postMessage.

### <span style="color: rgb(35, 111, 161);">Version 1.6.0 — Avril 2026</span>

**Système de design « Elevated CMS ».**

- Refonte complète de l'apparence inspirée de Sanity, Contentful et Linear.
- Tokens OKLCH avec accents indigo, ochre, plum et forest.
- Primitives CSS réutilisables (.is-btn, .is-card, .is-grid-table, etc.).
- Prise en charge des thèmes clair et sombre.

### <span style="color: rgb(35, 111, 161);">Version 1.5.0 — Avril 2026</span>

**Constructeur de pages par blocs (déprécié en 1.8.5).**

- Système de blocs visuels (section, titre, texte, image, bouton, etc.).
- Inspecteur avec onglets Contenu, Style et Avancé.
- Note : le système de blocs a été retiré en 1.8.5 au profit du modèle slots uniquement, plus simple et plus stable.

### <span style="color: rgb(35, 111, 161);">Version 1.4.0 — Avril 2026</span>

**Référencement et sitemap.**

- Panneau SEO avec aperçu Google en direct.
- Génération automatique du sitemap.xml.
- <span style="white-space: pre-wrap;">Helper </span>`<span class="editor-theme-code">infrasstudio_hreflang_tags()</span>`.

### <span style="color: rgb(35, 111, 161);">Version 1.3.x — Avril 2026</span>

**Création de pages depuis l'interface.**

- Assistant « + Nouvelle page » avec choix d'un gabarit.
- Catalogue de gabarits (page-free, blog-standard, landing-basic).
- Workflow brouillon/publication des pages, duplication, suppression.
- Slots richtext avec CKEditor natif Dolibarr.

### <span style="color: rgb(35, 111, 161);">Version 1.2.x — Avril 2026</span>

**Bibliothèque média.**

- <span style="white-space: pre-wrap;">Table </span>`<span class="editor-theme-code">llx_infrasstudio_media</span>`<span style="white-space: pre-wrap;"> et interface dédiée.</span>
- Variantes automatiques (thumb, card, wide).
- Texte alternatif par langue.
- Suivi de l'utilisation (nombre de slots et de pages).
- Importation automatique des fichiers ajoutés hors du Studio.
- Sélecteur de média réutilisable (fenêtre modale).

### <span style="color: rgb(35, 111, 161);">Version 1.1.x — Avril 2026</span>

**Système de slots et de shortcodes.**

- Slots avec types text, textarea, richtext, image, url, number, select, bool.
- Shortcodes : product, category, dict, mysoc, extrafield.
- Cascade surcharge → canonique → @lang:.
- Scanner automatique et outil rescan en ligne de commande.
- Pipeline de consolidation des pages sœurs.

### <span style="color: rgb(35, 111, 161);">Version 1.0.0 — Avril 2026</span>

**Première version.**

- Squelette du module (descripteur, pages d'administration, permissions).
- Édition orientée slots.
- Édition des fichiers .lang.
- Premier système de shortcodes.

**Pour le changelog complet —**<span style="white-space: pre-wrap;"> Consultez </span>`<span class="editor-theme-code">htdocs/custom/infrasstudio/docs/changelog.xml</span>`<span style="white-space: pre-wrap;"> ou l'onglet Changelog dans l'administration du module. Chaque version y est documentée avec ses fix, chg et add détaillés.</span>

# Annexe B — Foire aux questions (FAQ)

## <span style="color: rgb(25, 5, 45);">Annexe B — Foire aux questions</span>

Les questions les plus fréquemment posées. Si la vôtre n'y figure pas, consultez le glossaire ou la page Diagnostic.

### <span style="color: rgb(35, 111, 161);">Installation et démarrage</span>

##### **Le module fonctionne-t-il sans le module Website ?**

Non. Le module Website Dolibarr constitue une dépendance obligatoire. Activez-le en premier, puis InfraSStudio.

##### **Puis-je l'installer sur Dolibarr 17 ou 25 ?**

<span style="white-space: pre-wrap;">Le module prend en charge Dolibarr 18.0.0 à 24.x.x. Sur des versions hors fenêtre, l'activation est refusée. Vous pouvez la contourner en définissant la constante </span>`<span class="editor-theme-code">INFRASSTUDIO_DISABLE_CHECK_VERSION_MIN=1</span>`, mais sans garantie de bon fonctionnement.

##### **Combien de sites puis-je gérer simultanément ?**

Aucune limite logicielle. Dans la configuration, cochez tous les sites Dolibarr Website que vous souhaitez gérer. Le tableau de bord affichera une carte par site.

### <span style="color: rgb(35, 111, 161);">Édition au quotidien</span>

##### **Pourquoi mes modifications ne sont-elles pas visibles publiquement ?**

<span style="white-space: pre-wrap;">L'enregistrement automatique conserve les modifications en brouillon, et non en publication. Cliquez sur le bouton </span>**Publier les modifications**<span style="white-space: pre-wrap;"> dans la barre d'outils pour les rendre visibles. Voir le Chapitre 12.</span>

##### **Comment annuler complètement mes modifications de la journée ?**

<span style="white-space: pre-wrap;">Utilisez le bouton </span>**Annuler les modifications**<span style="white-space: pre-wrap;"> dans la barre d'outils. Une confirmation est demandée. Tous les brouillons de la page sont supprimés et l'aperçu revient à la version publique.</span>

##### **Puis-je récupérer une ancienne version d'un slot ?**

L'historique est consultable dans l'inspecteur du slot (section dépliable « Historique »). La restauration automatique d'une version antérieure n'est pas encore disponible. En cas de besoin, demandez à un administrateur de récupérer la valeur depuis la base de données.

##### **Comment travailler à plusieurs sur la même page sans conflit ?**

L'enregistrement automatique consigne les brouillons toutes les demi-secondes. Si deux personnes éditent le même slot simultanément, c'est la dernière saisie qui est conservée. Pour un circuit de relecture propre, mettez en place une convention organisationnelle (voir Chapitre 24).

### <span style="color: rgb(35, 111, 161);">Multilingue</span>

##### **Que voit un visiteur si une langue n'est pas traduite ?**

Il voit la valeur canonique (généralement le français). Aucune page n'est cassée, aucun texte n'est vide. La résolution suit l'ordre : surcharge de langue, valeur canonique, valeur par défaut du slot.

##### **Mes traductions disparaissent quand je modifie le français — pourquoi ?**

<span style="white-space: pre-wrap;">Elles ne disparaissent pas. Les traductions sont stockées séparément (surcharges). Si la valeur d'une surcharge est </span>**identique**<span style="white-space: pre-wrap;"> au canonique, le mécanisme intelligent du module supprime la surcharge pour éviter une duplication inutile. Saisissez à nouveau la traduction si elle a réellement changé.</span>

##### **Puis-je ajouter une langue qui n'existe pas dans Dolibarr ?**

<span style="white-space: pre-wrap;">Le module accepte n'importe quelle locale au format </span>`<span class="editor-theme-code">xx_XX</span>`<span style="white-space: pre-wrap;">. Vous devez l'activer côté site Dolibarr Website (champ « Autres langues ») et créer les fichiers </span>`<span class="editor-theme-code">.lang</span>`<span style="white-space: pre-wrap;"> Dolibarr correspondants si vous souhaitez bénéficier des replis via </span>`<span class="editor-theme-code">@lang:</span>`.

### <span style="color: rgb(35, 111, 161);">Catalogue produit</span>

##### **Pourquoi mon nouveau produit ne s'affiche-t-il pas dans le catalogue web ?**

<span style="white-space: pre-wrap;">Vérifiez deux conditions : le produit est en </span>`<span class="editor-theme-code">tosell=1</span>`<span style="white-space: pre-wrap;"> dans Dolibarr et le champ personnalisé </span>`<span class="editor-theme-code">infrasstudio_published</span>`<span style="white-space: pre-wrap;"> est coché. Sans ces deux conditions, le produit reste en brouillon et n'apparaît pas publiquement.</span>

##### **Comment ajouter un nouvel univers à mon catalogue ?**

<span style="white-space: pre-wrap;">Définissez la constante </span>`<span class="editor-theme-code">INFRASSTUDIO_PRODUCT_UNIVERS_MAP</span>`<span style="white-space: pre-wrap;"> avec un JSON qui associe vos catégories Dolibarr à vos univers personnalisés. Voir le Chapitre 23.</span>

##### **Puis-je désactiver complètement le catalogue dynamique ?**

<span style="white-space: pre-wrap;">Oui. Ne définissez ni </span>`<span class="editor-theme-code">INFRASSTUDIO_WEBSITE_KEY</span>`<span style="white-space: pre-wrap;"> ni </span>`<span class="editor-theme-code">INFRASSTUDIO_PUBLIC_DOCROOT</span>`. Le trigger et la tâche planifiée se terminent silencieusement. Aucun wrapper n'est généré.

### <span style="color: rgb(35, 111, 161);">Aspects techniques et développement</span>

##### **Puis-je créer mes propres types de slot ?**

<span style="white-space: pre-wrap;">Pas directement : les dix types livrés sont câblés dans le module. En revanche, vous pouvez créer vos propres shortcodes en déposant un fichier dans </span>`<span class="editor-theme-code">shortcodes/<nom>.shortcode.php</span>`. Voir le Chapitre 20.

##### **Comment migrer un site WordPress vers le module ?**

Il ne s'agit pas d'un import direct. Vous devrez : créer le site dans Dolibarr Website, reconstruire le HTML des pages avec votre charte, annoter les zones éditables avec des slots, puis copier le contenu depuis WordPress dans le Studio. Le travail est essentiellement manuel mais l'éditeur du Studio rend la saisie rapide.

##### **Le module fonctionne-t-il avec nginx ?**

<span style="white-space: pre-wrap;">Oui, à condition que la configuration nginx serve correctement les fichiers PHP du docroot Dolibarr. La majorité du module est indépendante du serveur web. Vérifiez simplement que le lien symbolique </span>`<span class="editor-theme-code">medias</span>`<span style="white-space: pre-wrap;"> est bien servi (mode native), ou basculez en mode module.</span>

##### **Puis-je versionner mes slots avec Git ?**

<span style="white-space: pre-wrap;">Indirectement. Les fichiers </span>`<span class="editor-theme-code">tpl.php</span>`<span style="white-space: pre-wrap;"> avec leurs tokens </span>`<span class="editor-theme-code">{{slot:...}}</span>`<span style="white-space: pre-wrap;"> sont versionnables (ils sont sur le disque). Les </span>**valeurs**<span style="white-space: pre-wrap;"> des slots sont en base de données. Pour les versionner, exportez la table </span>`<span class="editor-theme-code">llx_infrasstudio_slot</span>`<span style="white-space: pre-wrap;"> avec mysqldump.</span>

### <span style="color: rgb(35, 111, 161);">Sécurité et performance</span>

##### **Le module ralentit-il mon site public ?**

<span style="white-space: pre-wrap;">De manière marginale. La résolution des slots ajoute quelques requêtes SQL par page (un SELECT global). Sur une instance correctement dimensionnée, le surcoût est imperceptible. Si vous avez beaucoup de shortcodes </span>`<span class="editor-theme-code">{{product:...}}</span>`<span style="white-space: pre-wrap;"> dans une boucle, l'impact peut croître. Voir le Chapitre 20 pour les bonnes pratiques.</span>

##### **Comment sécuriser l'accès au Studio ?**

<span style="white-space: pre-wrap;">Utilisez les permissions Dolibarr de manière fine. N'attribuez </span>`<span class="editor-theme-code">admin</span>`<span style="white-space: pre-wrap;"> qu'aux développeurs. Pour les rédacteurs, donnez uniquement </span>`<span class="editor-theme-code">readContent + editContent</span>`. Voir le Chapitre 24.

##### **Les médias sont-ils protégés contre l'envoi de fichiers malveillants ?**

<span style="white-space: pre-wrap;">Oui. Le module utilise </span>`<span class="editor-theme-code">finfo</span>`<span style="white-space: pre-wrap;"> pour détecter le type MIME réel (et non l'extension), une liste blanche des types autorisés, et passe par </span>`<span class="editor-theme-code">dol_move_uploaded_file()</span>`<span style="white-space: pre-wrap;"> qui scanne via l'antivirus configuré dans Dolibarr.</span>

# Annexe A — Glossaire

Liste alphabétique des termes techniques utilisés dans cette documentation et dans le module.

### <span style="color: rgb(35, 111, 161);">Brouillon (draft)</span>

<span style="white-space: pre-wrap;">Modification d'un slot enregistrée mais non publiée. Visible uniquement dans l'aperçu du Studio. Stockée dans la colonne </span>`<span class="editor-theme-code">value_draft</span>`<span style="white-space: pre-wrap;"> de la table </span>`<span class="editor-theme-code">llx_infrasstudio_slot</span>`.

### <span style="color: rgb(35, 111, 161);">Canonique</span>

<span style="white-space: pre-wrap;">Valeur de référence d'un slot, partagée entre toutes les langues. Stockée avec </span>`<span class="editor-theme-code">lang=''</span>`. Utilisée comme valeur de repli lorsqu'une langue ne possède pas de surcharge.

### <span style="color: rgb(35, 111, 161);">CKEditor</span>

<span style="white-space: pre-wrap;">Éditeur visuel inclus nativement dans Dolibarr, utilisé pour les slots de type </span>`<span class="editor-theme-code">richtext</span>`.

### <span style="color: rgb(35, 111, 161);">Click-to-edit</span>

<span style="white-space: pre-wrap;">Fonctionnalité qui permet d'éditer un slot en cliquant directement sur le texte correspondant dans l'aperçu. Mise en œuvre via </span>`<span class="editor-theme-code">postMessage</span>`<span style="white-space: pre-wrap;"> entre l'iframe et l'éditeur.</span>

### <span style="color: rgb(35, 111, 161);">Constante (Dolibarr)</span>

<span style="white-space: pre-wrap;">Configuration stockée dans la table </span>`<span class="editor-theme-code">llx_const</span>`<span style="white-space: pre-wrap;">. Lue via </span>`<span class="editor-theme-code">getDolGlobalString()</span>`<span style="white-space: pre-wrap;">, écrite via </span>`<span class="editor-theme-code">dolibarr_set_const()</span>`<span style="white-space: pre-wrap;">. Toutes les configurations du module commencent par </span>`<span class="editor-theme-code">INFRASSTUDIO_</span>`.

### <span style="color: rgb(35, 111, 161);">Cron</span>

Tâche planifiée Dolibarr. Le module en déclare deux : régénération horaire des wrappers solution et purge quotidienne des slots orphelins.

### <span style="color: rgb(35, 111, 161);">DOL\_DATA\_ROOT</span>

<span style="white-space: pre-wrap;">Constante PHP de Dolibarr qui pointe vers la racine des données utilisateur (généralement </span>`<span class="editor-theme-code">/var/www/dolibarr/htdocs/documents/</span>`). Les médias et les fichiers tpl.php sont stockés sous cette racine.

### <span style="color: rgb(35, 111, 161);">Entity</span>

<span style="white-space: pre-wrap;">Identifiant d'une entité juridique en mode multicompany Dolibarr. Chaque table contient une colonne </span>`<span class="editor-theme-code">entity</span>`. Le module respecte strictement ce cloisonnement.

### <span style="color: rgb(35, 111, 161);">Extrafield (champ personnalisé)</span>

<span style="white-space: pre-wrap;">Champ personnalisé Dolibarr ajouté à un objet (produit, tiers, ticket, etc.). Stocké dans </span>`<span class="editor-theme-code">llx_<objet>_extrafields</span>`. Utilisé par le module pour enrichir les données du catalogue produit.

### <span style="color: rgb(35, 111, 161);">Hook</span>

<span style="white-space: pre-wrap;">Mécanisme Dolibarr permettant à un module externe d'intervenir à des points précis du code natif (rendu d'une page, sécurité, etc.). Le module utilise les hooks </span>`<span class="editor-theme-code">main</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">login</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">websitepage</span>`<span style="white-space: pre-wrap;"> et </span>`<span class="editor-theme-code">websitenav</span>`.

### <span style="color: rgb(35, 111, 161);">hreflang</span>

<span style="white-space: pre-wrap;">Attribut HTML qui indique à Google qu'une page est la traduction d'une autre. Émis automatiquement par le helper </span>`<span class="editor-theme-code">infrasstudio_hreflang_tags()</span>`.

### <span style="color: rgb(35, 111, 161);">ISO2 et locale</span>

ISO2 désigne le code langue à deux lettres (`<span class="editor-theme-code">fr</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">en</span>`). Locale désigne le code complet pays-langue (`<span class="editor-theme-code">fr_FR</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">en_US</span>`). Le module utilise les locales en interne et les ISO2 dans les URLs visibles par l'utilisateur.

### <span style="color: rgb(35, 111, 161);">Multicompany</span>

<span style="white-space: pre-wrap;">Mode Dolibarr permettant à plusieurs entités juridiques de cohabiter sur la même installation, avec des données cloisonnées par </span>`<span class="editor-theme-code">entity</span>`.

### <span style="color: rgb(35, 111, 161);">Open Graph</span>

<span style="white-space: pre-wrap;">Protocole de balises </span>`<span class="editor-theme-code"><meta property="og:..."></span>`<span style="white-space: pre-wrap;"> qui permet à Facebook, LinkedIn ou WhatsApp d'afficher un aperçu enrichi lors du partage d'une URL. Géré par le panneau SEO du module.</span>

### <span style="color: rgb(35, 111, 161);">Orphelin (slot)</span>

<span style="white-space: pre-wrap;">Slot dont le token </span>`<span class="editor-theme-code">{{slot:...}}</span>`<span style="white-space: pre-wrap;"> a disparu du fichier </span>`<span class="editor-theme-code">tpl.php</span>`<span style="white-space: pre-wrap;"> mais dont la valeur est encore présente en base. Statut 0. Conservé pendant trente jours puis purgé par tâche planifiée.</span>

### <span style="color: rgb(35, 111, 161);">Override (surcharge de langue)</span>

Valeur d'un slot spécifique à une langue, qui surcharge la valeur canonique pour les visiteurs de cette langue.

### <span style="color: rgb(35, 111, 161);">Pages sœurs (sister pages)</span>

Modèle multilingue legacy dans lequel chaque langue dispose de son propre fichier tpl.php (`<span class="editor-theme-code">about.php</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">about-en.php</span>`<span style="white-space: pre-wrap;">, etc.). Le module prend en charge ce modèle via le helper </span>`<span class="editor-theme-code">sister_stub.tpl.php</span>`.

### <span style="color: rgb(35, 111, 161);">Permission</span>

Droit d'accès Dolibarr attribuable à un utilisateur ou à un groupe. Le module en définit sept : paramMenu, readContent, editContent, editTranslations, editMedias, publish, admin.

### <span style="color: rgb(35, 111, 161);">Rescan</span>

<span style="white-space: pre-wrap;">Action de réexaminer tous les fichiers </span>`<span class="editor-theme-code">tpl.php</span>`<span style="white-space: pre-wrap;"> d'un site afin de synchroniser la table des slots. Effectué manuellement via l'interface ou en ligne de commande avec </span>`<span class="editor-theme-code">rescan_slots.php</span>`.

### <span style="color: rgb(35, 111, 161);">Shortcode</span>

<span style="white-space: pre-wrap;">Token </span>`<span class="editor-theme-code">{{namespace:sélecteur.champ}}</span>`<span style="white-space: pre-wrap;"> qui inscrit une donnée Dolibarr en direct dans le HTML. Résolu au moment du rendu par un fournisseur PHP. À distinguer d'un slot.</span>

### <span style="color: rgb(35, 111, 161);">Sitemap</span>

<span style="white-space: pre-wrap;">Fichier </span>`<span class="editor-theme-code">sitemap.xml</span>`<span style="white-space: pre-wrap;"> qui liste toutes les pages publiées d'un site. Lu par Google Search Console. Généré par le module via l'interface ou en ligne de commande.</span>

### <span style="color: rgb(35, 111, 161);">Slot</span>

<span style="white-space: pre-wrap;">Emplacement éditable nommé dans une page, déclaré par un token </span>`<span class="editor-theme-code">{{slot:...|type=...}}</span>`<span style="white-space: pre-wrap;"> dans le HTML. Élément central du module.</span>

### <span style="color: rgb(35, 111, 161);">Studio</span>

L'interface principale d'édition du module, accessible via Outils → InfraSStudio. Composée de trois colonnes : arborescence, aperçu et inspecteur.

### <span style="color: rgb(35, 111, 161);">Token</span>

<span style="white-space: pre-wrap;">Élément textuel délimité par </span>`<span class="editor-theme-code">{{</span>`<span style="white-space: pre-wrap;"> et </span>`<span class="editor-theme-code">}}</span>`<span style="white-space: pre-wrap;"> dans le HTML. Les slots et les shortcodes sont des tokens.</span>

### <span style="color: rgb(35, 111, 161);">tpl.php (gabarit)</span>

<span style="white-space: pre-wrap;">Fichier PHP qui contient le HTML d'une page Dolibarr Website. Stocké dans </span>`<span class="editor-theme-code">DOL_DATA_ROOT/<entity>/website/<ref>/page<N>.tpl.php</span>`.

### <span style="color: rgb(35, 111, 161);">Trigger</span>

Événement Dolibarr déclenché lors d'opérations métier (création de produit, modification, etc.). Le module écoute les triggers PRODUCT\_\* et CATEGORY\_\*.

### <span style="color: rgb(35, 111, 161);">Univers</span>

Concept éditorial du catalogue produit : un univers regroupe plusieurs catégories Dolibarr en une thématique (Supply Chain, Health, Legal, etc.). Cartographiable via constante.

### <span style="color: rgb(35, 111, 161);">Variante (média)</span>

Version redimensionnée d'une image générée automatiquement (thumb 200 × 200, card 640 × 480, wide 1600 × 1200) afin d'optimiser le poids selon l'usage.

### <span style="color: rgb(35, 111, 161);">Virtualhost</span>

Configuration Apache qui associe un nom de domaine à un docroot. Configuré côté administration système, en dehors du module.

### <span style="color: rgb(35, 111, 161);">Wrapper (Apache)</span>

<span style="white-space: pre-wrap;">Petit fichier PHP placé dans le docroot d'un site, qui sert de point d'entrée pour une URL et inclut le bon fichier </span>`<span class="editor-theme-code">tpl.php</span>`<span style="white-space: pre-wrap;">. Généré automatiquement par Dolibarr Website. Le catalogue dynamique génère également des wrappers </span>`<span class="editor-theme-code">solution-<ref>.php</span>`.

### <span style="color: rgb(35, 111, 161);">WYSIWYG</span>

Acronyme de « What You See Is What You Get ». Désigne un éditeur visuel qui affiche le résultat formaté en direct (gras, italique, listes, etc.) plutôt qu'un code source brut.