Skip to content

SC-014 誕生日機種ピックアップショートコード

SC-005デイリー記事上部表示)の統合タグ MakeArtist20230318 と同じ画面構成で使う分割タグの一つ。日別テンプレでは SC-013MonthlyLinkByYear)と並べて配置する。

誕生日ピックアップと関連機種テーブルを出力する。

概要

  • year / month / day で日付を指定し、誕生日データと関連機種の台数・結果テーブルを返す。
  • halls を省略した場合は [MakeArtist20230318] と同様に、BirthDayMachinePickUpShortCodeHallEnum::get_kishu_index_display_halls()(island / espasu / bigapple)を既定としてコントローラへ渡す(過去記事・テンプレ互換)。コンバーターは属性未指定時 hall_scopenull とするが、ショートコード層で既定ホールに解決する。
  • 誕生日データが取得できない日は、誕生日セクション全体を非表示(空に近い出力。実装はサービス・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 に固定BirthDayMachinePickUpShortCodeMakeArtist20230318ShortCode と同じ既定を適用)。

エラー

条件ユーザー向け挙動メッセージ / ログ
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 を変更・削除しない。