Installation
Installer @lrvo/module-posts, déclarer un premier type, créer les tables et brancher le rendu public.
Cette page couvre l'installation de @lrvo/module-posts dans un projet déjà structuré par @lrvo/start. Le module n'est jamais déclaré à la main : il est découvert au boot par scan des dépendances, comme décrit dans Cycle de vie d'un module.
Prérequis
- Un projet généré par
npx @lrvo/start, avec@lrvo/coreinstallé. - L'accès au registre privé configuré. Voir Installation.
Installer
npm i @lrvo/module-postsDéclarer un premier type
Contrairement aux autres modules, activer @lrvo/module-posts ne suffit pas : sans type déclaré, il ne crée aucune section d'admin et ne rend rien.
#------ MODULE - POSTS ------#
LRVO_MODULE_POSTS=true
LRVO_MODULE_POSTS_TYPES=blogue:Blogue:Moon02Icon
LRVO_MODULE_POSTS_TYPE_BLOGUE=title:title|slug:slug|date:date:now:sidebar|content:editor:ContenuTrois lignes, dans cet ordre : le drapeau d'activation, la liste des types, puis les champs de chaque type. Le nom de la variable de champs est dérivé de la clé du type en majuscules.
La syntaxe complète est dans Types et champs.
Créer les tables
npx lrvo-modules sync # déclenché automatiquement au postinstall
npx lrvo-db init # crée les tables du modulelrvo-db init est sensible à la configuration pour ce module. Il ne crée les tables de taxonomies que si au moins un type déclare un champ taxonomy, et la table des relations que si au moins un type déclare un champ relation.
Conséquence directe : après avoir ajouté une taxonomie ou une relation à un type existant, il faut relancer npx lrvo-db init. La commande est idempotente, elle ne touche pas aux données en place.
Voir Modèle de données pour le détail des tables et des migrations.
Brancher le rendu public
Le start template officiel monte un seul catch-all qui interroge le registre de contenu public :
app/(public)/[...slug]/page.jsCe fichier itère les résolveurs de core/public-content. Le module y enregistre le sien au boot, à la priorité 10. Il n'y a donc rien à importer : l'installation suffit.
Le sous-chemin @lrvo/module-posts/public exporte bien une vue par défaut, PostPublicView({ postType, slug }), mais elle sert de repli de débogage pour un projet qui voudrait court-circuiter le registre. Le start template ne l'utilise pas : une URL de post porte toujours son type en premier segment, elle ne se prête donc pas à un fichier de route fixe. Voir API.
Fournir un template
Le module enregistre lui-même un template default par type, qui rend le titre puis les blocs bruts via BlockListRenderer. C'est suffisant pour vérifier l'installation, pas pour un site.
Pour reprendre la main sur la mise en page, écrire un template dans components/lrvo/templates/ et le déclarer sur le type. Voir Templates.
Vérifier
- La connexion à la base répond :
npx lrvo-db test - Une section
Blogueapparaît dans la barre latérale de l'admin, avec un itemPosts. - Créer un post depuis
/admin/posts/blogue/list, le laisser en visibilité publique, puis l'ouvrir à/blogue/<slug>. Voir Administration.
Les permissions du module sont enregistrées et attribuées au rôle admin pendant lrvo-db init. Un module ajouté après coup n'a donc besoin que d'un npx lrvo-db init pour que posts.view et posts.manage apparaissent dans /admin/roles.
Médias
Si un type déclare un champ image, thumbnail ou gallery sans que @lrvo/module-medias soit installé et activé, le module journalise un avertissement au boot listant les champs concernés. Le module démarre quand même, mais le sélecteur d'image reste indisponible dans l'éditeur.
npm i @lrvo/module-mediasPuis, dans .env :
LRVO_MODULE_MEDIAS=trueVoir Module Médias.
Mettre à jour
npx lrvo-updateLe module déclare la version minimale de @lrvo/core dont il a besoin. Un npm i @lrvo/module-posts@latest sur un projet dont le core est trop ancien produit un ERESOLVE au message peu parlant : lrvo-update résout au contraire le core et les modules ensemble, et laisse en place tout module qu'il ne peut pas monter.
Les notes de version sont livrées avec le package, dans node_modules/@lrvo/module-posts/CHANGELOG.md.
Notes
- Le module dépend de
@lrvo/coreenpeerDependency. Il n'embarque pas sa propre copie du core. - Désinstaller le module ne supprime pas les tables.
dropTablesest exporté depuis@lrvo/module-postspour le faire explicitement. - Retirer un type de
LRVO_MODULE_POSTS_TYPESfait disparaître sa section d'admin et son rendu public, mais laisse ses lignes en base. Les remettre en ligne ne demande que de redéclarer le type avec la même clé.