CMSページ(CLI)
コマンドラインからCMSページを作成および削除します。
cms モジュールがインストールされると、Nibiru CLI に2つの追加フラグが得られ、CMSページを直接管理するためのものです。これは、コードを触れずにエディターがサイトコピーを更新する生産用ECサイト prod.maschinen-stockert.de を動かしている同じコンテンツストアです。
ページを作成する
Section titled “ページを作成する”./nibiru -new-cms-page about-usこの文を翻訳します。
cms_pagesテーブルにスラッグがabout-usの行を挿入します。- ページを CMS テンプレート(設定されていない場合はデフォルトテンプレート)にバインドします。
- エディターがサポートされているすべての言語でコピーを記入できるように、
cms_template_textsに言語ごとのプレースホルダーラインを作成します。
/cms/about-us(または設定したCMSプレフィックス)にアクセスすると、新しいページが公開されています。
ページを削除する
Section titled “ページを削除する”./nibiru -delete-cms-page about-usページ行と関連する cms_template_texts エントリを削除します。CMS テンプレート自体は削除されません——ページがテンプレートにバインドされている部分のみ削除されます。
なぜこれらのコマンドがSQLではなくCLIであるのか
Section titled “なぜこれらのコマンドがSQLではなくCLIであるのか”二つの理由:
- アトミック性 — ページを作成するには、2つのテーブル(ページとそのテキスト行)への挿入が必要です。CLIはこれをトランザクションでラップします。
- スラッグの一意性 — CLIは挿入前に衝突をチェックし、SQL制約違反よりもフレンドリーなエラーを表示します。
CMSモジュールなし
Section titled “CMSモジュールなし”-new-cms-page and -delete-cms-page exit non-zero with a clear error message if the cms module isn’t installed. Add it with:
./nibiru -m cms./nibiru -mi local(モジュール を参照して、./nibiru -m が何を行うかと、cms モジュールが提供するマイグレーションファイルについて確認してください。)
作成後コンテンツの編集
Section titled “作成後コンテンツの編集”The CLI doesn’t edit text — that’s deliberately left to the CMS module’s web UI. From production code:
// 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'] ]);}結果:テンプレート内のすべての {$identifier} は現在の言語のコンテンツで自動的に埋められます。非開発者は管理UIを介してテキストを管理し、開発者はテンプレートを介してレイアウトを管理します。