# CHAPITRE 14 — Gérer les articles de blog

Le blog géré par le module repose sur les pages standard du module Website. Aucune table dédiée, aucun système parallèle : un article correspond à une page web. L'ensemble de ce que vous savez déjà s'applique, avec quelques raccourcis ergonomiques supplémentaires.

### <span style="color: rgb(35, 111, 161);">Comprendre l'architecture du blog</span>

<table id="bkmrk-%C3%89l%C3%A9mentdescriptionar" style="width: 100%; border-collapse: collapse; margin: 1rem 0px; font-size: 0.95em;"><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.6rem 1rem; text-align: left; border: 1px solid rgb(25, 5, 45);">Élément

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

</th></tr><tr><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">**Article**

</td><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);"><span style="white-space: pre-wrap;">Une page Dolibarr Website portant le type </span>

`<span class="editor-theme-code">blogpost</span>`

.

</td></tr><tr style="background: rgb(250, 245, 255);"><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">**Page d'index**

</td><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">Une page standard (par exemple « Ressources » ou « Blog ») qui liste les articles publiés.

</td></tr><tr><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">**Multilingue**

</td><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">Un article correspond à une page, qui correspond à un fichier PHP. Les traductions vivent dans les surcharges de slots, comme pour toute page.

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

### <span style="color: rgb(35, 111, 161);">Créer un nouvel article</span>

L'assistant de création est contextuel : il s'active automatiquement lorsque vous êtes sur la page d'index du blog désignée par votre administrateur.

##### **Procédure**

1. <span style="white-space: pre-wrap;">Ouvrez la page d'index du blog (par exemple </span>`<span class="editor-theme-code">/ressources</span>`).
2. <span style="white-space: pre-wrap;">Le bouton de la barre latérale devient </span>**+ Nouvel article**<span style="white-space: pre-wrap;"> (au lieu de « + Nouvelle page »).</span>
3. Cliquez sur ce bouton.
4. Une fenêtre s'ouvre avec trois champs :
    - **Titre**<span style="white-space: pre-wrap;"> : il deviendra le H1 et le titre SEO. Il pré-remplit le slot </span>`<span class="editor-theme-code">post_title</span>`.
    - **Slug**<span style="white-space: pre-wrap;"> : généré automatiquement à partir du titre, préfixé par </span>`<span class="editor-theme-code">blog-</span>`. Vous pouvez le modifier.
    - **Catégorie**<span style="white-space: pre-wrap;"> : la rubrique de l'article (par exemple transformation digitale, juridique). Elle pré-remplit le slot </span>`<span class="editor-theme-code">post_category</span>`.
5. <span style="white-space: pre-wrap;">Cliquez sur </span>**Créer l'article**.
6. <span style="white-space: pre-wrap;">Une nouvelle page </span>`<span class="editor-theme-code">blog-mon-titre</span>`<span style="white-space: pre-wrap;"> est créée à partir du gabarit blog du site.</span>
7. Vous êtes automatiquement redirigé vers l'éditeur de cette nouvelle page.

<p class="callout success">**Effet automatique —**<span style="white-space: pre-wrap;"> Le module crée la page Dolibarr, le fichier </span>`<span class="editor-theme-code">tpl.php</span>`<span style="white-space: pre-wrap;">, le wrapper Apache </span>`<span class="editor-theme-code">blog-mon-titre.php</span>`<span style="white-space: pre-wrap;"> et pré-remplit les slots </span>`<span class="editor-theme-code">post_title</span>`<span style="white-space: pre-wrap;"> et </span>`<span class="editor-theme-code">post_category</span>`.</p>

### <span style="color: rgb(35, 111, 161);">Anatomie d'un article</span>

Un article créé depuis le gabarit standard contient les slots suivants :

<table id="bkmrk-slottyper%C3%B4lepost_tit" style="width: 100%; border-collapse: collapse; margin: 1rem 0px; font-size: 0.95em;"><colgroup><col></col><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.6rem 1rem; text-align: left; border: 1px solid rgb(25, 5, 45);">Slot

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

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

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

</td><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">texte court

</td><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">H1 et titre SEO de l'article

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

</td><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">texte court

</td><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">Meta description SEO (150-160 caractères)

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

</td><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">texte court

</td><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">Rubrique affichée en pastille au-dessus du titre

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

</td><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">texte long

</td><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">Chapeau ou accroche en italique sous le titre

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

</td><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">image

</td><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">Image principale en pleine largeur en haut de l'article

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

</td><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">texte riche

</td><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">Le corps de l'article (éditeur visuel complet)

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

</td><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">image

</td><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">Image illustrative facultative dans le corps

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

</td><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">texte court

</td><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">Texte alternatif de l'image secondaire

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

<p class="callout info">**Note —**<span style="white-space: pre-wrap;"> La date d'un article n'est pas un slot. Elle est lue automatiquement depuis la base Dolibarr (date de modification, sinon date de création). Vous n'avez pas à la saisir.</span></p>

### <span style="color: rgb(35, 111, 161);">Date et auteur d'un article</span>

La date affichée publiquement suit cette cascade :

1. La date de modification de la page (la plus récente).
2. La date de création si la page n'a jamais été modifiée.

Vous n'avez rien à saisir : à chaque publication d'une modification, la date est mise à jour automatiquement. C'est le comportement standard d'un blog.

<p class="callout info">**Conseil —**<span style="white-space: pre-wrap;"> Pour antidater un article, demandez à votre administrateur Dolibarr de modifier </span>`<span class="editor-theme-code">llx_website_page.date_creation</span>`<span style="white-space: pre-wrap;"> en SQL. Aucune interface dédiée n'est prévue, par souci de simplicité.</span></p>

<span style="white-space: pre-wrap;">L'auteur affiché est généralement géré par un slot dans le gabarit du site (par exemple </span>`<span class="editor-theme-code">post_author</span>`).

### <span style="color: rgb(35, 111, 161);">La page d'index avec son listing automatique</span>

La page d'index du blog (« Ressources », « Blog », etc.) ne nécessite aucune édition manuelle pour ajouter un nouvel article : la liste se met à jour automatiquement.

Lorsque vous publiez un nouvel article :

1. <span style="white-space: pre-wrap;">Le module détecte la nouvelle page de type </span>`<span class="editor-theme-code">blogpost</span>`<span style="white-space: pre-wrap;"> au statut publié.</span>
2. Au prochain rendu de la page d'index, l'article apparaît dans la grille.
3. Image principale, titre, catégorie, accroche, date : tout est lu depuis les slots de l'article.

<p class="callout success">**Conséquence —**<span style="white-space: pre-wrap;"> Vous ne touchez jamais à la page d'index. Vous publiez vos articles. Le listing se met à jour de lui-même.</span></p>

### <span style="color: rgb(35, 111, 161);">La section « À lire également »</span>

Sous chaque article, une section affiche trois articles aléatoires (autres que celui qui est consulté). Aucune configuration n'est nécessaire : la sélection est effectuée par le module à chaque rendu.

### <span style="color: rgb(35, 111, 161);">Modifier un article existant</span>

1. Ouvrez l'éditeur Studio.
2. <span style="white-space: pre-wrap;">Dans la colonne de gauche, dépliez le groupe </span>**blogpost**.
3. Cliquez sur l'article à modifier.
4. L'aperçu se charge. Modifiez les slots normalement (clic dans l'aperçu, inspecteur, etc.).
5. Publiez lorsque vous êtes prêt.

### <span style="color: rgb(35, 111, 161);">Dupliquer un article</span>

Cette fonction est utile pour réutiliser une structure existante :

1. Ouvrez l'article modèle.
2. <span style="white-space: pre-wrap;">Cliquez sur </span>**Dupliquer**<span style="white-space: pre-wrap;"> dans la barre d'outils.</span>
3. <span style="white-space: pre-wrap;">Une fenêtre demande le nouveau slug (préfixé </span>`<span class="editor-theme-code">blog-</span>`) et le nouveau titre.
4. Confirmez.
5. Le module crée la copie avec tous les slots clonés (canonique et traductions).
6. Vous êtes redirigé vers le nouvel article pour le personnaliser.

### <span style="color: rgb(35, 111, 161);">Supprimer un article</span>

**Réservé aux administrateurs —**<span style="white-space: pre-wrap;"> Le bouton « Supprimer » de la barre d'outils n'est visible qu'avec la permission </span>`<span class="editor-theme-code">admin</span>`<span style="white-space: pre-wrap;">. Une confirmation est demandée. La suppression est irréversible : la page Dolibarr, ses slots, son fichier </span>`<span class="editor-theme-code">tpl.php</span>`<span style="white-space: pre-wrap;"> et son wrapper Apache disparaissent définitivement.</span>

**Alternative —**<span style="white-space: pre-wrap;"> Plutôt que de supprimer, utilisez </span>**Retirer du site**. L'article sort du listing public mais reste consultable depuis l'éditeur. Vous pouvez le remettre en ligne plus tard.

### <span style="color: rgb(25, 5, 45);">Récapitulatif</span>

**Vous savez désormais :**

- Comprendre qu'un article correspond à une page Dolibarr Website.
- Créer un nouvel article via l'assistant contextuel sur la page d'index.
- Renseigner les huit slots du gabarit blog standard.
- Comprendre la datation automatique de l'article.
- Constater que le listing se met à jour de lui-même.
- Modifier, dupliquer, retirer ou supprimer un article.

Le chapitre suivant présente le catalogue produit dynamique.