CMSの仕組みについて

このCMSでは、カスタムフィールド を組み合わせてコンテンツを作成します。

カスタムフィールドはテキストや画像など標準で用意されているものが数十種類あるので、それらを組み合わせてスピーディにコンテンツを作成できます。 さらに独自のカスタムフィールドを定義することができるので、複数の入力部品を持ったフィールドや独自の入力部品や出力部品を用意し、多彩なレイアウトのサイトを構築することができます。

カスタムフィールドの中にはコンテナフィールドという種類があります。コンテナフィールドは他のカスタムフィールドをブロック状に並べることができます。 並べられたフィールドは、コンテナフィールドの子フィールドのようなデータ構造になります。

ページコレクションモジュールカレンダーというコンテンツのベースタイプというものがあります。 このコンテンツのベースタイプを元に、利用するテンプレートやカスタムフィールドの組み合わせを定義して独自のコンテンツタイプを定義できます。 コンテンツタイプを定義すると、管理画面でコンテンツ(具体的なページやコレクションデータなど)を作成することができるようになります。

ページタイプの設定例(pages.phpの一部):

    'page' => [
        'label' => 'ページ',
        'outline' => '汎用ページです',
        'fields' => [
            'content' => [
                'label' => 'コンテンツ',
                'type' => 'content',
            ],
        ],
    ],

CMSの構成要素

カテゴリ
ページコンテンツを公開するディレクトリです。 実際のディレクトリの位置関係とは別に、カテゴリ間で親子関係を持つことができます。その親子関係はパンくずナビゲーションを自動生成する場合などに利用されます。
ページ
URLを持つコンテンツです。 所属したカテゴリと指定したファイル名により公開されるURLがきまります。 カスタムフィールドやアクション、テンプレートを定義したコンテンツタイプを用意することで、ブログのような記事やアーカイブページやサイトトップページなどのさまざまなページに対応します。
コレクション
複数のレコード(アイテム)を登録できるコンテンツです。 たとえば、お知らせ情報を登録して、その情報をページネーションで表示させるという活用方法があります。 商品や店舗情報をデータベースのように登録して、ざまざまなページで情報を引き出して表示する、という使い方もできます。
コレクション自体はURLを持たないため、ページネーションやアーカイブなどのアクションを設定したページコンテンツを利用して公開します。
モジュール
単一のレコード(アイテム)を登録できるコンテンツです。 使い方はさまざまですが、複数のページで公開されるバナー部品や、共通ヘッダーに表示する休館日情報といった部品を管理することができます。 複数のレコードを持たないので、テンプレートのどこからでもタイプ名だけで呼び出すことができます。
カレンダー
日付で管理できるコンテンツです。 営業日カレンダーやイベントカレンダーの表示や、月毎の献立表を表示するようなケースで活用できます。
カスタムフィールド
入力部品を任意で組み合わせて利用できるカスタムフィールドという仕組みがあります。 カスタムフィールドは設定(fields.php)と入出力テンプレートで構成されます。 テキストや画像などのフィールドは最初から用意されていますが、それらに加えてオリジナルのフィールドを作ることができます。 カスタムフィールドはコンテンツ(ページ・コレクション・モジュール・カレンダー)で共通で利用できます。
コンテナフィールド
カスタムフィールドをブロックのように好きな順序で任意の数だけ並べられるコンテナフィールドというものがあります。 コンテナフィールドもカスタムフィールドの一種なので、独自のコンテナフィールドを定義することもできます。
テーブルコンテンツ
表形式のテキストを管理することができます。 表の形式の違いにより、リスト・ハッシュ・マトリックスというベースタイプがあります。
リストは値のみを持つテーブルです。1列の表になります。PHPでは数値添字の配列に該当します。
ハッシュはキーと値を持つテーブルです。2列の表になります。PHPでは連想配列に該当します。テンプレート全体で利用できるサイトグローバル変数もハッシュテーブルで管理されています。
マトリックスは、任意の列を持つテーブルです。任意数の列を持つ表になります。PHPでは連想配列を持つ配列が該当します。
ファイルコンテンツ
ファイル単位で管理するコンテンツです。
アクション
アクションはページコンテンツの振る舞いを決めるものです。アクションはコンテンツタイプの設定で選択することができます。 標準のアクションは、リクエストされたURLに対応するコンテンツの内容を返します。 アーカイブカレンダーアクションページネーションマッピング検索というアクションがあります。
クエリ
コンテンツ(ページ・コレクション・モジュール・カレンダー)を登録するとデータベースにデータが保存されます。 クエリを使うと、設定ファイルに条件を設定することで、データベースに登録されたコンテンツを取り出すことができます。 特定のカテゴリや任意で定義したお知らせタイプ毎に一覧を作成するなど様々な用途で利用できます。
テーマ
テーマは画像やCSSなどのページを構成するリソースやテンプレートをひとつのディレクトリ配下にまとめたものです。
テンプレート
Twig というテンプレートエンジンを採用しています。 テンプレートはページ全体のHTMLを出力するレイアウトテンプレートや、1つのフィールドを出力するだけの小さなテンプレートもあります。