このページの説明はVer.1.19以降のカレンダー表示です。それ以前の場合、各バージョンの説明ページを参照して下さい。
受付時間が2つ以上ある予約は、予約カレンダーから日付を選択すると時間帯を選択するためのタイムテーブルが表示されます。
表示形式はショートコードのパラメータで 「dayform=”1″」を指定すると、セレクトボックスを利用したフォーム表示にすることができます。
タイムテーブルのメッセージフィルター
メッセージフィルターを利用して書き換えた例のフィルター名一覧です。
メッセージフィルターは次の通りです。
- mtssb_timetable_before
通常は何も表示しません。予約カレンダーと異なるメッセージを表示したい場合利用できます。- 引数
$str:デフォルト表示(空)
$param:配列(‘cid’ => calendar id, ‘aid’ => post id) - 戻り値
表示文字列
- 引数
- mtssb_timetable_name
予約品目の名前が表示されます。- 引数
$str:デフォルト表示(予約品目名)
$param:配列(‘cid’ => calendar id, ‘aid’ => post id) - 戻り値
表示文字列
- 引数
- mtssb_timetable_date
予約日付が表示されます。- 引数
$str:デフォルト表示(年月日曜日)
$param:配列(‘cid’ => calendar id, ‘aid’ => post id, ‘day’ => 予約日Unix time) - 戻り値
表示文字列
- 引数
- mtssb_daily_time_title
「時間」が表示されます。- 引数
$str:デフォルト表示(時間)
$param:配列(‘cid’ => calendar id, ‘aid’ => post id) - 戻り値
表示文字列
- 引数
- mtssb_daily_booking_title
「予約」が表示されます。- 引数
$str:デフォルト表示(予約)
$param:配列(‘cid’ => calendar id, ‘aid’ => post id) - 戻り値
表示文字列
- 引数
- mtssb_time_header
時間割時間が表示されます。- 引数
$str:デフォルト表示(00:00)
$param:配列(‘cid’ => calendar id, ‘aid’ => post id, ‘time’ => 秒数(0時=0秒)) - 戻り値
表示文字列
- 引数
- mtssb_daily_mark
予約状況が記号、または、残数で表示されます。- 引数
$str:デフォルト表示(記号または残数)
$param:配列(‘cid’ => calendar id, ‘aid’ => post id, ‘mark’ => 状況識別子, ‘remain’ => 残数) - 戻り値
表示文字列
- 引数
- mtssb_timetable_after
通常は何も表示しません。予約カレンダーと異なるメッセージを表示したい場合利用できます。- 引数
$str:デフォルト表示(空)
$param:配列(‘cid’ => calendar id, ‘aid’ => post id) - 戻り値
表示文字列
- 引数
以下は参考図で利用したメッセージフィルターのプログラム例です。
// メッセージをタイムテーブル上部に表示する add_filter('mtssb_timetable_before', 'timetableBefore', 10, 2); function timetableBefore($str, $param) { if ($param['cid'] == 'myCalendar') { return 'タイムテーブル上部 予約品目:post id=' . $param['aid']; } return $str; } // タイムテーブルのタイトル変更 add_filter('mtssb_timetable_name', 'timetableName', 10, 2); function timetableName($str, $param) { if ($param['cid'] == 'myCalendar') { if ($param['aid'] == 20) { return $str . ' (お勧めアトラクション No.1 !!)'; } } return $str; } // タイムテーブルの日付 add_filter('mtssb_timetable_date', 'timetableDate', 10, 2); function timetableDate($str, $param) { if ($param['cid'] == 'myCalendar') { return date('D, j F Y', $param['day']); } return $str; } // タイムテーブル時間タイトル add_filter('mtssb_daily_time_title', 'timetableTitle', 10, 2); function timetableTitle($str, $param) { if ($param['cid'] == 'myCalendar') { return '予約時間'; } return $str; } // タイムテーブル予約タイトル add_filter('mtssb_daily_booking_title', 'bookingTitle', 10, 2); function bookingTitle($str, $param) { if ($param['cid'] == 'myCalendar') { return '予約状況'; } return $str; } // タイムテーブル時間表示 add_filter('mtssb_time_header', 'timeHeader', 10, 2); function timeHeader($str, $param) { if ($param['cid'] == 'myCalendar') { $break = $param['time'] + 105 * 60; return sprintf('%s〜%s', date('H:i', $param['time']), date('H:i', $break)); } return $str; } // 予約残数 add_filter('mtssb_daily_mark', 'bookingMark', 10, 2); function bookingMark($str, $param) { if ($param['cid'] == 'myCalendar') { return '残:' . $param['remain']; } return $str; } // メッセージをタイムテーブル下部に表示する add_filter('mtssb_timetable_after', 'timetableAfter', 10, 2); function timetableAfter($str, $param) { if ($param['cid'] == 'myCalendar') { return 'タイムテーブル下部 予約品目:post id=' . $param['aid']; } return $str; }
時間割のセレクトボックス表示に関するメッセージフィルター
次の図はメッセージフィルターを利用してフォーム表示を書き換えた例の、フィルター名一覧です。
mtssb_tabletime_before,
mtssb_timetable_name,
mtssb_timetable_date,
mtssb_timetable_after
の4つは、先のフィルター名が同じメッセージフィルターと同じです。それ以外は次の通りです。
- mtssb_timetable_select_option
時間割の選択肢です。- 引数
$str:デフォルト表示(時間と予約状況)
$param:配列(‘cid’ => calendar id, ‘aid’ => post id, ‘time’ => 予約日時Unix time, ‘remain’ => 残数) - 戻り値
表示文字列
- 引数
- mtssb_daily_timetable_submit
送信ボタンの表示文字です。- 引数
$str:デフォルト表示(予約フォーム)
$param:配列(‘cid’ => calendar id, ‘aid’ => post id) - 戻り値
表示文字列
- 引数
次は参考図のプログラム例です。
// 予約フォーム表示 add_filter('mtssb_timetable_select_option', 'timeSelectOption', 10, 2); function timeSelectOption($str, $param) { if ($param['cid'] == 'myCalendar') { $break = $param['time'] + 105 * 60; return sprintf('%s〜%s 残:%d', date('H:i', $param['time']), date('H:i', $break), $param['remain']); } return $str; } // 予約フォーム送信ボタン add_filter('mtssb_daily_timetable_submit', 'timeSelectBtn', 10, 2); function timeSelectBtn($str, $param) { if ($param['cid'] == 'myCalendar') { return 'フォーム入力'; } return $str; }