Appearance
SC-014 誕生日機種ピックアップショートコード
SC-005(デイリー記事上部表示)の統合タグ MakeArtist20230318 と同じ画面構成で使う分割タグの一つ。日別テンプレでは SC-013(MonthlyLinkByYear)と並べて配置する。
誕生日ピックアップと関連機種テーブルを出力する。
概要
year/month/dayで日付を指定し、誕生日データと関連機種の台数・結果テーブルを返す。hallsを省略した場合は[MakeArtist20230318]と同様に、BirthDayMachinePickUpShortCodeがHallEnum::get_kishu_index_display_halls()(island / espasu / bigapple)を既定としてコントローラへ渡す(過去記事・テンプレ互換)。コンバーターは属性未指定時hall_scopeをnullとするが、ショートコード層で既定ホールに解決する。- 誕生日データが取得できない日は、誕生日セクション全体を非表示(空に近い出力。実装はサービス・View に従う)。
外部インターフェース
ショートコードタグ
- タグ名:
[BirthDayMachinePickUp] - 入力例:
[BirthDayMachinePickUp year="2024" month="3" day="18"] - 入力例(ホール絞り込みあり):
[BirthDayMachinePickUp year="2024" month="3" day="18" halls="island,espasu"]
属性一覧
| 属性 | 役割 | 必須 |
|---|---|---|
year | 対象年(整数、2020〜2100) | ○ |
month | 対象月(整数、1〜12) | ○ |
day | 対象日(整数、1〜31) | ○ |
halls | 誕生日機種データのホール絞り込み。有効スラッグをカンマ区切りで指定: island / espasu / bigapple / uno。省略時は island / espasu / bigapple に固定(BirthDayMachinePickUpShortCode が MakeArtist20230318ShortCode と同じ既定を適用)。 | — |
エラー
| 条件 | ユーザー向け挙動 | メッセージ / ログ |
|---|---|---|
year が未指定・非数値・範囲外(2020 未満 / 2100 超) | ValidationException メッセージをそのまま表示(esc_html 済み) | 「年は数値で指定してください。」/「年は2020から2100の間で指定してください。」 |
month が未指定・非数値・範囲外(1 未満 / 12 超) | 同上 | 「月は数値で指定してください。」/「月は1から12の間で指定してください。」 |
day が未指定・非数値・範囲外(1 未満 / 31 超) | 同上 | 「日は数値で指定してください。」/「日は1から31の間で指定してください。」 |
| 日付の組み合わせが存在しない(例: 2月30日) | 同上 | 「指定された日付は存在しません。」 |
halls に無効なスラッグが含まれる | 同上 | 「halls に無効なホール指定があります(island, espasu, bigapple などの英字スラッグをカンマ区切りで指定してください)。」 |
Controller・Service・View 内での \Throwable | 'エラーが発生しました:execute_if_not_admin' を表示 | error_log(先頭 [ShortCodeHelper] + 例外クラス名・メッセージ・ファイル・行番号) |
管理画面(is_admin() === true) | 空文字を出力(非表示) | — |
| 誕生日データが存在しない日 | 誕生日セクション非表示(または空出力。実装に従う) | — |
今後の更新で崩してはいけないところ(互換性契約)
公開契約(Breaking change 扱い)
- ショートコード名
BirthDayMachinePickUpを変更しない(日別テンプレ・投稿本文に直書きされうるため)。 - 属性名
year/month/day/hallsを変更・削除しない。