Páginas del CMS (CLI)
Crear y eliminar páginas del CMS desde la línea de comandos.
Cuando se instala el módulo cms, la CLI de Nibiru obtiene dos banderas adicionales para gestionar las páginas del CMS directamente. Este es el mismo almacén de contenido que alimenta el sitio web de comercio electrónico de producción prod.maschinen-stockert.de, donde los editores actualizan el contenido del sitio sin tocar código.
Crear una página
Sección titulada «Crear una página»./nibiru -new-cms-page about-usEso:
- Inserta una fila en la tabla
cms_pagescon el slugabout-us. - Asocia la página a una plantilla de CMS (la plantilla predeterminada, a menos que se configure otra).
- Crea filas de marcadores de posición por idioma en
cms_template_textspara que los editores puedan completar el contenido en cada idioma soportado.
Visita /cms/about-us (o tu prefijo de CMS configurado) y la nueva página está en vivo.
Eliminar una página
Sección titulada «Eliminar una página»./nibiru -delete-cms-page about-usElimina la fila de la página y sus entradas asociadas cms_template_texts. La plantilla del CMS en sí misma no se elimina — solo el enlace de la página a ella.
¿Por qué son estos comandos CLI y no solo SQL?
Sección titulada «¿Por qué son estos comandos CLI y no solo SQL?»Dos razones:
- Atomicidad — crear una página requiere inserciones en dos tablas (la página y sus filas de texto). La CLI envuelve esto en una transacción.
- Unicidad del slug — la CLI verifica colisiones antes de insertar y proporciona un error más amigable que una violación de restricción SQL.
Sin el módulo del CMS
Sección titulada «Sin el módulo del CMS»-new-cms-page y -delete-cms-page salen con un código de error no cero y un mensaje de error claro si el módulo cms no está instalado. Agrégalo con:
./nibiru -m cms./nibiru -mi local(Consulte Módulos para saber qué hace ./nibiru -m y los archivos de migración que incluye el módulo cms).
Edición de contenido después de la creación
Sección titulada «Edición de contenido después de la creación»La CLI no edita texto — eso está deliberadamente dejado para la interfaz web del módulo CMS. Desde el código de producción:
// 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'] ]);}El resultado: cada {$identifier} en la plantilla se autocompleta con el contenido del idioma actual. Los no desarrolladores gestionan el texto a través de la interfaz de administración; los desarrolladores gestionan el diseño a través de la plantilla.