Configuration

Variables d'environnement, permissions et intégration à l'admin du module @lrvo/module-posts.

Le module inverse la répartition habituelle : la structure du contenu vit dans les variables d'environnement, le contenu vit en base. Cette page couvre les variables globales, les permissions et l'admin. La syntaxe de déclaration des types est traitée à part, dans Types et champs.

Variables d'environnement

VariableRequiseEffet
LRVO_MODULE_POSTSouitrue active le module. Absente ou fausse, le module est ignoré : aucune table, aucune route, aucune entrée d'admin.
LRVO_MODULE_POSTS_TYPESnonListe des types de contenu. Absente, le module est actif mais ne déclare rien.
LRVO_MODULE_POSTS_TYPE_<CLÉ>nonChamps d'un type. Voir Types et champs.
LRVO_MODULE_POSTS_TYPE_<CLÉ>_PRIVATEnonChamps retirés des réponses publiques.
LRVO_MODULE_POSTS_TYPE_<CLÉ>_LISTnonColonnes du tableau d'admin.
LRVO_MODULE_POSTS_TYPE_<CLÉ>_ORDERABLEnontrue active le réordonnancement manuel.
LRVO_SEOnonActive la zone SEO de l'éditeur et la génération des balises <head> au rendu public. Drapeau global partagé par tous les modules de contenu.

LRVO_MODULE_POSTS est déclarée required: true dans le manifeste du module. Son absence produit un avertissement au boot sans faire tomber le serveur.

LRVO_SEO appartient au core, pas au module. Sa documentation de référence est dans Variables d'environnement.

Mise en cache de la configuration

La configuration est analysée une seule fois puis gardée en mémoire pour la durée du processus. Modifier une variable en développement demande donc de redémarrer le serveur, pas seulement de recharger la page.

Effet de LRVO_SEO

Quand le drapeau est actif :

  • L'éditeur de post affiche la zone SEO sous la zone de contenu, via le composant SeoFields du core.
  • Les valeurs sont stockées sous la clé seo des données du post.
  • Le rendu public transforme cet objet en métadonnées Next.js avec buildSeoMetadata, en ogType: 'article'.
  • Le jeton seo devient utilisable comme colonne dans _LIST, affichant une pastille de score.
  • Les champs laissés vides retombent sur le contenu du post : la méta description est dérivée d'un champ text ou editor, l'image de partage d'un champ thumbnail ou image. Voir Repli SEO automatique.

Drapeau inactif, la page publique n'expose que son titre comme métadonnée, et aucun repli n'est calculé.

Voir SEO et métadonnées pour le détail du calcul.

Permissions

CléNomPortée
posts.viewVoir les postsAccès en lecture aux posts et taxonomies dans l'admin, et tuile du tableau de bord.
posts.manageGérer les postsCréation, modification et suppression de posts et de termes de taxonomie.

Les deux sont groupées sous Posts dans /admin/roles. Elles sont attribuées au rôle admin au moment du lrvo-db init, et distribuables ensuite à d'autres rôles.

Les permissions ne sont pas découpées par type. Un rôle qui détient posts.manage peut gérer tous les types déclarés. Réserver un type à un rôle particulier n'est pas possible avec ce module.

La vérification est appliquée par le routeur du core, avant d'atteindre le handler. Voir Permissions et rôles.

Entrées d'admin

Le module enregistre une section de navigation par type déclaré, et non une section unique. Chaque section contient un item Posts menant à la liste, puis un item par taxonomie du type.

PropriétéValeur
Titre de sectionLibellé du type, ou clé capitalisée si aucun libellé n'est donné.
IcôneTroisième segment de la déclaration du type, Book02Icon par défaut.
Ordre300 pour le premier type, puis 301, 302, dans l'ordre de déclaration.
Chemin de la liste/admin/posts/<clé>/list
Chemin d'une taxonomie/admin/posts/<clé>/taxonomies/<clé de taxonomie>
Permissionposts.view sur tous les items.

Les écrans desservis par ces entrées sont décrits dans Administration.

L'ordre des sections suit donc l'ordre de LRVO_MODULE_POSTS_TYPES, et les types occupent une plage continue à partir de 300. Un autre module ne peut pas s'intercaler entre deux types : il se place avant en prenant un ordre inférieur à 300, ou après en prenant un ordre supérieur à la plage occupée. Voir Étendre l'admin.

Notes

  • Aucune variable du module ne contient de secret. Toutes sont lisibles côté serveur uniquement, comme le reste des LRVO_*.
  • Un module désactivé n'enregistre rien du tout : lrvo-modules sync ne le liste pas dans le manifeste généré, et son register n'est jamais appelé. Un module activé sans type déclaré enregistre en revanche ses routes, qui répondent alors en erreur sur tout type.
  • Changer LRVO_MODULE_POSTS à false désactive le module mais laisse les tables et leurs données en place.

Sur cette page