InfraSStudio dans l'écosystème Dolibarr
🌐 Chapitre 4 — InfraSStudio dans l'écosystème Dolibarr
Pour utiliser InfraSStudiole module efficacement, il fautest utile de comprendre son positionnement par rapport à Dolibarr et au module Website natif. Ce chapitre donneprésente la vuerépartition d'ensembledes :rôles, quiles fait quoi, qui dépend de qui,dépendances et oùles s'arrêtelimites de la responsabilité du module.
Une 🏗️architecture Leen triptyquetrois Dolibarr / Website / InfraSStudiocouches
TroisLe module fonctionne dans un système composé de trois couches superposées, chacune avec un rôle précis.
Couche | Rôle |
|---|---|
| Édition |
| Stockage des pages, génération des |
| Tiers, produits, |
Chaque couche s'appuie sur celle duqui se trouve en dessous, sans la remplacer.remplacer ni la dupliquer.
🏛️ Dolibarr ERP :ERP, la couche fondamentale
Dolibarr ERP estconstitue le socle. Il fournit toutl'ensemble cedes services dont les couches supérieures ont besoin :
🗄️Une base de données structurée (~environ 300 tables préfixées).llx_*llx_👥Un système d'utilisateurs avecpermissionsgestiongranulaires.fine des permissions.🏢Une gestion multicompanypourpermettantfaire cohabiterà plusieurs entités juridiques de cohabiter sur la même installation.⚙️Un système de constantes(llx_const)pourstockerlelesstockage des configurations.🧱Des classes métier réutilisables :Product,Societe,Contact,User,CMailFile,Translate,, etc.DoliDB🌍Un système de traductions par fichiers.lang.🪝DesUnmécanismessystèmed'extensiondepar hooks etdetriggerspour étendre le comportement sans toucher au core.triggers.
✅Recommandé Bonne pratique— — InfraSStudio s'appuie massivement sur ces fondations. Le module n'as'appuie presquesystématiquement pas de code « réinventé » : il utilisesur les classes natives de Dolibarr natives partout oùlorsque c'est possible. Cette approche garantit la cohérence avec le reste de l'instance et limite les divergences en cas de mise à jour de Dolibarr.
Le 🌐module Module Website :Website, la couche d'hébergement
Le module Website deest Dolibarr (livré nativement)nativement gèreavec les sites publics.Dolibarr. Pour chaque site,site qu'il prend en charge, il assure les fonctions suivantes :
📝CréationCréed'une entrée dans la tablellx_website(contenant la référence,virtualhost,lelangues,virtualhost…).et les langues.📄StockageStocke lesdes pages dans la tablellx_website_pageavec leur contenu HTML.💾GénérationGénèred'un fichierpage<N>.tpl.phpsur ledisque, dansdisque.DOL_DATA_ROOT/<entity>/website/<ref>/.🔗 GénèreCréation des wrappers Apache<alias>.phpqui redirigent vers le bon template.🌍PriseGèreenlachargecohabitationdu multilingue vialesle mécanisme de pagessœurs.sœurs.
⚠️Important Important— — Le module Website est l'hôte d'InfraSStudio. Sans lui, InfraSStudiole module n'a rien à éditer. La dépendance est inscrite dans le descripteur du module : InfraSStudio nerefuse de s'active pasactiver si le module Website n'ne l'est pas activé.pas.
Le 🎨module Module InfraSStudio :InfraSStudio, la couche d'édition
InfraSStudio ajoute par-dessus le module Website toutl'ensemble cedes quifonctionnalités manquenécessaires pourà qu'un utilisateurusage par des utilisateurs non technique soit autonometechniques :
🔍Le scanner de slots quidécouvredétecte automatiquement les zones éditables.🖥️L'éditeur3en trois colonnes(Studio).accessible depuis l'interface Dolibarr.📁La bibliothèque de médias mutualisée.🌐Le système detraductionstraductions, synchronisé avec les fichiers.langde Dolibarr.📦Le catalogue produitdynamiquedynamique, qui transforme la tablellx_producten pages publiques.🚀Leworkflow draft / publishdes slots.🗺️ Lagénérationmécanisme desitemapbrouillons etlesde publication.- La génération automatique du sitemap et des balises hreflang.
📄Le système de gabaritspourpermettant aux éditeurs de créerdeleursnouvellesproprespages depuis l'interface.pages.
ℹ️Note — Ce qu'InfraSStudio ne fait PASpas
- Il ne sert pas les pages
publiquespubliques.(Cette fonction est assurée par Apache+etWebsiteles'enmodulechargent).Website. - Il ne stocke pas les pages elles-
mêmesmêmes,(ellesqui restent dansllx_website_page).et leurs templates correspondants. - Il ne gère pas les utilisateurs ni les permissions globales
(: ce sont les utilisateurs Dolibarr qui sont autorisés via les permissions du module.
Le déroulement d'une requête publique
Pour clarifier le fait).rôle
de
🔄chaque Commentcouche, sesuivons faitle l'orchestrationparcours au rendu ?
Suivons d'une requête HTTP de bout en bout, pour voir où chaque couche intervientbout :
👤Le visiteur demande une URL, par exemplehttps://exemple.com/page1.php.🖥️Apache reçoit la requête. Le virtualhost pointe vers le docroot du site.📄Le wrapperpage1.php,(généré parWebsite)le module Website, inclut le fichiermaster.inc.phplocal etbootstrappeamorce Dolibarr.📋Le wrapper inclut ensuite le fichierpage<N>.tpl.phpcorrespondant.🔣Letpl.phptemplaterendproduit le HTML,aveccontenant encore les tokens{{slot:...}}et{{shortcode:...}}encore en place..🎨InfraSStudio intercepte le HTML via le hookcompleteHtmlOutputet résout chaque token(lecture:valeursllx_infrasstudio_slotfiltréecourantes des slots filtrées parlocale,la locale du visiteur, données Dolibarrfraîches).lues en direct.📤ApacheApachetransmetenvoieau navigateur le HTMLfinalfinal,audépourvunavigateur.de tout token.
✅Résultat Résultat— — Du point de vue du navigateur, c'la page est un document HTML parfaitementstandard. classique.Aucun Aucunetoken tracen'est desvisible tokens,et aucun traitement JavaScript spécial.spécifique n'est nécessaire.
L'emplacement 💾des Stockage : où vit chaque chose ?données
Pour bien comprendre le module,module voicien unprofondeur, le tableau récapitulatifci-dessous récapitule où chaque type de oùdonnée est stockée chaque donnée que vous manipulez.stocké.
Donnée | Emplacement |
|---|---|
| Disque
)
) |
Métadonnées de page ( |
,
,
,
|
Valeurs des slots |
|
Brouillons en attente de publication |
|
Médias |
|
Métadonnées des médias |
|
Texte alternatif par locale |
|
Traductions natives produit |
(autres locales) |
Traductions des extrafields produit |
|
Historique des modifications |
|
Configuration du module |
(constantes préfixées
) |
🚫 Ce quequi InfraSStudioreste géré dans Dolibarr lui-même
Le module ne remplace pas
Pour éviter toute confusion : InfraSStudio ne remplace aucun module Dolibarr existant. VoiciLes ceopérations quesuivantes vous continuezcontinuent à se faire dans Dolibarr lui-même :
📦L'éditionÉditerd'une fiche produit (label,libellé, prix, catégories, photosattachées)rattachées)→reste l'usage standard de la fiche produitDolibarrDolibarr.standard.Le module InfraSStudio n'éditeuniquementque les extrafields traduisibles etlesleurslibellésversionslocaux,linguistiques, qui se synchronisentautomatiquement.automatiquement avec la fiche native.👥LaGérergestionlesdes tiers, des contacts,devis,des devis et des factures→s'effectue via les modules natifs Dolibarr.🔐L'administrationGérer lesdes utilisateurs etleursdes permissions→resteadmindans l'interface d'administration Dolibarr.🌐LaConfigurercréation d'un nouveau site Website (création,référence, virtualhost,langues)langues→principales)adminse fait dans l'administration du module Website. InfraSStudio prend ensuite le relaisaprèspourquel'éditionledusite est déclaré.contenu.💾LaSauvegardersauvegarde de la base etlesdes fichiers→suit la procédure standard desauvegarde Dolibarr standard.Dolibarr.
✅Recommandé À retenir— —Le InfraSStudiomodule ne crée aucun outil parallèle. pour ces fonctions. Il s'appuie sur l'existant.existant, ce qui simplifie la formation et limite la duplication d'information.
🖼️ Une métaphoreanalogie pour finirconclure
L'écosystème laDolibarr et ses extensions peuvent être comparés à un musée et sa galerie d'artexposition.
Composant | Rôle |
|---|---|
| Le
musée. |
| La galerie |
| Le commissaire d' exposition. |
Quand le musée acquiert Lorsqu'une nouvelle œuvre (unrejoint nouveaules produit),collections du musée, elle est automatiquement exposéeprésentée dans la galerie,galerie dansselon la mise en page prévue par le commissaire.prévue. C'est le rôle du catalogue produit dynamique, queprésenté nousen découvrironsdétail plusau tard.Chapitre 15.