Skip to content

SC-002 機種インデックスショートコード

概要

  • 各日別記事で取り上げた機種の一覧(日付・機種名・ホール別導入台数)をテーブル形式で表示する
  • 機種名と日別記事へのリンクも提供する
  • 全日別記事の機種名リスト取得・DailyLink からの記事 URL 取得・ホール別導入台数算出を行い、Twig によるテーブル HTML を生成する。属性なし。
  • 表示するホールは、アイランド秋葉原/エスパス秋葉原/ビッグアップル秋葉原

ワイヤーフレーム

ブロック一覧

ブロックIDブロック名表示内容初期値ユーザー操作アクション
B-0一覧コンテナ見出し+導入台数テーブルの論理コンテナ(本番マークアップにラッパーなし)常時表示なし-
B-1見出しh2「導入台数一覧」常時表示なし-
B-2導入台数テーブル列: 日付 / 機種名 / 3 ホール(icon ヘッダー)。行は日付×機種の組み合わせ常時表示なし(リンク遷移のみ)-

表示条件・注記

  • 属性: なし(ショートコード単体で全件表示)。
  • ホール列: HallEnum::get_kishu_index_display_halls() の 3 ホール(island / espasu / bigapple)。ヘッダーは icon 表示(ホール名は aria-label)、台数セルは title にホール名を付与。
  • 日付セル: 各行に日付を表示。article_link があれば日別記事へのリンク、なければプレーンテキスト(本番 Twig と同じ)。
  • 機種名セル: url があれば機種ページリンク、なければテキスト。
  • 台数: DailyData が無い機種・ホールは 0
  • 空機種名: 本番は counts に計上しない(スキップ)。ワイヤーフレームのサンプルには含めない。
  • ワイヤーフレームの見た目: .ki-wireframe__container の白カードは docs 用。本番は h2 + table のみ(ラッパークラスなし)。

外部インターフェース

ショートコードタグ

  • タグ名: [CustomCode_CreateKishuIndex]
  • 入力例: [CustomCode_CreateKishuIndex]

属性一覧

属性役割必須
---

エラー・境界条件

条件ユーザー向け挙動メッセージ / ログ
KishuIndexService で例外発生ErrorHandler::handle_error() の HTMLErrorHandler の実装による
DailyLink なし($daily_link_dto_list 空)機種日付側をベースに表示-
機種名が空文字(entity->get_kishu()''counts_map に計上しない(スキップ)-
機種に対応する DailyData が存在しないcounts が 0 表示-

今後の更新で崩してはいけないところ(互換性契約)

公開契約(Breaking change 扱い)

  • ショートコード名 CustomCode_CreateKishuIndex を変更しない
    • 理由: 過去の投稿本文にショートコード文字列が直書きされているため

内部実装(本ショートコードのコード・Twig・設計書の範囲)

  • Twig 変数名dates / hall_columns、および titles 配下の構造)、counts のキー文字列は、実装の都度 HallEnumHallEnum::get_kishu_index_display_halls()value)とテンプレートを整合させる。Twig 内で enum は参照できないため、列定義は HallEnum::get_kishu_index_table_columns() から渡し、キー名の単体テストで HallEnum 変更を検知する。
  • 表示対象ホールは現状 3 ホール固定(ISLAND / ESPASU / BIGAPPLE)。ホール追加・変更時は HallEnum、サービス、Twig、テストを合わせて更新する。