Skip to main content

InfraSStudio dans l'écosystème Dolibarr

🌐 Chapitre 4 — InfraSStudio dans l'écosystème Dolibarr

Pour utiliser InfraSStudio efficacement, il faut comprendre son positionnement par rapport à Dolibarr et au module Website natif. Ce chapitre donne la vue d'ensemble : qui fait quoi, qui dépend de qui, et où s'arrête la responsabilité du module.


🏗️ Le triptyque Dolibarr / Website / InfraSStudio

Trois couches superposées, chacune avec un rôle précis.

Couche

Rôle

🎨 InfraSStudio

Édition visuelle des slots, médias, traductions, catalogue produit dynamique, blog, SEO.

🌐 Module Website (natif)

Stockage des pages, génération des wrappers Apache, gestion des virtualhosts, multicompany.

🏛️ Dolibarr ERP

Tiers, produits, stocks, factures, utilisateurs, permissions, traductions, médias, base de données.

Chaque couche s'appuie sur celle du dessous, sans la remplacer.


🏛️ Dolibarr ERP : la couche fondamentale

Dolibarr ERP est le socle. Il fournit tout ce dont les couches supérieures ont besoin :

  • 🗄️ Une base de données structurée (~300 tables llx_*).
  • 👥 Un système d'utilisateurs avec permissions granulaires.
  • 🏢 Une gestion multicompany pour faire cohabiter plusieurs entités juridiques sur la même installation.
  • ⚙️ Un système de constantes (llx_const) pour stocker les configurations.
  • 🧱 Des classes métier réutilisables : Product, Societe, Contact, User, CMailFile, Translate, DoliDB, etc.
  • 🌍 Un système de traductions par fichiers .lang.
  • 🪝 Un système de hooks et de triggers pour étendre le comportement sans toucher au core.

✅ Bonne pratique — InfraSStudio s'appuie massivement sur ces fondations. Le module n'a presque pas de code « réinventé » : il utilise les classes Dolibarr natives partout où c'est possible.


🌐 Module Website : la couche d'hébergement

Le module Website de Dolibarr (livré nativement) gère les sites publics. Pour chaque site, il :

  • 📝 Crée une entrée dans llx_website (référence, virtualhost, langues, …).
  • 📄 Stocke les pages dans llx_website_page avec leur contenu HTML.
  • 💾 Génère un fichier page<N>.tpl.php sur le disque, dans DOL_DATA_ROOT/<entity>/website/<ref>/.
  • 🔗 Génère des wrappers Apache <alias>.php qui redirigent vers le bon template.
  • 🌍 Gère la cohabitation multilingue via les pages sœurs.

⚠️ Important — Le module Website est l'hôte d'InfraSStudio. Sans lui, InfraSStudio n'a rien à éditer. La dépendance est inscrite dans le descripteur du module : InfraSStudio ne s'active pas si Website n'est pas activé.


🎨 Module InfraSStudio : la couche d'édition

InfraSStudio ajoute par-dessus le module Website tout ce qui manque pour qu'un utilisateur non technique soit autonome :

  • 🔍 Le scanner de slots qui découvre les zones éditables.
  • 🖥️ L'éditeur 3 colonnes (Studio).
  • 📁 La bibliothèque de médias mutualisée.
  • 🌐 Le système de traductions synchronisé avec les .lang Dolibarr.
  • 📦 Le catalogue produit dynamique qui transforme llx_product en pages publiques.
  • 🚀 Le workflow draft / publish des slots.
  • 🗺️ La génération de sitemap et les balises hreflang.
  • 📄 Le système de gabarits pour créer de nouvelles pages depuis l'interface.

ℹ️ Ce qu'InfraSStudio ne fait PAS

  • Il ne sert pas les pages publiques (Apache + Website s'en chargent).
  • Il ne stocke pas les pages elles-mêmes (elles restent dans llx_website_page).
  • Il ne gère pas les utilisateurs ni les permissions globales (Dolibarr le fait).

🔄 Comment se fait l'orchestration au rendu ?

Suivons une requête HTTP de bout en bout, pour voir où chaque couche intervient :

  1. 👤 Le visiteur demande https://exemple.com/page1.php.
  2. 🖥️ Apache reçoit la requête. Le virtualhost pointe vers le docroot du site.
  3. 📄 Le wrapper page1.php (généré par Website) inclut master.inc.php local et bootstrappe Dolibarr.
  4. 📋 Le wrapper inclut ensuite page<N>.tpl.php correspondant.
  5. 🔣 Le tpl.php rend le HTML, avec les tokens {{slot:...}} et {{shortcode:...}} encore en place.
  6. 🎨 InfraSStudio intercepte via le hook completeHtmlOutput et résout chaque token (lecture llx_infrasstudio_slot filtrée par locale, données Dolibarr fraîches).
  7. 📤 Apache envoie le HTML final au navigateur.

✅ Résultat — Du point de vue du navigateur, c'est un HTML parfaitement classique. Aucune trace des tokens, aucun traitement JavaScript spécial.


💾 Stockage : où vit chaque chose ?

Pour bien comprendre le module, voici un tableau récapitulatif de où est stockée chaque donnée que vous manipulez.

Donnée

Emplacement

Le HTML d'une page (avec tokens)

Disque + Base :

llx_website_page.content

Métadonnées de page (SEO)

llx_website_page.title/description/keywords/image

Valeurs des slots (textes, images, couleurs)

llx_infrasstudio_slot

Brouillons en attente de publication

llx_infrasstudio_slot.value_draft

Médias uploadés (fichiers physiques)

Disque :

DOL_DATA_ROOT/<entity>/medias/...

Métadonnées des médias

llx_infrasstudio_media

Texte alternatif par locale

llx_infrasstudio_media_alt

Traductions natives produit

llx_product

+

llx_product_lang

Traductions extrafields produit

llx_product_extrafields

+

llx_infrasstudio_product_translation

Historique des modifications

llx_infrasstudio_revision

Configuration du module

llx_const

(

INFRASSTUDIO_*

)


🚫 Ce que InfraSStudio ne remplace pas

Pour éviter toute confusion : InfraSStudio ne remplace aucun module Dolibarr existant. Voici ce que vous continuez à faire dans Dolibarr lui-même :

  • 📦 Éditer une fiche produit (label, prix, catégories, photos attachées) → fiche produit Dolibarr standard. InfraSStudio édite uniquement les extrafields traduisibles et les libellés locaux, qui se synchronisent automatiquement.
  • 👥 Gérer les tiers, contacts, devis, factures → modules natifs Dolibarr.
  • 🔐 Gérer les utilisateurs et leurs permissions → admin Dolibarr.
  • 🌐 Configurer un nouveau site Website (création, virtualhost, langues) → admin Website. InfraSStudio prend le relais après que le site est déclaré.
  • 💾 Sauvegarder la base et les fichiers → procédure de sauvegarde Dolibarr standard.

✅ À retenir — InfraSStudio ne crée aucun outil parallèle. Il s'appuie sur l'existant.


🖼️ Une métaphore pour finir : la galerie d'art

Composant

Rôle dans la métaphore

🏛️ Dolibarr ERP

Le

musée

: possède des collections (produits, tiers, médias), des cartels (libellés multilingues), des registres (ventes, factures).

🌐 Module Website

La

galerie

où certaines œuvres sont exposées au public : il définit l'espace, les murs, l'éclairage.

🎨 InfraSStudio

Le

commissaire d'exposition

: choisit comment les œuvres existantes sont mises en valeur, sans rien repeindre lui-même. Il met les cartels à jour, illumine les bonnes pièces.

Quand le musée acquiert une nouvelle œuvre (un nouveau produit), elle est automatiquement exposée dans la galerie, dans la mise en page prévue par le commissaire. C'est le rôle du catalogue produit dynamique que nous découvrirons plus tard.