予約カレンダーの埋め込みや、店舗・カテゴリ・メニュー・リソースの取得を、サイト内の任意のテンプレート(トップページ・テーマ・固定ページなど)から行うための「ビューヘルパー」が用意されています。トップに予約カレンダーを載せる、店舗の一覧を出す、といったカスタマイズに使います。
※ このページはテンプレートを編集できる担当者(サイト制作者)向けの、やや技術的な内容です。通常の運用(予約対象やリソースの登録)には不要です。
BcBaser は全ページで読み込まれているため、プラグインを有効化するだけで、テーマや固定ページのテンプレートから直接呼び出せます。メソッド名は hatReserve で始まります。
echo $this->BcBaser->hatReserveCalendar(['target_id' => 1, 'ym' => '2026-08']);
$stores = $this->BcBaser->hatReserveStores();
テンプレートの先頭で読み込むと、接頭辞なしのメソッド名で呼べます。
$this->loadHelper('HatReserve.HatReserve');
$stores = $this->HatReserve->stores();
| 呼び出し(BcBaser経由 / 直接) | 戻り値 | 概要 |
|---|---|---|
hatReserveCalendar()/ calendar() | HTML文字列 | 月カレンダーを描画して返す。 |
hatReserveStores()/ stores() | 配列 | 登録店舗を返す。 |
hatReserveCategories()/ categories() | 配列 | カテゴリを返す。 |
hatReserveMenus()/ menus() | 配列 | メニュー(予約対象)を返す。 |
hatReserveResources()/ resources() | 配列 | リソースを返す(特定日時に予約可能なものへ限定も可)。 |
配列を返すメソッドは、既定でデータ本体(エンティティ)の配列を返します。'list' => true を渡すと、セレクトボックス用の [ID => 名前] の形で返ります。
トップページなど任意の場所に月カレンダーを埋め込めます。オプションはカレンダー表示ページのURLパラメータと同じで、加えて title・show_store_name を指定できます。
echo $this->BcBaser->hatReserveCalendar([
'target_id' => 1, // 店舗/カテゴリ/リソース/対象で絞り込み
'ym' => '2026-08', // 表示する年月(未指定は今月)
'show_target' => true, // 各日に対象名などを表示
'title' => 'ご予約', // 見出し(未指定なら出さない)
'show_store_name' => false, // 店舗名の表示(既定 true)
]);
| オプション | 意味 |
|---|---|
| store / store_id | 店舗(スラッグ/ID)で絞り込み。 |
| category_id / target_id / resource_id | カテゴリ・対象・リソースで絞り込み。 |
| show_store / show_category / show_target / show_resource | 各日に名称を表示する詳細フラグ。 |
| ym | 表示年月(Y-m。未指定は今月)。 |
| title | カレンダー上部の見出し。未指定なら出しません。 |
| show_store_name | 店舗名を表示するか(既定 true)。 |
/reserve/...)へ遷移するよう作られています。| オプション | 既定 | 意味 |
|---|---|---|
| list | false | true で [ID => 店舗名] を返す。 |
| active | true | false で非公開の店舗も含める。 |
| オプション | 既定 | 意味 |
|---|---|---|
| store_id | — | 店舗で絞り込み。 |
| list | false | true で [ID => カテゴリ名] を返す。 |
| active | true | false で非公開も含める。 |
| オプション | 既定 | 意味 |
|---|---|---|
| store_id | — | 店舗で絞り込み。 |
| category_id | — | カテゴリで絞り込み。 |
| type | — | 予約タイプ(time_slot/event/timetable/date)。 |
| list | false | true で [ID => メニュー名] を返す。 |
| active | true | 既定(true)は公開中かつ受付期間内のみ。false で非公開・受付期間外も含める。 |
店舗・種別で絞り込めるほか、available_at を指定するとその日時に予約可能なリソースだけを返します。
| オプション | 既定 | 意味 |
|---|---|---|
| store_id | — | 店舗で絞り込み。 |
| type | — | 種別(staff/facility/room/equipment/vehicle/seat)。 |
| available_at | — | 'Y-m-d H:i'。この日時で予約可能なリソースに限定。 |
| duration | 60 | available_at と併用する所要時間(分)。 |
| list | false | true で [ID => リソース名] を返す。 |
| active | true | false で停止中のリソースも含める。 |
// 店舗1のスタッフ全員
$staff = $this->BcBaser->hatReserveResources(['store_id' => 1, 'type' => 'staff']);
// 2026-07-24 10:00 から60分、予約可能なスタッフだけ(ID=>名前)
$free = $this->BcBaser->hatReserveResources([
'store_id' => 1,
'type' => 'staff',
'available_at' => '2026-07-24 10:00',
'duration' => 60,
'list' => true,
]);
※ available_at の「予約可能」= その日時から所要時間の間、リソースが稼働時間内で、かつ手動ブロック・既存予約と重複しないこと。
$store->id/$store->name/$store->slug などにアクセスできます。'list' => true は、セレクトボックスの選択肢([ID => 名前])を作る用途を想定しています。docs/helper.md/docs/calendar.md)を参照してください。