Aller au contenu

Module v1.6.0

Configurer Articles

Un blog intégré pour publier vos actualités, conseils ou coulisses, avec un éditeur simple en blocs.

articles Ce que ce module apporte →

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
Articles
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, annulable

    Cré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 »

  • lister lecture seule

    Liste 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, annulable

    Modifie 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-author
  • s-article-body
  • s-article-cat
  • s-article-cover
  • s-article-date
  • s-article-full
  • s-article-header
  • s-article-meta
  • s-article-readtime
  • s-article-theme
  • s-article-themes
  • s-article-title
views/gabarit.php 0 classes

Aucune classe littérale : cette prise construit son balisage en PHP.

views/liste.php 12 classes
  • s-article
  • s-article-cat
  • s-article-cover
  • s-article-date
  • s-article-date-annee
  • s-article-date-jour
  • s-article-date-mois
  • s-article-excerpt
  • s-article-link
  • s-article-media
  • s-article-title
  • s-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_themes
  • article_translations
  • articles