Appearance
SC-008 ホール移動日ショートコード
概要
- 指定ホールの前日・翌日記事へのナビゲーションリンクを生成し表示する。
preday(前日日付)・nextday(翌日日付)・name(ホール名)を属性で受け取り、MoveDayHallConverterでバリデーション・DTO 変換後、MoveDayHallController→MoveDayHallService経由でリンク HTML を返す。
外部インターフェース
ショートコードタグ
- タグ名:
[MoveDayHall] - 入力例:
[MoveDayHall preday="20240101" nextday="20240103" name="アイランド秋葉原"]
属性一覧
| 属性 | 役割 | 必須 |
|---|---|---|
preday | 前日の日付(YYYYMMDD 形式) | ○ |
nextday | 翌日の日付(YYYYMMDD 形式) | ○ |
name | 対象ホール名(アイランド秋葉原 / エスパス秋葉原 / ビッグアップル秋葉原 / 秋葉原uno) | ○ |
エラー
| 条件 | ユーザー向け挙動 | メッセージ / ログ |
|---|---|---|
preday / nextday / name のいずれか未指定 | ErrorHandler の返す文言 | ValidationException(preday、nextday、nameの全てのパラメータが必要です。) |
preday または nextday が YYYYMMDD 形式でない | ErrorHandler の返す文言 | ValidationException(YYYYMMDD 形式要求メッセージ) |
name が対応ホール名でない | ErrorHandler の返す文言 | ValidationException(無効なホール名です。対応ホール: …) |
コントローラー・サービスの \Exception | ErrorHandler の返す文言 | ErrorHandler::handle_error() 経由 |
更新不可とみなすもの(git管理外の内容に依存し、リポジトリだけでは追従できない依存)
- ショートコード名
MoveDayHallを変更しない- 理由: 既存投稿本文にショートコードタグが直書きされているため
- 属性名
preday/nextday/nameを変更しない- 理由: 既存投稿本文に属性名が直書きされているため
- 対応ホール名(
HallEnumの日本語値)を変更しない- 理由:
name属性の照合に使用されるため、投稿内の文字列と完全一致していなければならない
- 理由: