wordpressの、予約フォームを生成するプラグインMTS Simple Booking Cについて。 デフォルトではその月のカレンダー全体が表示されるが、これをその日から2周間ぶんだけ表示する設定にする。
変更るのは主にmtssb-front.phpのmonthly_calendar($atts)。
まず曜日表示をその日の曜日から始まるようにする。 そして、月や年が変わったら、変わった初日だけ月も表示するようにした。これは_reservation_of_the_day()に3つめの引数を追加して、trueなら月も表示するようにして対応した。以下変更箇所のみ記述。
monthly_calendar
<?php $today = date('w'); ?> <table> <tr> <?php for ($i = 0; $i < 7; $i++) { $week = strtolower($this->weeks[($today+$i)%7]); echo "<th class=\"week-title $week\">" . $weeknames[($today+$i)%7] . "</th>"; } ?> </tr> <?php $month_display = true; for ($i = 0, $day = date(d) ; $i <14 ; $i++, $day++) { // 行終了 if ($i % 7 == 0) { echo (0 < $i ? "</tr>\n" : '') . "<tr>\n"; } if ($day <= $days) { $ymdtime = mktime(0, 0, 0, $themonth, $day, $theyear); $this->_reservation_of_the_day($ymdtime, $params,$i==0); } else if($themonth < 12){ $ymdtime = mktime(0, 0, 0, $themonth + 1, $day - $days, $theyear); $this->_reservation_of_the_day($ymdtime, $params,$month_display); $month_display =false; } else { $ymdtime = mktime(0, 0, 0, $themonth -11, $day - $days, $theyear +1 ); $this->_reservation_of_the_day($ymdtime, $params,$month_display); $month_display =false; } } ?> </table>
_reservation_of_the_day
$idxmonth = date('n', $thetime); if ($month_display){ echo "<div class=\"day-number\" align=\"center\">".esc_html(strval($idxmonth)."/".apply_filters('mtssb_day', intval($idxday))) . '</div>'; }else{ echo "<div class=\"day-number\">" . esc_html(apply_filters('mtssb_day', intval($idxday))) . '</div>'; }