PARTIE VI — Référence
- CHAPITRE 29 — Référence des shortcodes
- CHAPITRE 30 — Référence des hooks et triggers
- CHAPITRE 31 — Référence SQL : tables et colonnes
- CHAPITRE 32 — Référence des scripts en ligne de commande
- CHAPITRE 33 — Référence des constantes
CHAPITRE 29 — Référence des shortcodes
Tous les shortcodes livrés par le module, avec leurs sélecteurs et leurs champs disponibles.
Namespace product
Sélecteurs : ref=<ref> ou id=<rowid> ou ref=$current (marqueur).
Champ | Source |
|---|---|
|
et
selon la langue |
| idem |
| si
est activée |
|
|
,
,
| Prix formatés selon la langue |
,
| Statuts commercialisable et achetable (0 ou 1) |
| Tout champ personnalisé |
{{product:ref=supplyflow.label}}
{{product:ref=$current.ef_tagline}}
{{product:id=42.price}}
Namespace category
Sélecteurs : id=<rowid> ou ref=<ref>.
Champs : label, description, color, ref.
{{category:id=5.label}}
{{category:ref=blog-marketing.label}}
Namespace dict
Sélecteurs : <table>.<col>=<valeur>.
Table de dictionnaire | Exemple |
|---|---|
|
|
|
|
|
|
Namespace mysoc
Sélecteur : aucun (singleton).
Champs : name, address, zip, town, country_code, phone, fax, email, url, capital, tva_intra, idprof1 à idprof6, logo, logo_small, logo_squarred.
{{mysoc.name}} — {{mysoc.address}}, {{mysoc.zip}} {{mysoc.town}}
SIRET {{mysoc.idprof2}} — TVA {{mysoc.tva_intra}}
Namespace extrafield
Sélecteurs : table=<table>|ref=<ref> ou table=<table>|id=<id> avec field=<name>.
{{extrafield:table=product|ref=supplyflow|field=tagline}}
{{extrafield:table=societe|id=42|field=segment}}
{{extrafield:table=product|ref=$current|field=tagline}}
Namespace media
Sélecteur : ref=<ref>.
Champ | Retour |
|---|---|
| URL du fichier original |
| URL de la variante 200 × 200 |
| URL de la variante 640 × 480 |
| URL de la variante 1600 × 1200 |
| Texte alternatif (résolu selon la langue) |
| Libellé affiché |
,
| Dimensions en pixels |
Étendre avec un namespace personnalisé
Déposez un fichier dans htdocs/custom/infrasstudio/shortcodes/<nom>.shortcode.php qui exporte une fonction infrasstudio_shortcode_<nom>_resolve($args, $context).
function infrasstudio_shortcode_myorg_resolve($args, $context)
{
global $db;
$id = isset($args['id']) ? (int) $args['id'] : 0;
$field = isset($args['_field']) ? $args['_field'] : 'name';
// ... logique de résolution
return $value;
}
CHAPITRE 30 — Référence des hooks et triggers
Hooks Dolibarr utilisés par le module
Hook | Méthode appelée | Rôle |
|---|---|---|
|
| Sécurité de l'accès aux médias via
. |
| divers | Initialisations à la connexion. |
|
| Résolution des slots et shortcodes au moment du rendu public. Cœur du module. |
| divers | Personnalisation des menus du module Website. |
Implémentation : htdocs/custom/infrasstudio/class/actions_infrasstudio.class.php.
Triggers Dolibarr écoutés
Trigger InterfaceInfrasstudiotrigger dans core/triggers/interface_99_modinfrasstudio_Infrasstudiotrigger.class.php.
Événement | Réaction |
|---|---|
| Régénération des wrappers solution-*.php |
| idem |
| idem |
| idem |
| idem (uniquement si
) |
| idem |
Triggers Dolibarr émis par le module
Trigger émis | Quand |
|---|---|
| Modification du libellé ou de la description en français depuis le Studio (via
). |
| Modification des traductions natives produit depuis le Studio. |
Tâches planifiées déclarées
Tâche | Fréquence | Rôle |
|---|---|---|
| Toutes les heures | Filet de sécurité pour la régénération des wrappers solution. |
Purge des slots orphelins | Quotidien | Suppression des slots orphelins de plus de 30 jours. |
CHAPITRE 31 — Référence SQL : tables et colonnes
llx_infrasstudio_slot
Stockage des valeurs de slot. Une ligne par combinaison (fk_website_page, slot_name, lang, entity).
Colonne | Type | Description |
|---|---|---|
| INT PK | Identifiant auto-incrémenté |
| INT | Référence vers
|
| VARCHAR(64) | Identifiant du slot |
| VARCHAR(16) | text, textarea, richtext, image, url, etc. |
| VARCHAR(8) | Vide = canonique, sinon locale (fr_FR, en_US, etc.) |
| LONGTEXT | Valeur publique |
| LONGTEXT | Brouillon en attente |
,
,
,
,
| VARCHAR/TEXT | Métadonnées (sur la ligne canonique uniquement) |
| INT | Limite de caractères |
| INT | 1 = actif, 0 = orphelin |
,
| DATETIME, INT | Audit standard Dolibarr |
| INT | Multicompany |
Index unique : uk_infrasstudio_slot_uniq (fk_website_page, slot_name, lang, entity).
llx_infrasstudio_media
Colonne | Type | Description |
|---|---|---|
| INT PK | Identifiant auto-incrémenté |
| VARCHAR(64) | Identifiant unique par entity |
| VARCHAR(255) | Nom affiché |
| VARCHAR(16) | image, video, document |
| VARCHAR(255) | Chemin relatif à
|
,
,
,
| INT/VARCHAR | Métadonnées physiques |
| VARCHAR(255) | Texte alternatif canonique |
| VARCHAR(255) | CSV de tags |
| INT | Site associé |
| TEXT | Cartographie des variantes générées |
| INT | 1 = actif, 0 = corbeille |
| INT | Multicompany |
llx_infrasstudio_media_alt
Surcharges du texte alternatif par langue.
Colonnes | Type |
|---|---|
PK,
,
,
,
,
| Standards |
Index unique : (fk_media, lang, entity).
llx_infrasstudio_revision
Historique en mode ajout uniquement des modifications.
Colonnes : rowid, object_type (slot ou media), fk_object, action, payload (JSON), fk_user, date_creation, entity.
llx_infrasstudio_product_translation
Surcharges par langue des champs personnalisés produit traduisibles.
Colonne | Type |
|---|---|
| PK |
| INT |
| VARCHAR(8) |
| VARCHAR(64) — slug du champ personnalisé |
| MEDIUMTEXT |
,
| Standards |
Index unique : (fk_product, lang, field, entity).
Tables Dolibarr utilisées sans modification
llx_website— sitesllx_website_page— pages (titre SEO, meta description, status, gabarit)llx_product— produits (label et description FR canoniques, prix, tosell)llx_product_lang— traductions natives label et descriptionllx_product_extrafields— champs personnalisés canoniques (FR)llx_categorie,llx_categorie_product— catégoriesllx_const— constantes du modulellx_extrafields— définitions des champs personnalisésllx_cronjob— tâches planifiéesllx_ecm_files— fichiers attachés aux produits (mode du sélecteur à deux onglets)
CHAPITRE 32 — Référence des scripts en ligne de commande
Tous les scripts en ligne de commande livrés avec le module. Chemin : htdocs/custom/infrasstudio/scripts/.
rescan_slots.php
Rescanne les fichiers tpl.php d'un site et synchronise la table des slots.
php rescan_slots.php <website_ref_or_id> [--entity=N] [--purge-orphans] [--dry-run] [--lint]
Option | Effet |
|---|---|
| Force l'entity Dolibarr. |
| Supprime immédiatement les slots orphelins (sans attendre 30 jours). |
| Affiche les changements sans les appliquer. |
| Vérifie la syntaxe des slots. Code de sortie : 0 sans anomalie, 1 avec avertissement, 2 avec erreur. |
rebuild_solution_wrappers.php
Reconstruit manuellement les wrappers solution-*.php du catalogue produit.
php rebuild_solution_wrappers.php <websitekey-or-id> <public-docroot> [entity]
# Exemple
php rebuild_solution_wrappers.php monsite /var/www/monsite 2
generate_sitemap.php
Génère le fichier sitemap.xml d'un site.
php generate_sitemap.php <website_ref> [entity]
Idéal pour une planification quotidienne via cron :
# crontab -e
0 3 * * * php /var/www/dolibarr/htdocs/custom/infrasstudio/scripts/generate_sitemap.php monsite 2
preset_default.php
Chargeur générique de presets JSON. Crée et met à jour catégories Dolibarr, champs personnalisés (produits, tickets, contacts…) et configurations de formulaires en un seul passage. Le module n'embarque plus de préset spécifique à un client : chaque site livre ses propres descripteurs JSON dans son dossier source DOL_DATA_ROOT/<entity>/website/<ref>/presets/.
php preset_default.php <chemin-vers-preset.json> [--entity=N]
# Exemple : appliquer le préset formulaires d'un site sur l'entité 2
php preset_default.php /mnt/data/dolibarr/2/website/monsite/presets/forms.json --entity=2
# Exemple : appliquer le préset extrafields produit sur l'entité 2
php preset_default.php /mnt/data/dolibarr/2/website/monsite/presets/product.json --entity=2
Format JSON attendu : voir le Chapitre 25 (presets multi-section : categories, extrafields_by_element, form_configs, email_templates). Le script est idempotent — relancer la même commande ne crée pas de doublon.
consolidate_sister_pages.php
Consolide une famille de pages sœurs (modèle B legacy) en une page canonique et plusieurs stubs (modèle A moderne).
php consolidate_sister_pages.php <site_ref> \
[--entity=N] \
[--base-slug=<slug>] \
[--dry-run] \
[--extractor=/path/to/extractor.php]
convert_tpl_to_slots.php
Transforme les echo $langs->trans('Key') d'un fichier tpl.php en tokens {{slot:...|default=@lang:Key}}.
php convert_tpl_to_slots.php <tpl_path> [--group=xxx] [--prefix=yyy] [--dry-run] [--hook-engine]
Option | Effet |
|---|---|
| Attribut group par défaut. |
| Préfixe des noms de slot. |
| Aperçu des modifications sans application. |
| Ajoute également l'inclusion du moteur du module. |
Bonnes pratiques en ligne de commande
- Toujours utiliser
--dry-runavant une migration importante. - Lancer en tant qu'utilisateur Apache (
sudo -u www-data php script.php) pour éviter les problèmes de permissions sur les fichiers générés. - En multicompany, toujours préciser
--entity=N. - Capturer la sortie dans un journal :
php script.php 2>&1 | tee /tmp/script.log.
Fin de la Partie VI — Vous disposez désormais d'un mémo complet : constantes, shortcodes, hooks, tables SQL, scripts en ligne de commande. Tout est rassemblé en un seul endroit pour une consultation rapide.
CHAPITRE 33 — Référence des constantes
Toutes les constantes Dolibarr utilisées par le module, classées par catégorie d'usage. Format : nom, type, valeur par défaut, description.
Sites gérés
Constante | Type | Défaut | Description |
|---|---|---|---|
| CSV | vide | Identifiants des sites Website gérés (par exemple
). |
| chaîne |
| Mode média par site :
ou
. |
| entier | 0 | Identifiant de la page d'index du blog (active l'assistant « + Nouvel article »). |
| chemin | vide | Surcharge du docroot Apache de ce site. |
| timestamp | 0 | Géré automatiquement. Horodatage du dernier rescan automatique des médias. |
Portabilité du système de fichiers
Constante | Type | Défaut | Description |
|---|---|---|---|
| modèle | vide | Modèle partagé avec marqueur
. Exemple :
. |
| chemin | vide | Dossier supplémentaire pour les gabarits. |
Catalogue produit
Constante | Type | Défaut | Description |
|---|---|---|---|
| chaîne | vide | Référence du site cible des wrappers. |
| chemin | vide | Docroot Apache absolu où écrire les wrappers. |
| JSON | vide | Surcharge de la cartographie catégorie vers univers. |
| CSV | vide | Slugs de champs personnalisés à ajouter au registre traduisible. |
| JSON | vide | Surcharge complète du registre. |
| chaîne |
| Préfixe des wrappers générés. |
| chaîne |
| Slug Dolibarr du gabarit. |
Apparence du Studio
Constante | Valeurs | Défaut |
|---|---|---|
|
,
|
|
|
,
,
,
|
|
Multilingue
Constante | Type | Description |
|---|---|---|
| chaîne | Langue active. Définie dynamiquement par les gabarits. |
| chaîne | Nom du cookie de persistance de la langue. |
| JSON | Surcharge de la cartographie ISO2 vers locale. |
| URL | Image par défaut pour les articles sans image principale. |
Compatibilité et débogage
Constante | Description |
|---|---|
| Géré automatiquement. Version de Dolibarr lors de l'activation. |
| Géré automatiquement. Version du module. |
| Régler sur
pour contourner la vérification de version Dolibarr minimale. |
| Sauvegarde automatique des constantes lors d'une désactivation. Préfixe accolé au nom d'origine. |