イベントカレンダープラグイン(その8・イベントのアーカイブリストの静的出力)

イベントカレンダープラグインでは、イベントを月毎などで集計して、その件数等を出力することもできます。

1.アーカイブリストを出力するテンプレートタグ

アーカイブリストを出力するテンプレートタグとして、以下の3つがあります(いずれもブロックタグ)。

テンプレートタグ内容
MTPastEventArchiveList終了したイベントを年/月/日単位で集計して件数等を出力
MTFutureEventArchiveList今後開催予定のイベントを年/月/日単位で集計して件数等を出力
MTCurrentOrFutureEventArchiveList現在開催中または今後開催予定のイベントを年/月/日単位で集計して件数等を出力

ブロックの中では、MTArchive系のテンプレートタグを使って、アーカイブの情報を出力することができます。
ただし、MTArchiveLinkタグは使用できません(現状では、静的なイベントアーカイブページを出力する機能がありません)。

archive_typeモディファイアで、集計する際の単位を指定します。
archive_typeモディファイアに指定できる値は以下の通りです。

集計の単位
Event-Startdate-Dailyイベント開始日の日別
Event-Startdate-Monthlyイベント開始日の月別
Event-Startdate-Yearlyイベント開始日の年別
Event-Period-Dailyイベント期間の日別
Event-Period-Monthlyイベント期間の月別
Event-Period-Yearlyイベント期間の年別

Event-StartdateーXXXとEvent-Period-XXXの違いは、複数の月等にまたがるイベントのカウントの方法です。
Event-StartdateーXXXでは、イベントの開始日が属する月などでのみカウントします。
一方、Event-Period-XXXでは、イベントの期間が属するすべての月などでカウントします。

例えば、開始日が2014年4月で、終了日が2014年6月のイベントがあるとします。
この状態で、Event-Startdate-Monthlyで月別アーカイブリストを出力すると、そのイベントは2014年4月でのみカウントされます。
一方、Event-Period-Monthlyで月別アーカイブリストを出力すると、そのイベントは2014年4月/5月/6月のそれぞれでカウントされます。

なお、Event-Period-XXXモディファイアは、動作がかなり重いので、使うことはあまりお勧めしません。

2.指定できるモディファイア

上記の3つのテンプレートタグでは、以下のモディファイアを指定することもできます。

モディファイア動作
lastn="○"開始日時が新しいイベントのアーカイブから順に○件出力します。
firstn="○"開始日時が古いイベントのアーカイブから順に○件出力します。
sort_order="ascend"アーカイブリストを日時の古い順に出力します。

3.アーカイブ系テンプレートタグの入れ子

アーカイブ系テンプレートタグを入れ子にすることもできます。
例えば、以下のようにテンプレートを組むと、まず年単位で過去のイベントを集計して、各年のイベントの数を出力します。
そして、それぞれの年で月単位でも過去のイベントを集計して、各月のイベントの数を出力します。

<mt:FutureEventArchiveList archive_type="Event-Startdate-Yearly">
  <mt:ArchiveListHeader><ul></mt:ArchiveListHeader>
  <li><$mt:ArchiveDate$>:<$mt:ArchiveCount$>件
  <mt:FutureEventArchiveList archive_type="Event-Startdate-Monthly">
    <mt:ArchiveListHeader><ul></mt:ArchiveListHeader>
    <li><$mt:ArchiveDate$>:<$mt:ArchiveCount$>件</li>
    <mt:ArchiveListFooter></ul></mt:ArchiveListFooter>
  </mt:FutureEventArchiveList>
  </li>
  <mt:ArchiveListFooter></ul></mt:ArchiveListFooter>
</mt:FutureEventArchiveList>

4.アーカイブ系テンプレートタグとMTEntriesタグの入れ子

アーカイブ系のテンプレートタグのブロックの中に、MTEntriesタグのブロックを入れて、アーカイブごとのイベントの一覧を出力することもできます。
例えば、以下のようにテンプレートを組むと、過去のイベントの一覧を月毎にまとめて出力することができます。

<mt:PastEventArchiveList archive_type="Event-Startdate-Monthly">
  <mt:ArchiveListHeader><ul></mt:ArchiveListHeader>
  <li><$mt:ArchiveDate$>
  <mt:Entries>
    <mt:EntriesHeader><ul></mt:EntriesHeader>
    <li><$mt:EntryEventStartDate$>~<$mt:EntryEventEndDate$> <$mt:EntryTitle$></li>
    <mt:EntriesFooter></ul></mt:EntriesFooter>
  </mt:Entries>
  </li>
  <mt:ArchiveListFooter></ul></mt:ArchiveListFooter>
</mt:PastEventArchiveList>