モジュールコンテンツ

単一のレコード(アイテム)を登録できるコンテンツです。カスタムフィールドを利用できます。

複数のページで公開されるバナー部品や、共通ヘッダーに表示する休館日情報などの部品で活用することができます。

モジュールコンテンツは公開日時フィールドを持っておらず、公開・非公開の設定はありません。 また、管理画面でモジュールコンテンツを登録していなくても、HTMLの共通部品として呼び出して利用することもできます。

標準フィールド

モジュールコンテンツには標準フィールドはありません。

モジュールコンテンツ設定

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

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

<?php

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

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

項目 説明
label 営業日カレンダー 管理画面でコンテンツタイプの表示名として使われる。
outline 今月と来月の営業日カレンダーを表示します。 管理画面でコンテンツタイプの説明文として使われる。
fields カスタムフィールド設定。カスタムフィールドページを参考にしてください。

設定例:

    'business_day_calendar' => [
        'label' => '営業日カレンダー',
        'outline' => '今月と来月の営業日カレンダーを表示します',
        'fields' => [
            'content' => [
                'type' => 'content',
            ],
        ],
    ],

モジュールテンプレート

モジュールコンテンツを表示するための部分的なテンプレートを持つことができます。 コンテンツタイプ名が store_list の場合は、public/themes/{テーマ名}/views/module/store_list.twig がモジュールテンプレートになります。 このテンプレートの中では、{{ field('content') }} のように記述することで、モジュールコンテンツのフィールドを出力することができます。

モジュールテンプレートを使ってレンダリングするためには、ページコンテンツのテンプレートなどで module() 関数を使います。

{{ module('store_list') }}

この場合、引数の 'store_list' はモジュールのコンテンツタイプ名です。

プレビューテンプレート

モジュール編集画面のプレビューパネルは、フィールドの内容を順番に出力するデフォルトのプレビューテンプレートでレンダリングされます。 専用のプレビューテンプレートを用意することもできます。 コンテンツタイプ名が store_list の場合は、public/themes/{テーマ名}/views/module/preview/store_list.twig がプレビューテンプレートになります。 プレビューテンプレートは、HTML全体をレンダリングできるテンプレートを用意します。

カスタムフィールドを持たないモジュール

モジュールコンテンツは、カスタムフィールドを一切持たずに単純なHTMLの部品として使うこともできます。 単純なHTML部品をモジュールコンテンツとして用意するメリットは、モジュールを表示するためのフィールドを使ってページコンテンツなどで呼び出して表示できることです。 そういった目的がなく、テーマテンプレートの中でHTML部品として管理したい場合はモジュールコンテンツにする必要はありません。

カスタムフィールドを持たないモジュールコンテンツは、管理画面のモジュールページにはリストされません。