CMS-Seiten (CLI)
Erstellen und Löschen von CMS-Seiten über die Befehlszeile.
Wenn das cms-Modul installiert ist, erhält die Nibiru CLI zwei zusätzliche Flags für die direkte Verwaltung von CMS-Seiten. Dies ist der gleiche Inhaltsspeicher, der den Produktions-E-Commerce-Site prod.maschinen-stockert.de betreibt, wo Redakteure Site-Copy aktualisieren können, ohne Code zu berühren.
Seite erstellen
Abschnitt betitelt „Seite erstellen“./nibiru -new-cms-page about-usDies:
- Fügt eine Zeile in die Tabelle
cms_pagesmit dem Slugabout-usein. - Bindet die Seite an eine CMS-Vorlage (die Standardvorlage, es sei denn, eine andere ist konfiguriert).
- Erstellt pro Sprache Platzhalterzeilen in der Tabelle
cms_template_texts, sodass Redakteure Texte in jeder unterstützten Sprache eingeben können.
Besuchen Sie /cms/about-us (oder Ihren konfigurierten CMS-Prefix) und die neue Seite ist aktiv.
Seite löschen
Abschnitt betitelt „Seite löschen“./nibiru -delete-cms-page about-usEntfernt die Seitenzeile und ihre zugehörigen cms_template_texts Einträge. Die eigentliche CMS-Vorlage wird nicht gelöscht – nur die Verknüpfung der Seite mit ihr.
Warum diese Befehle CLI-Befehle und nicht einfach SQL sind
Abschnitt betitelt „Warum diese Befehle CLI-Befehle und nicht einfach SQL sind“Zwei Gründe:
- Atomarität — die Erstellung einer Seite erfordert Einfügungen in zwei Tabellen (die Seite und ihre Textzeilen). Die CLI verpackt dies in eine Transaktion.
- Eindeutigkeit des Slugs — die CLI überprüft vor der Einfügung auf Kollisionen und gibt einen freundlicheren Fehler als eine Verletzung einer SQL-Einschränkung.
Ohne das CMS-Modul
Abschnitt betitelt „Ohne das CMS-Modul“-new-cms-page und -delete-cms-page beenden mit einem nicht-nulligen Exit-Code und einer klaren Fehlermeldung, wenn das Modul cms nicht installiert ist. Fügen Sie es mit folgendem Befehl hinzu:
./nibiru -m cms./nibiru -mi local(Siehe Module für die Funktionalität von ./nibiru -m und die Migrationsdateien, die das cms-Modul mitbringt.)
Inhalte nach der Erstellung bearbeiten
Abschnitt betitelt „Inhalte nach der Erstellung bearbeiten“Die Befehlszeilenschnittstelle (CLI) bearbeitet keinen Text – dies ist absichtlich der Web-Benutzeroberfläche des CMS-Moduls überlassen worden. Aus dem Produktionscode:
// 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'] ]);}Das Ergebnis: Jede {$identifier} im Template wird automatisch mit dem Inhalt der aktuellen Sprache aufgefüllt. Nicht-Entwickler verwalten den Text über die Admin-Oberfläche; Entwickler verwalten das Layout über das Template.