単一のレコード(アイテム)を登録できるコンテンツです。カスタムフィールドを利用できます。
複数のページで公開されるバナー部品や、共通ヘッダーに表示する休館日情報などの部品で活用することができます。
モジュールコンテンツは公開日時フィールドを持っておらず、公開・非公開の設定はありません。 また、管理画面でモジュールコンテンツを登録していなくても、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部品として管理したい場合はモジュールコンテンツにする必要はありません。
カスタムフィールドを持たないモジュールコンテンツは、管理画面のモジュールページにはリストされません。