Aller au contenu
Nibiru docsv0.9.2

Pages du CMS (CLI)

Créez et supprimez des pages CMS à partir de la ligne de commande.

Stable Reading time ~ 2 min Edit on GitHub

Lorsque le module cms est installé, l’interface de ligne de commande Nibiru gagne deux drapeaux supplémentaires pour gérer les pages du CMS directement. C’est le même magasin de contenu qui alimente le site e-commerce de production prod.maschinen-stockert.de, où les rédacteurs mettent à jour le contenu du site sans toucher au code.

Fenêtre de terminal
./nibiru -new-cms-page about-us

Ceci :

  1. Insère une ligne dans la table cms_pages avec le slug about-us.
  2. Lie la page à un modèle CMS (le modèle par défaut, sauf si un autre est configuré).
  3. Crée des lignes de placeholder par langue dans cms_template_texts afin que les éditeurs puissent remplir le contenu pour chaque langue prise en charge.

Visitez /cms/about-us (ou votre préfixe de CMS configuré) et la nouvelle page est en ligne.

Fenêtre de terminal
./nibiru -delete-cms-page about-us

Supprime la ligne de page et ses entrées associées cms_template_texts. Le modèle de CMS lui-même n’est pas supprimé — seul le lien de la page avec celui-ci est effacé.

Pourquoi ces commandes sont-elles des commandes CLI et non simplement du SQL

Section intitulée « Pourquoi ces commandes sont-elles des commandes CLI et non simplement du SQL »

Deux raisons :

  1. Atomicité — la création d’une page nécessite des insertions dans deux tables (la page et ses lignes de texte). L’interface en ligne de commande (CLI) encapsule cela dans une transaction.
  2. Unicité du slug — l’interface en ligne de commande (CLI) vérifie les collisions avant l’insertion et fournit une erreur plus conviviale qu’une violation de contrainte SQL.

-new-cms-page et -delete-cms-page quittent avec un code d’erreur non nul et un message d’erreur clair si le module cms n’est pas installé. Ajoutez-le avec :

Fenêtre de terminal
./nibiru -m cms
./nibiru -mi local

(Voir Modules pour ce que fait ./nibiru -m et les fichiers de migration que le module cms fournit.)

La CLI ne modifie pas le texte — c’est délibérément laissé à l’interface utilisateur web du module CMS. À partir du code de production :

// Read all text identifiers for a controller path + language
$texts = \Nibiru\Module\Cms\Cms::init('about-us')
->loadCmsTemplateTextsByControllerPath('about-us/page', $this->language);
foreach ($texts as $t) {
\Nibiru\View::assign([
$t['cms_template_texts_text_identifier']
=> $t['cms_template_texts_text_content']
]);
}

Le résultat : chaque {$identifier} dans le modèle est automatiquement rempli avec le contenu de la langue actuelle. Les non-développeurs gèrent le texte via l’interface d’administration ; les développeurs gèrent la disposition via le modèle.