PARTIE VII — Annexes

Annexe D — Crédits et licence

Équipe

Rôle

Auteur

Conception et développement

InfraS —

www.infras.fr

Contact

contact@infras.fr

Technologies utilisées

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

Technologie

Rôle

Dolibarr ERP & CRM

Plateforme hôte (GPL v3+)

Module Website Dolibarr

Couche de stockage et de rendu des pages

CKEditor

Éditeur visuel des slots de texte riche (livré avec Dolibarr)

FontAwesome

Bibliothèque d'icônes (version Free)

Inter

et

JetBrains Mono

Typographies du Studio

Licence

InfraSStudio est distribué sous licence GNU General Public License v3.0 ou ultérieure (GPL-3.0+).

Cette licence implique les libertés et obligations suivantes :

Le texte complet de la licence est disponible dans le fichier LICENSE à la racine du module.

Contribuer

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

Support

Canal

Usage

Cette documentation

Première étape avant toute question. La majorité des cas y sont couverts.

Page Diagnostic

Pour les problèmes techniques. Quatre-vingts pour cent des cas y trouvent leur résolution.

Courriel InfraS

Pour les questions spécifiques à votre installation :

contact@infras.fr

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.

Version 1.9.0 — Mai 2026 (actuelle)

Robustesse, portabilité et synchronisation.

Version 1.8.x — Avril 2026

Catalogue produit dynamique et workflow brouillon/publication.

Version 1.7.x — Avril 2026

Éditeur unifié et inspecteur.

Version 1.6.0 — Avril 2026

Système de design « Elevated CMS ».

Version 1.5.0 — Avril 2026

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

Version 1.4.0 — Avril 2026

Référencement et sitemap.

Version 1.3.x — Avril 2026

Création de pages depuis l'interface.

Version 1.2.x — Avril 2026

Bibliothèque média.

Version 1.1.x — Avril 2026

Système de slots et de shortcodes.

Version 1.0.0 — Avril 2026

Première version.

Pour le changelog complet — Consultez htdocs/custom/infrasstudio/docs/changelog.xml ou l'onglet Changelog dans l'administration du module. Chaque version y est documentée avec ses fix, chg et add détaillés.

Annexe B — Foire aux questions (FAQ)

Annexe B — Foire aux questions

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

Installation et démarrage

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 ?

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 INFRASSTUDIO_DISABLE_CHECK_VERSION_MIN=1, 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.

Édition au quotidien

Pourquoi mes modifications ne sont-elles pas visibles publiquement ?

L'enregistrement automatique conserve les modifications en brouillon, et non en publication. Cliquez sur le bouton Publier les modifications dans la barre d'outils pour les rendre visibles. Voir le Chapitre 12.

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

Utilisez le bouton Annuler les modifications 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.

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).

Multilingue

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 ?

Elles ne disparaissent pas. Les traductions sont stockées séparément (surcharges). Si la valeur d'une surcharge est identique 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é.

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

Le module accepte n'importe quelle locale au format xx_XX. Vous devez l'activer côté site Dolibarr Website (champ « Autres langues ») et créer les fichiers .lang Dolibarr correspondants si vous souhaitez bénéficier des replis via @lang:.

Catalogue produit

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

Vérifiez deux conditions : le produit est en tosell=1 dans Dolibarr et le champ personnalisé infrasstudio_published est coché. Sans ces deux conditions, le produit reste en brouillon et n'apparaît pas publiquement.

Comment ajouter un nouvel univers à mon catalogue ?

Définissez la constante INFRASSTUDIO_PRODUCT_UNIVERS_MAP avec un JSON qui associe vos catégories Dolibarr à vos univers personnalisés. Voir le Chapitre 23.

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

Oui. Ne définissez ni INFRASSTUDIO_WEBSITE_KEY ni INFRASSTUDIO_PUBLIC_DOCROOT. Le trigger et la tâche planifiée se terminent silencieusement. Aucun wrapper n'est généré.

Aspects techniques et développement

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

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 shortcodes/<nom>.shortcode.php. 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 ?

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 medias est bien servi (mode native), ou basculez en mode module.

Puis-je versionner mes slots avec Git ?

Indirectement. Les fichiers tpl.php avec leurs tokens {{slot:...}} sont versionnables (ils sont sur le disque). Les valeurs des slots sont en base de données. Pour les versionner, exportez la table llx_infrasstudio_slot avec mysqldump.

Sécurité et performance

Le module ralentit-il mon site public ?

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 {{product:...}} dans une boucle, l'impact peut croître. Voir le Chapitre 20 pour les bonnes pratiques.

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

Utilisez les permissions Dolibarr de manière fine. N'attribuez admin qu'aux développeurs. Pour les rédacteurs, donnez uniquement readContent + editContent. Voir le Chapitre 24.

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

Oui. Le module utilise finfo pour détecter le type MIME réel (et non l'extension), une liste blanche des types autorisés, et passe par dol_move_uploaded_file() qui scanne via l'antivirus configuré dans Dolibarr.

Annexe A — Glossaire

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

Brouillon (draft)

Modification d'un slot enregistrée mais non publiée. Visible uniquement dans l'aperçu du Studio. Stockée dans la colonne value_draft de la table llx_infrasstudio_slot.

Canonique

Valeur de référence d'un slot, partagée entre toutes les langues. Stockée avec lang=''. Utilisée comme valeur de repli lorsqu'une langue ne possède pas de surcharge.

CKEditor

Éditeur visuel inclus nativement dans Dolibarr, utilisé pour les slots de type richtext.

Click-to-edit

Fonctionnalité qui permet d'éditer un slot en cliquant directement sur le texte correspondant dans l'aperçu. Mise en œuvre via postMessage entre l'iframe et l'éditeur.

Constante (Dolibarr)

Configuration stockée dans la table llx_const. Lue via getDolGlobalString(), écrite via dolibarr_set_const(). Toutes les configurations du module commencent par INFRASSTUDIO_.

Cron

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.

DOL_DATA_ROOT

Constante PHP de Dolibarr qui pointe vers la racine des données utilisateur (généralement /var/www/dolibarr/htdocs/documents/). Les médias et les fichiers tpl.php sont stockés sous cette racine.

Entity

Identifiant d'une entité juridique en mode multicompany Dolibarr. Chaque table contient une colonne entity. Le module respecte strictement ce cloisonnement.

Extrafield (champ personnalisé)

Champ personnalisé Dolibarr ajouté à un objet (produit, tiers, ticket, etc.). Stocké dans llx_<objet>_extrafields. Utilisé par le module pour enrichir les données du catalogue produit.

Hook

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 main, login, websitepage et websitenav.

hreflang

Attribut HTML qui indique à Google qu'une page est la traduction d'une autre. Émis automatiquement par le helper infrasstudio_hreflang_tags().

ISO2 et locale

ISO2 désigne le code langue à deux lettres (fr, en). Locale désigne le code complet pays-langue (fr_FR, en_US). Le module utilise les locales en interne et les ISO2 dans les URLs visibles par l'utilisateur.

Multicompany

Mode Dolibarr permettant à plusieurs entités juridiques de cohabiter sur la même installation, avec des données cloisonnées par entity.

Open Graph

Protocole de balises <meta property="og:..."> 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.

Orphelin (slot)

Slot dont le token {{slot:...}} a disparu du fichier tpl.php mais dont la valeur est encore présente en base. Statut 0. Conservé pendant trente jours puis purgé par tâche planifiée.

Override (surcharge de langue)

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

Pages sœurs (sister pages)

Modèle multilingue legacy dans lequel chaque langue dispose de son propre fichier tpl.php (about.php, about-en.php, etc.). Le module prend en charge ce modèle via le helper sister_stub.tpl.php.

Permission

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

Rescan

Action de réexaminer tous les fichiers tpl.php d'un site afin de synchroniser la table des slots. Effectué manuellement via l'interface ou en ligne de commande avec rescan_slots.php.

Shortcode

Token {{namespace:sélecteur.champ}} 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.

Sitemap

Fichier sitemap.xml 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.

Slot

Emplacement éditable nommé dans une page, déclaré par un token {{slot:...|type=...}} dans le HTML. Élément central du module.

Studio

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

Token

Élément textuel délimité par {{ et }} dans le HTML. Les slots et les shortcodes sont des tokens.

tpl.php (gabarit)

Fichier PHP qui contient le HTML d'une page Dolibarr Website. Stocké dans DOL_DATA_ROOT/<entity>/website/<ref>/page<N>.tpl.php.

Trigger

É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_*.

Univers

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

Variante (média)

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.

Virtualhost

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

Wrapper (Apache)

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 tpl.php. Généré automatiquement par Dolibarr Website. Le catalogue dynamique génère également des wrappers solution-<ref>.php.

WYSIWYG

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.