カレンダーアクション(calendar)は、カレンダーコンテンツを月ごとのカレンダーで表示したい場合に使用します。
カレンダーアクションを利用するためには、ページコンテンツタイプの設定項目 action に 'calendar' を指定します。 options 項目にアクションの設定を定義します。 月毎にデータをまとめる部分の処理はアーカイブ機能と共通化しているため、アーカイブアクションと同じように設定することができます。
オプション設定
項目 | 例 | 説明 |
---|---|---|
content | event | 対象のコンテンツタイプ名を指定します。 |
route | /information/archive/{year}.html | 2ページ目以降のパスを定義します。パスに {year} と {month} を定義して年や月を受け取れるようにします。※年アーカイブの場合は {month} は不要です。 |
month | 1 | 1ページに表示する月数を指定します。12 を指定すると、1ページに12ヶ月分のカレンダーを表示します。 |
offset_month | 0 | 表示月のオフセットを指定できます。4月開始の年度にしたい場合は 3 を指定します。 |
blank | 0 | 期間の途中にデータが無い場合でもページを表示したい場合は 1 を指定します。設定値が0の場合に、たとえば 1月と3月にデータがある場合は 2月のページは表示されません。1 を設定するとデータが無くても 2月のページが表示されます。 |
sort | asc | カレンダー一覧リンクの表示順を指定します。。昇順(古い順)にしたい場合は asc を指定します。降順(新しい順)にしたい場合は desc を指定します。 |
link_format | Y年m月 | カレンダー一覧のリンクテキストのフォーマットを指定します。「Y年m月」 や「Y年」を指定できます。 |
設定例:
'event_calendar' => [
'label' => 'イベントカレンダー',
'outline' => 'イベント・休業日情報をを月別で表示します。',
'dir' => '/event/',
'action' => 'calendar',
'options' => [
'content' => 'event',
'month' => 1,
'offset_month' => 0,
'blank' => 0,
'route' => '/event/{year}/{month}/',
'sort' => 'asc',
],
'fields' => [
'content' => [
'label' => 'コンテンツ',
'type' => 'content',
],
],
],
テンプレートにはカレンダーのリンクに関する情報が archive 変数で渡されます。 オプション設定配列が options 変数で渡されます。
ページテンプレートにはカレンダーデータは渡されませんが、monthly_calendar() 関数を呼び出すことで該当ページのカレンダーを出力することができます。
{% if options %}
{{ monthly_calendar(options.content, archive.getDateString(), options.month) }}
{% endif %}
カレンダーの各期間ページへのリンクはアーカイブ機能が利用されています。そのためアーカイブリンクリスト部品テンプレートを利用することができます。 アーカイブアクションの アーカイブリンクリスト部品テンプレートをご覧ください。