Posts
Types de contenu déclarés en variables d'environnement, avec taxonomies, relations, hiérarchie et rendu public préfixé par le type.
@lrvo/module-posts ajoute des types de contenu à l'admin, sans écrire une ligne de code. Un type, ses champs, ses taxonomies et ses relations sont déclarés dans le .env, et le module en dérive la table, l'interface d'édition, les routes et le rendu public.
Le module est indépendant de @lrvo/module-pages. Les deux peuvent cohabiter : posts réserve les URL de la forme /<type>/<slug>, pages sert de repli sur tout le reste.

Rien de cet écran n'est écrit en dur. Le libellé de la section, les colonnes affichées et la poignée de réordonnancement viennent de la déclaration du type dans le .env. Un deuxième type déclaré donne une deuxième section, avec ses propres colonnes. Voir Types et champs.
Pages de cette section
| Page | Contenu |
|---|---|
| Installation | Installer le module, créer les tables, brancher le rendu public. |
| Configuration | Variable d'activation, permissions, entrées d'admin. |
| Types et champs | Déclarer un type de contenu et ses champs. |
| Taxonomies et relations | Classer, relier et hiérarchiser des posts. |
| Administration | Écrans d'admin, liste, formulaire, sélecteurs et termes. |
| Modèle de données | Les quatre tables, les migrations, les règles de slug. |
| Templates | Écrire un template de post et les propriétés qu'il reçoit. |
| API | Routes HTTP et fonctions serveur importables. |
Ce que le module apporte
| Élément | Détail |
|---|---|
| Tables | lrvo_posts_post, lrvo_posts_taxonomy_term, lrvo_posts_post_taxonomy, lrvo_posts_relation. |
| Entrées d'admin | Une section par type déclaré, icône et libellé configurables, ordre à partir de 300. |
| Tableau de bord | Une tuile à l'ordre 70 : un inventaire par type et les deux derniers posts touchés. |
| Permissions | posts.view et posts.manage, communes à tous les types. |
| Routes API | 12 routes d'admin, 4 routes publiques. |
| Rendu public | Un résolveur enregistré dans core/public-content à la priorité 10. |
| Templates | Templates de kind: 'post', portés par type, dans core/templates. |
Un seul module, plusieurs types
Il n'y a pas un module par type de contenu. LRVO_MODULE_POSTS_TYPES déclare la liste, et chaque type obtient sa propre section d'admin, ses propres taxonomies et son propre préfixe d'URL. Tous partagent la même table et les mêmes permissions.
La conséquence pratique : ajouter un type de contenu ne demande ni installation, ni migration, ni redéploiement de schéma. Une variable d'environnement suffit, les tables étant déjà en place.
Voir Types et champs pour la syntaxe.
Positionnement dans le rendu public
Le résolveur du module est enregistré à la priorité 10, et n'accepte que les URL d'au moins deux segments dont le premier est une clé de type connue. Il passe donc avant @lrvo/module-pages, qui est à la priorité 0, mais ne réclame jamais une URL d'un seul segment.
Une page CMS nommée blogue et un type de post nommé blogue peuvent donc coexister : /blogue rend la page, /blogue/mon-article rend le post.
Notes
- Un type sans champ de type
slugn'est jamais rendu publiquement. C'est l'interrupteur qui distingue un type public d'un type purement interne. Voir Types et champs. - Le champ
versiondu manifeste du module vaut1.5.0et ne suit pas la version du package. Se fier àpackage.json. - Le module lit et écrit des médias par le registre média du core. Sans
@lrvo/module-medias, les champsimage,thumbnailetgalleryrestent déclarables mais le sélecteur ne s'ouvre pas, et le module émet un avertissement au boot.
