マニュアル目次 > フロントでの表示

ヘルパーでの埋め込み

テーマ・固定ページのテンプレートから、カレンダーや店舗/メニュー一覧を埋め込む方法

画面の概要

予約カレンダーの埋め込みや、店舗・カテゴリ・メニュー・リソースの取得を、サイト内の任意のテンプレート(トップページ・テーマ・固定ページなど)から行うための「ビューヘルパー」が用意されています。トップに予約カレンダーを載せる、店舗の一覧を出す、といったカスタマイズに使います。

※ このページはテンプレートを編集できる担当者(サイト制作者)向けの、やや技術的な内容です。通常の運用(予約対象やリソースの登録)には不要です。

呼び出し方

① どこからでも呼べる書き方(推奨)

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 => 名前] の形で返ります。

カレンダーの埋め込み:hatReserveCalendar()

トップページなど任意の場所に月カレンダーを埋め込めます。オプションはカレンダー表示ページのURLパラメータと同じで、加えて titleshow_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/...)へ遷移するよう作られています。

一覧の取得:stores / categories / menus / resources

hatReserveStores()(店舗)

オプション既定意味
listfalsetrue で [ID => 店舗名] を返す。
activetruefalse で非公開の店舗も含める。

hatReserveCategories()(カテゴリ)

オプション既定意味
store_id店舗で絞り込み。
listfalsetrue で [ID => カテゴリ名] を返す。
activetruefalse で非公開も含める。

hatReserveMenus()(メニュー=予約対象)

オプション既定意味
store_id店舗で絞り込み。
category_idカテゴリで絞り込み。
type予約タイプ(time_sloteventtimetabledate)。
listfalsetrue で [ID => メニュー名] を返す。
activetrue既定(true)は公開中かつ受付期間内のみ。false で非公開・受付期間外も含める。

hatReserveResources()(リソース)

店舗・種別で絞り込めるほか、available_at を指定するとその日時に予約可能なリソースだけを返します。

オプション既定意味
store_id店舗で絞り込み。
type種別(stafffacilityroomequipmentvehicleseat)。
available_at'Y-m-d H:i'。この日時で予約可能なリソースに限定。
duration60available_at と併用する所要時間(分)。
listfalsetrue で [ID => リソース名] を返す。
activetruefalse で停止中のリソースも含める。
// 店舗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 の「予約可能」= その日時から所要時間の間、リソースが稼働時間内で、かつ手動ブロック・既存予約と重複しないこと。

補足情報