# CHAPITRE 32 — Référence des scripts en ligne de commande

<span style="white-space: pre-wrap;">Tous les scripts en ligne de commande livrés avec le module. Chemin : </span>`<span class="editor-theme-code">htdocs/custom/infrasstudio/scripts/</span>`.

### <span style="color: rgb(35, 111, 161);">rescan\_slots.php</span>

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]
```

<table id="bkmrk-optioneffet--entity%3D" style="width: 100%; border-collapse: collapse; margin: 1rem 0px; font-size: 0.92em;"><colgroup><col></col><col></col></colgroup><tbody><tr style="background: rgb(25, 5, 45); color: rgb(254, 252, 232);"><th class="align-left" style="padding: 0.5rem; text-align: left; border: 1px solid rgb(25, 5, 45);">Option

</th><th class="align-left" style="padding: 0.5rem; text-align: left; border: 1px solid rgb(25, 5, 45);">Effet

</th></tr><tr><td style="padding: 0.5rem; border: 1px solid rgb(229, 231, 235);">`<span class="editor-theme-code">--entity=N</span>`

</td><td style="padding: 0.5rem; border: 1px solid rgb(229, 231, 235);">Force l'entity Dolibarr.

</td></tr><tr style="background: rgb(250, 245, 255);"><td style="padding: 0.5rem; border: 1px solid rgb(229, 231, 235);">`<span class="editor-theme-code">--purge-orphans</span>`

</td><td style="padding: 0.5rem; border: 1px solid rgb(229, 231, 235);">Supprime immédiatement les slots orphelins (sans attendre 30 jours).

</td></tr><tr><td style="padding: 0.5rem; border: 1px solid rgb(229, 231, 235);">`<span class="editor-theme-code">--dry-run</span>`

</td><td style="padding: 0.5rem; border: 1px solid rgb(229, 231, 235);">Affiche les changements sans les appliquer.

</td></tr><tr style="background: rgb(250, 245, 255);"><td style="padding: 0.5rem; border: 1px solid rgb(229, 231, 235);">`<span class="editor-theme-code">--lint</span>`

</td><td style="padding: 0.5rem; border: 1px solid rgb(229, 231, 235);">Vérifie la syntaxe des slots. Code de sortie : 0 sans anomalie, 1 avec avertissement, 2 avec erreur.

</td></tr></tbody></table>

### <span style="color: rgb(35, 111, 161);">rebuild\_solution\_wrappers.php</span>

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
```

### <span style="color: rgb(35, 111, 161);">generate\_sitemap.php</span>

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
```

### <span style="color: rgb(35, 111, 161);">preset\_default.php</span>

Chargeur générique de presets JSON. Crée des champs personnalisés produit en série.

```
php preset_default.php <chemin-vers-preset.json>

# Exemple avec le preset livré
php preset_default.php htdocs/custom/infrasstudio/presets/keaticweb.json
```

Format JSON attendu : voir la documentation des presets.

### <span style="color: rgb(35, 111, 161);">preset\_keatic.php</span>

<span style="white-space: pre-wrap;">Wrapper de compatibilité — équivalent à </span>`<span class="editor-theme-code">preset_default.php presets/keaticweb.json</span>`.

### <span style="color: rgb(35, 111, 161);">consolidate\_sister\_pages.php</span>

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]
```

### <span style="color: rgb(35, 111, 161);">convert\_tpl\_to\_slots.php</span>

<span style="white-space: pre-wrap;">Transforme les </span>`<span class="editor-theme-code">echo $langs->trans('Key')</span>`<span style="white-space: pre-wrap;"> d'un fichier tpl.php en tokens </span>`<span class="editor-theme-code">{{slot:...|default=@lang:Key}}</span>`.

```
php convert_tpl_to_slots.php <tpl_path> [--group=xxx] [--prefix=yyy] [--dry-run] [--hook-engine]
```

<table id="bkmrk-optioneffet--group%3Dx" style="width: 100%; border-collapse: collapse; margin: 1rem 0px; font-size: 0.92em;"><colgroup><col></col><col></col></colgroup><tbody><tr style="background: rgb(25, 5, 45); color: rgb(254, 252, 232);"><th class="align-left" style="padding: 0.5rem; text-align: left; border: 1px solid rgb(25, 5, 45);">Option

</th><th class="align-left" style="padding: 0.5rem; text-align: left; border: 1px solid rgb(25, 5, 45);">Effet

</th></tr><tr><td style="padding: 0.5rem; border: 1px solid rgb(229, 231, 235);">`<span class="editor-theme-code">--group=xxx</span>`

</td><td style="padding: 0.5rem; border: 1px solid rgb(229, 231, 235);">Attribut group par défaut.

</td></tr><tr style="background: rgb(250, 245, 255);"><td style="padding: 0.5rem; border: 1px solid rgb(229, 231, 235);">`<span class="editor-theme-code">--prefix=yyy</span>`

</td><td style="padding: 0.5rem; border: 1px solid rgb(229, 231, 235);">Préfixe des noms de slot.

</td></tr><tr><td style="padding: 0.5rem; border: 1px solid rgb(229, 231, 235);">`<span class="editor-theme-code">--dry-run</span>`

</td><td style="padding: 0.5rem; border: 1px solid rgb(229, 231, 235);">Aperçu des modifications sans application.

</td></tr><tr style="background: rgb(250, 245, 255);"><td style="padding: 0.5rem; border: 1px solid rgb(229, 231, 235);">`<span class="editor-theme-code">--hook-engine</span>`

</td><td style="padding: 0.5rem; border: 1px solid rgb(229, 231, 235);">Ajoute également l'inclusion du moteur du module.

</td></tr></tbody></table>

### <span style="color: rgb(35, 111, 161);">Bonnes pratiques en ligne de commande</span>

- <span style="white-space: pre-wrap;">Toujours utiliser </span>`<span class="editor-theme-code">--dry-run</span>`<span style="white-space: pre-wrap;"> avant une migration importante.</span>
- Lancer en tant qu'utilisateur Apache (`<span class="editor-theme-code">sudo -u www-data php script.php</span>`) pour éviter les problèmes de permissions sur les fichiers générés.
- <span style="white-space: pre-wrap;">En multicompany, toujours préciser </span>`<span class="editor-theme-code">--entity=N</span>`.
- <span style="white-space: pre-wrap;">Capturer la sortie dans un journal : </span>`<span class="editor-theme-code">php script.php 2>&1 | tee /tmp/script.log</span>`.

**Fin de la Partie VI —**<span style="white-space: pre-wrap;"> 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.</span>