Module v1.6.0
Configurer Articles
Un blog intégré pour publier vos actualités, conseils ou coulisses, avec un éditeur simple en blocs.
Ce qu'il fait
Articles génériques : type "libre" (sections standardisées empilables : intro, texte, média, galerie, citation, CTA…), extensible par types template maison via le scanner @editable. Mise à la une, prise "article ouvert" (en-tête + corps, temps de lecture), panneau SEO intégré (meta title/description, image OG) ; inscrit ses articles publiés au hub SEO via le filtre seo.items.
- Éditeur visuel en blocs (texte, image, galerie, citation…)
- Catégories et mise en avant
- Brouillon puis publication en un clic
- Référencement intégré à chaque article
- Publication programmée : une date de parution future garde l'article en attente jusque-là
- Vidéo YouTube ou Vimeo : une adresse sur l'article, ou une section dans son contenu
- Une version par langue du site, avec une première traduction par l'IA de l'assistant, à relire
Où le trouver
Les écrans que ce module ajoute à l'administration, une fois activé.
-
Articles
/admin/articles
Ses réglages
Ils se modifient depuis l'administration. La clé est donnée pour qui pilote le site en ligne de commande ou par l'API.
| Réglage | Clé | Type | Par défaut |
|---|---|---|---|
| Dossier des déclarations de types d'article (relatif à KIT_ROOT) | articles.templates_dir |
string | modules/articles/templates |
| Motif d'URL publique d'un article (ex : /actualites/{slug}) | articles.public_url |
string | (vide) |
Ses droits
Ce que chaque rôle peut faire par défaut. Modifiable rôle par rôle depuis l'administration.
| Droit | Clé | Administrateur | Éditeur |
|---|---|---|---|
| Voir les articles | articles.read |
✓ | ✓ |
| Créer / modifier articles | articles.write |
✓ | ✓ |
| Supprimer un article | articles.delete |
✓ | — |
| Publier (passer en public) | articles.publish |
✓ | ✓ |
Ses satellites
Des modules qui se greffent sur celui-ci et s'activent séparément. Chacun a sa page.
- Commentaires Ouvre les commentaires sous vos articles : le visiteur laisse un nom, une adresse e-mail (jamais publiée) et son message.
- Événements Satellite du module articles : un événement est un article auquel on ajoute une date (fin, heure, lieu en option).
Ce qu'il suppose
Le désactiver arrêterait aussi :
Piloter par une IA
Ce que ce module sait faire quand on le lui demande en langage naturel, et ce que chaque action engage.
-
creer_articleécrit, annulableCrée un article (TOUJOURS en brouillon ; rend id, slug, url publique future, admin_url). Params : title (requis), type (défaut libre), excerpt, status, sections[] (type libre : liste {type, data} — types : intro, texte, media, media-texte, video, quizz, galerie, citation, code, cta, separateur, onglets, liste_pictos, carrousel, tableau, encadre ; cf. Articles::SECTION_TYPES) ou content{} (types template).
« crée un article intitulé « Le menu de printemps » avec ce texte : … » « fais-moi un brouillon d'article sur notre nouvelle carte »
-
listerlecture seuleListe les articles récents : id, titre, slug, extrait, statut, publie_le, modifie, url publique absolue (vide si le site n'a pas réglé son motif), admin_url. Params : statut? (draft|published|archived), recherche?, limit (max 50).
« quels articles j'ai en brouillon ? »
-
modifierécrit, annulableModifie le titre ou l'extrait d'un article. Écriture journalisée : annulable. Ne change JAMAIS le statut — publier se décide depuis l'écran des articles, après relecture.
« corrige le titre de l'article 12 en « Notre carte de printemps » » « change l'extrait du dernier article »
Ses points de branchement
Pour greffer du code sans toucher au module : ce qu'il annonce, et ce qu'il écoute.
Ce qu'il annonce 8
articles.created- Émis après création. Args: [array $article]
articles.updated- Émis après update. Args: [int $id, array $new, array $old]
articles.deleted- Émis après suppression. Args: [int $id, array $old]
articles.editor.fields- Émis dans le <form> de l'éditeur (après les sections, avant SEO). Le satellite ÉCHOIT ses champs. Args: [array $article] (id=0 en création).
articles.editor.save- Émis après un Articles::save() réussi depuis l'éditeur admin. Le satellite extrait SES champs de $_POST et persiste dans SA table. Args: [int $id, array $post].
articles.list.filters- Event — émis dans la barre de filtres de la liste. Le satellite ÉCHOIT un onglet de filtre (lien). Args: [array $get].
articles.list.ids- Filter — restreint la liste à un sous-ensemble d'ids selon $_GET. Chaîne : null (pas de restriction) ou int[] (intersection). Args: [?int[] $ids, array $get] → ?int[].
articles.list.row.badges- Filter — HTML de badges ajouté sur une ligne de la liste. Args: [string $html, array $article] → string.
Ce qu'il écoute 5
dashboard.blocs- priorité 70
search.results- priorité 20
seo.items- priorité 20
seo.image_du_contenu- priorité 20
seo.jsonld- priorité 20
Ses prises front
Les morceaux de page que ce module fournit, et les classes qu'ils posent. Un thème les habille par ces classes : il ne recopie pas le balisage, sinon il rate les corrections des versions suivantes.
views/article.php
12 classes
s-article-authors-article-bodys-article-cats-article-covers-article-dates-article-fulls-article-headers-article-metas-article-readtimes-article-themes-article-themess-article-title
views/gabarit.php
0 classes
Aucune classe littérale : cette prise construit son balisage en PHP.
views/liste.php
12 classes
s-articles-article-cats-article-covers-article-dates-article-date-annees-article-date-jours-article-date-moiss-article-excerpts-article-links-article-medias-article-titles-articles
views/sections.php
0 classes
Aucune classe littérale : cette prise construit son balisage en PHP.
Ses données
Les tables que ce module crée. Désactiver un module ne les efface pas : ses données restent en base et reviennent s'il est réactivé.
Les tables 3
article_themesarticle_translationsarticles