Appearance
SC-002 機種インデックスショートコード
概要
- 各日別記事で取り上げた機種の一覧(日付・機種名・ホール別導入台数)をテーブル形式で表示する
- 機種名と日別記事へのリンクも提供する
- 全日別記事の機種名リスト取得・DailyLink からの記事 URL 取得・ホール別導入台数算出を行い、Twig によるテーブル HTML を生成する。属性なし。
- 表示するホールは、アイランド秋葉原/エスパス秋葉原/ビッグアップル秋葉原
外部インターフェース
ショートコードタグ
- タグ名:
[CustomCode_CreateKishuIndex] - 入力例:
[CustomCode_CreateKishuIndex]
属性一覧
| 属性 | 役割 | 必須 |
|---|---|---|
| - | - | - |
エラー・境界条件
| 条件 | ユーザー向け挙動 | メッセージ / ログ |
|---|---|---|
KishuIndexService で例外発生 | ErrorHandler::handle_error() の HTML | ErrorHandler の実装による |
DailyLink なし($daily_link_dto_list 空) | 機種日付側をベースに表示 | - |
機種名が空文字(entity->get_kishu() が '') | counts_map に計上しない(スキップ) | - |
| 機種に対応する DailyData が存在しない | counts が 0 表示 | - |
今後の更新で崩してはいけないところ(互換性契約)
公開契約(Breaking change 扱い)
- ショートコード名
CustomCode_CreateKishuIndexを変更しない- 理由: 過去の投稿本文にショートコード文字列が直書きされているため
内部実装(本ショートコードのコード・Twig・設計書の範囲)
- Twig 変数名(
dates/hall_columns、およびtitles配下の構造)、countsのキー文字列は、実装の都度HallEnum(HallEnum::get_kishu_index_display_halls()のvalue)とテンプレートを整合させる。Twig 内で enum は参照できないため、列定義はHallEnum::get_kishu_index_table_columns()から渡し、キー名の単体テストでHallEnum変更を検知する。 - 表示対象ホールは現状 3 ホール固定(
ISLAND/ESPASU/BIGAPPLE)。ホール追加・変更時はHallEnum、サービス、Twig、テストを合わせて更新する。