PARTIE VII — Annexes
- Annexe D — Crédits et licence
- Annexe C — Historique des versions
- Annexe B — Foire aux questions (FAQ)
- Annexe A — Glossaire
Annexe D — Crédits et licence
Équipe
Rôle | Auteur |
|---|---|
Conception et développement | InfraS — |
Contact |
Technologies utilisées
Le module InfraSStudio s'appuie sur les technologies open source suivantes :
Technologie | Rôle |
|---|---|
Plateforme hôte (GPL v3+) | |
Module Website Dolibarr | Couche de stockage et de rendu des pages |
Éditeur visuel des slots de texte riche (livré avec Dolibarr) | |
Bibliothèque d'icônes (version Free) | |
et | 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 :
- 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.
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 :
- Signaler un bug : préparez votre rapport en suivant la procédure du Chapitre 26 (capture du Diagnostic, extrait de
dolibarr.log, version), puis transmettez-le à l'éditeur. - Suggérer une fonctionnalité : décrivez le cas d'usage concret et l'objectif visé. Les idées accompagnées d'un contexte utilisateur clair sont prioritaires.
- Soumettre du code : le module suit les conventions de code Dolibarr (PSR-2 modifié, tabulations,
getDolGlobalStringpartout,GETPOSTpartout). - Améliorer la documentation : ce wiki est ouvert aux corrections. Signalez les passages obscurs.
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 : |
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.
- Nouvelle page Diagnostic dans l'administration pour vérifier l'intégration en un coup d'œil.
- Refactorisation complète de la gestion d'erreur (helpers centralisés, propagation
setEventMessagespartout). - Synchronisation bidirectionnelle de l'onglet Traductions natif Dolibarr avec l'éditeur du module.
- Preset
preset_default.phpavec fichier JSON, pour livrer des champs personnalisés produit sans code. - Renommage des gabarits exemples (
example-blog,example-landing) avec alias rétrocompatibles. - Portabilité multi-installations améliorée (constante
INFRASSTUDIO_DOCROOT_PATTERN, journalisation de la cascade docroot).
Version 1.8.x — Avril 2026
Catalogue produit dynamique et workflow brouillon/publication.
- Système de catalogue produit dynamique : génération automatique des wrappers solution-*.php.
- Workflow brouillon/publication des slots avec colonne
value_draft. - Éditeur de traductions produit dédié (champs natifs et champs personnalisés).
- Nouveau type de slot
color(sélecteur de couleur HTML5). - Système de blog natif via les pages Dolibarr Website (
type_container='blogpost'). - Refonte de l'éditeur en interface trois colonnes orientée slots uniquement (suppression du système de blocs).
- Centralisation CSRF AJAX, rescan en mode
--lint.
Version 1.7.x — Avril 2026
É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.
Version 1.6.0 — Avril 2026
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.
Version 1.5.0 — Avril 2026
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.
Version 1.4.0 — Avril 2026
Référencement et sitemap.
- Panneau SEO avec aperçu Google en direct.
- Génération automatique du sitemap.xml.
- Helper
infrasstudio_hreflang_tags().
Version 1.3.x — Avril 2026
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.
Version 1.2.x — Avril 2026
Bibliothèque média.
- Table
llx_infrasstudio_mediaet interface dédiée. - 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).
Version 1.1.x — Avril 2026
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.
Version 1.0.0 — Avril 2026
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 — 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.