イベントカレンダープラグイン(その16・アーカイブページの出力3)

イベントカレンダープラグインで、イベントのアーカイブページを出力する方法の最後として、アーカイブページ用のテンプレートモジュールの書き方を解説します。

1.URLのパラメータから期間を得る

まず、URLのパラメータ(monthやyearなど)から、出力するイベントの期間を得る処理を行います。

月別アーカイブページを出力する場合、アーカイブ用テンプレートモジュールに以下の部分を入れます。

<$mt:GetQueryParamsToVars$>
<mt:SetVarBlock name="from"><$mt:GetVar name="qp_month"$>01000000</mt:SetVarBlock>
<$mt:DateDiff ts="$from" offset="1n-1s" format="%Y%m%d%H%M%S" setvar="to"$>

また、年別アーカイブページを出力する場合は、以下の部分を入れます。

<$mt:GetQueryParamsToVars$>
<mt:SetVarBlock name="from"><$mt:GetVar name="qp_year"$>0101000000</mt:SetVarBlock>
<$mt:DateDiff ts="$from" offset="1y-1s" format="%Y%m%d%H%M%S" setvar="to"$>

2.アーカイブに属するイベントを出力する

次に、手順1.の部分より後に、アーカイブに属するイベントを出力する部分を入れます。

過去に終了したのイベントのアーカイブを出力する場合は、以下のような部分を入れます。

<mt:PastEventEntries start_date_from="$from" start_date_to="$to" firstn="9999"$>
  イベントの情報を出力するHTMLやテンプレートタグ
</mt:PastEventEntries>

また、今後開催予定のイベントのアーカイブを出力する場合は、上のMTPastEventEntriesタグをMTFutureEventEntriesタグに置き換えます。

3.前後のアーカイブページへのリンク

前月(年)や来月(年)のアーカイブページへのリンクを出力することもできます。

月別アーカイブページで、前月/来月へのアーカイブページへのリンクを出力するには、手順1.の部分の後に、以下のような部分を入れます。
「イベントアーカイブ用テンプレートモジュール名」の部分は、実際のテンプレートモジュールの名前に置き換えます。
1行目が前月へのリンクで、2行目が来月へのリンクにあたります。

<a href="<$MTRealtimeRebuildLink tmpl_name="イベントアーカイブ用テンプレートモジュール名" tmpl_type="custom"$>&month=<$mt:DateDiff ts="$from" offset="-1n" format="%Y%m"$>"><$mt:DateDiff ts="$from" offset="-1n" format="%Y年%m月"$></a></li>
<a href="<$MTRealtimeRebuildLink tmpl_name="イベントアーカイブ用テンプレートモジュール名" tmpl_type="custom"$>&month=<$mt:DateDiff ts="$from" offset="1n" format="%Y%m"$>"><$mt:DateDiff ts="$from" offset="1n" format="%Y年%m月"$></a>

また、年別アーカイブページで、前年/来年へのアーカイブページへのリンクを出力するには、手順1.の部分の後に、以下のような部分を入れます。

<a href="<$MTRealtimeRebuildLink tmpl_name="イベントアーカイブ用テンプレートモジュール名" tmpl_type="custom"$>&year=<$mt:DateDiff ts="$from" offset="-1y" format="%Y"$>"><$mt:DateDiff ts="$from" offset="-1y" format="%Y年"$></a>
<a href="<$MTRealtimeRebuildLink tmpl_name="イベントアーカイブ用テンプレートモジュール名" tmpl_type="custom"$>&year=<$mt:DateDiff ts="$from" offset="1y" format="%Y"$>"><$mt:DateDiff ts="$from" offset="1y" format="%Y年"$></a>