ページコンテンツ

ページコンテンツは、URLが割り当てられ、カスタムフィールドを利用できるコンテンツです。

コレクション・モジュール・カレンダーなどのコンテンツ単体ではURLを持たないため、ページコンテンツやそのテンプレートから呼び出されることになります。 そのため、ページコンテンツはこのCMSの中でもっとも中心的なコンテンツになります。

カスタムフィールド・アクション・テンプレートなどの設定を組み合わせて独自のタイプを用意することで、ブログやお知らせのような記事ページや、アーカイブページやサイトトップページなどのさまざまなページに対応させることができます。

ページ編集画面(フォームパネル)
ページ編集画面(プレビューパネル)

標準フィールド

ページコンテンツは次の標準フィールドを持ちます。 標準フィールドの設定を変更したい場合は、標準フィールドのカスタマイズを参考にしてください。

フィールド名 ラベル
name 名前
date 日付
published_at 公開日時
display_order 表示順
category_id カテゴリ
filename ファイル名
template テンプレート

ページコンテンツ設定

ページコンテンツの設定ファイルは system/config/pages.php です。 この設定ファイルはPHPの配列で定義されます。配列のキーがコンテンツタイプ名になります。

設定ファイルのフォーマットと設定項目について説明します。
設定ファイルフォーマット:

<?php

return [
    'コンテンツタイプ名' => [
        // コンテンツタイプの設定項目
        'inputs' => [
            '標準フィールド名' => [
                // 標準フィールドの設定項目
            ],
            // ... 以降の標準フィールド設定
        ],
        'fields' => [
            'フィールド名' => [
                // フィールドタイプの設定項目
            ],
            // ... 以降のフィールドタイプ設定
        ],
    ],
    // ... 以降のコンテンツタイプ設定
];

コンテンツタイプの設定項目

項目 説明
label ページ 管理画面でコンテンツタイプの表示名として使われる。
outline 汎用ページ 管理画面でコンテンツタイプの説明文として使われる。
templates
[
    'お知らせ'=>'info.twig',
    'リリース'=>'release.twig',
],
テンプレートの選択肢を配列で列挙します。配列のキーは選択する際の表示名になります。配列の値はページテンプレートディレクトリ(public/themes/{テーマ名}/views/page/)内のファイル名を指定します。
inputs 標準フィールドのカスタマイズ を参考にしてください。
fields カスタムフィールドページを参考にしてください。
dir /products/ コンテンツを登録できるカテゴリを制限したい場合にカテゴリのディレクトリを指定します。
action pagination アクションを指定したい場合は pagination, archive, calendar, mapping のいずれかを指定します。
options アクションのオプション設定を指定します。
meta
[
    'pref' => 'pref.select',
],
メタ保存するフィールドを指定します。配列のキーには保存する際の名前を指定します。配列の値にはフィールド名とインプット名をドットつなぎで指定します。
search 1 1 を指定すると、検索用テーブル(page_seaches)に検索用データを保存します。

設定例:

    'page' => [ // コンテンツタイプ名
        'label' => 'ページ',
        'outline' => '汎用ページです',
        'templates' => [
            'ページ' => 'page.twig',
        ],
        'fields' => [
            'content' => [
                'label' => 'コンテンツ',
                'type' => 'content',
            ],
        ],
    ],

ページテンプレート

ページコンテンツを表示するためのページテンプレートは、public/themes/{テーマ名}/views/page/ ディレクトリに保存します。 ページコンテンツはページ全体に対応するため、HTML全体をレンダリングできるテンプレートを用意します。

ページコンテンツを表示する際に使用するテンプレートはコンテンツタイプ名から決定されます。 たとえば、"product_item" というコンテンツタイプの場合は、"product_item.twig" が使用されます。 ただし、コンテンツタイプ設定の templates 項目を設定した場合には、ページ編集画面で利用するテンプレートを選択できるようになります。

プレビューテンプレート

ページ編集画面のプレビューパネルでは、ページテンプレートを使ってレンダリングされます。 他のコンテンツタイプとは異なり、ページテンプレートがHTML全体出力できるため、プレビュー用テンプレートはありません。 ページテンプレートがプレビューテンプレートを兼ねることになります。