カレンダー表示のコード

このデモサイトで使用しているカレンダー表示部分のコードを紹介します。
手法のひとつとして、参考にしてください。

※このデモサイトではレストラン=カテゴリで管理しているのでカテゴリアーカイブに表示していますが、お使いの環境や仕様にあわせて適宜変更してください。
※A-FormのID、カテゴリ名、パス等その他をベタ書き指定しているので、適宜変更してください。
※その他詳しくはA-Reserveドキュメントを参考にしてください。

カテゴリアーカイブ

<mt:Ignore>===================カレンダー========================</mt:Ignore>
<mt:setvar name="aform_id" value="40"><mt:ignore>A-FormのIDをセット</mt:ignore>
<MTDate format="%Y" setvar="year">
<MTDate format="%m" setvar="month">
<MTCategoryLabel setvar="plan_name"><mt:ignore>カテゴリ名とプラン名をあわせること</mt:ignore>
<mt:AFormReserveThreshold aform_id="$aform_id" plan="$plan_name" setvar="shikiichi">

<header>
<h1 class="section-title"><i class="fa fa-leaf"></i>&nbsp;<MTVar name="plan_name"></h1>
<MTCategoryDescription filters="__default__">
</header>
<hr>
<p>下のカレンダーからご予約日をお選びください。ご予約は前日まで受付いたします。<br>
○...空席あり、△...お電話で問い合せ下さい、×...満席または受付終了</p>

<mt:if tag="categorylabel" eq="洋食グリル「アーク」">
<MTSetVar name="option_name" value="ランチ">
<$mt:Include module="A-Reserveカレンダー"$>
<MTSetVar name="option_name" value="ディナー">
<$mt:Include module="A-Reserveカレンダー"$>

<mt:else>
<MTSetVar name="option_name" value="ご夕食">
<$mt:Include module="A-Reserveカレンダー"$>

</mt:if>

<mt:Ignore>===================/カレンダー========================</mt:Ignore>

テンプレートモジュール:A-Reserveカレンダー
(カテゴリアーカイブからインクルード)

<mt:date format="%Y" setvar="cur_y">
<mt:date format="%m" setvar="cur_m">
<mt:date format="%Y%m%d" setvar="cur_ymd">

<section>
<h2><MTVar name="option_name"></h2>
<MTFor var="i" from="1" to="3">

<MTSetVarBlock name="cal_month"><mt:var name="cur_y"><mt:var name="cur_m" zero_pad="2"></MTSetVarBlock>
<MTSetVarBlock name="cal_name" ><mt:var name="cur_y">年<mt:var name="cur_m" zero_pad="2">月</MTSetVarBlock>
<div class="widget-calendar widget">
<h3 class="widget-header"><$mt:var name="cal_name"$></h3>
<div class="widget-content">
<table class="table table-bordered">
<thead>
<tr>
<th abbr="日曜日">日</th>
<th abbr="月曜日">月</th>
<th abbr="火曜日">火</th>
<th abbr="水曜日">水</th>
<th abbr="木曜日">木</th>
<th abbr="金曜日">金</th>
<th abbr="土曜日">土</th>
</tr>
</thead>
<tbody>
<mt:Calendar month="$cal_month">
<mt:CalendarWeekHeader>
<tr>
</mt:CalendarWeekHeader>
<td>
<mt:ignore>↓mt:CalendarIfEntriesタグがないと、mt:CalendarDateやmt:CalendarDayが使えない模様</mt:ignore>
<mt:CalendarIfEntries>
<mt:setvarblock name="calendar_date"><$mt:CalendarDate format="%Y-%m-%d"$></mt:setvarblock>
<mt:setvarblock name="calendar_date_num"><$mt:CalendarDate format="%Y%m%d"$></mt:setvarblock>
<$mt:CalendarDay$>
</mt:CalendarIfEntries>
<mt:CalendarIfNoEntries>
<mt:setvarblock name="calendar_date"><$mt:CalendarDate format="%Y-%m-%d"$></mt:setvarblock>
<mt:setvarblock name="calendar_date_num"><$mt:CalendarDate format="%Y%m%d"$></mt:setvarblock>
<mt:if name="calendar_date_num" eq="$cur_ymd"><b><$mt:CalendarDay$></b><mt:else><$mt:CalendarDay$></mt:if>
<br>
<mt:if name="calendar_date_num" le="$cur_ymd">
<span>-</span>
<mt:else>

<mt:AformReserveIfEmpty aform_id="$aform_id" plan="$plan_name" option="$option_name" date="$calendar_date">
<span>-</span>
<mt:else>
<mt:setvarblock name="arq"><mt:AFormReserveQuantity aform_id="$aform_id" plan="$plan_name" option="$option_name" date="$calendar_date"></mt:setvarblock>

<mt:If name="arq" le="$shikiichi">
<mt:if name="arq" eq=""><span>-</span><mt:else><span>△</span></mt:if>
<mt:else>
<a href="book/?plan=<$mt:var name="plan_name"$>&option_value=<$mt:var name="option_name"$>&date=<$mt:var name='calendar_date'$>">○</a>
</mt:If>
</mt:AformReserveIfEmpty>
</mt:if>
</mt:CalendarIfNoEntries>
<mt:CalendarIfBlank>&nbsp;</mt:CalendarIfBlank>
</td>
<mt:CalendarWeekFooter>
</tr>
</mt:CalendarWeekFooter>
</mt:Calendar>
</tbody>
</table>
</div>
</div>
<mt:var name="cur_m" op="+" value="1" setvar="cur_m">
<mt:if name="cur_m" eq="13"><mt:var name="cur_y" op="+" value="1" setvar="cur_y"><mt:setvar name="cur_m" value="01"></mt:if>
</MTFor>
</section>