name: fbp-original-screen description: Build custom note management screens only when explicitly requested or when Standard Screen is insufficient, using screen_build_type Original Screen and the table-specific original_management run class, with reusable CRUD, sort, calendar, and side-panel patterns plus CLI verification.
fbp-original-screen
trigger conditions
- ユーザーが「Original Screen指定」と明示している
- 既存の
Standard ScreenをOriginal Screenへ移行したい - 標準画面の
検索 / マニュアルソート / カレンダーでは足りず、自由度の高い管理画面を作りたい - ノートの
screen_build_typeをOriginal Screenにして、<tb_name>_original_management/runを呼びたい - 一覧 / 追加 / 編集 / 削除 / 部分更新の管理画面パターンを再利用したい
- Original Screenサイドパネルの詳細設計は
fbp-side-panelも使う
workflow
- まず
Standard Screen、screen_fields、db_additionals、post_action_classで実現できない理由を確認する。ユーザーが「Original Screen指定」と明示している場合はその指定を優先する。 - 既存移行なら先に
references/migration-standard-to-original.mdで棚卸し対象を洗い出す。 - 対象ノートの
screen_build_typeをOriginal Screenにする。 list_typeは Original 画面の中で使う UI パターンに応じて通常一覧系を選ぶ。classes/app/<tb_name>_original_management/<tb_name>_original_management.phpを作る。run(Controller $ctl)で自由な画面を表示する。- 初回の骨組み確認なら
minimal_*、案件流用ならsample_*を起点に流用する。 - 環境側の同期手順で実行環境へ反映した後、対象ノートを
db_exe/pageでapp_callし、Original management class not foundが出ないことを確認する。 - 検証は
references/verification.mdのapp_call/data_*パターンで行う。
naming rules
- クラス名は固定で
<tb_name>_original_management - 呼び出し関数は固定で
run - framework 側から
db_idや検索条件は自動注入されない前提で作る - 親ノートから開く子サイドパネルを Original Screen 化する場合は、同じクラスに public
rows_child(Controller $ctl)を実装する。詳細はfbp-side-panelを使う
constraints
- 新規制作の基本方針は Standard Screen とする。Original Screen は明示指定、または標準画面では不足する部分に限定する。
screen_build_type=Original Screenにしたノートは、同じ作業内で<tb_name>_original_management/runを実装してテスト環境へ同期する。クラスを作らない単純CRUDノートはStandard Screenを選ぶ。- Original Screen の完了条件は、対象ノートの
db_exe/pageが成功し、Original management class not found: <tb_name>_original_managementが出ないこと。 - URL生成は必ず
$ctl->get_APP_URL()を使う - バリデーションエラーは
res_error_message()を返して即return - エラー時に
show_multi_dialog()再実行やreload_work_area()をしない - 一覧の Ajax 更新は、必要な領域だけ
reload_area()する fields_form_direct/fields_form_original/fields_view_directを優先する- 検索フォームは
references/search-pattern.mdのdb_exe型自動検索を優先する - Original Screen では原則
style.cssを作らない - 画面専用 CSS が必要な場合は、対象 tpl に直接
<style>を書く - Smarty tpl 内の
<style>では、CSS の{}が Smarty 構文として解釈されないように、必ず{literal}...{/literal}で CSS 本文を囲む - CSS を framework 共通へ上げるのは、再利用目的が明確なときだけに限定する
- ブラウザ再起動なしで反映確認したい要件を優先し、案件画面の初回実装は tpl 内
<style>を正本とする - 行操作アイコンは
original_screen_action_cell内でfloat:rightにして右寄せする。一覧テーブルはwidth:100%を指定し、PC表示のアクションセルはdisplay:table-cellに戻して行の右端まで届くようにする。モバイルのカード表示ではfloat:noneに戻す。 - 表示する検索ボタンを置く場合は、
.search_rightをdisplay:flex; justify-content:flex-end; align-items:flex-end; margin-left:auto;にし、ボタン側はfloat:none !important;で右寄せする。 - ダイアログや詳細パネルでボタン行の直後に表・見出しを置く場合は、
.button_rowをdisplay:flex; justify-content:flex-end;にし、ボタン側のfloatを解除したうえで下に 12px 程度の余白を入れる。 - ダイアログ本文や詳細パネル内の入力フォームでは、textarea/input/select の横に保存・追加ボタンを置かない。入力部品の下に操作行を置き、ボタンは右寄せにする。検索フォームの検索ボタンだけは横配置を許可する。
- 子ノート変更時に親ノートの集計情報を再計算するなど、Noteデータに対する共通副作用は Original Screen 専用処理に閉じ込めず、対象ノートの
post_action_classに実装する。Standard Screen、Original Screen、MCP Server の Note CRUD で共通化できることが主なメリット。サイドパネル内操作の副作用判断はfbp-side-panelも確認する。
references
- Standard からの移行手順:
references/migration-standard-to-original.md - 棚卸しチェックリスト:
references/migration-inventory-checklist.md db_additionals/post_action_class移行:references/migration-db_additionals-post_action_class.md- 子サイドパネル Original Screen:
references/child-side-panel.md(新規作業ではfbp-side-panelも参照) - CRUD ダッシュボード実装:
references/crud-dashboard.md - 自動検索と5項目グリッド:
references/search-pattern.md - マニュアルソート実装:
references/sort-pattern.md - 週カレンダー実装:
references/calendar-pattern.md - 検証手順:
references/verification.md - ひな形コード:
- 最小版 CRUD:
assets/minimal_note_original_management/ - 実運用版 CRUD:
assets/sample_note_original_management/ - 最小版 Sort:
assets/minimal_sort_original_management/ - 実運用版 Sort:
assets/sample_sort_original_management/ - 最小版 Calendar:
assets/minimal_calendar_original_management/ - 実運用版 Calendar:
assets/sample_calendar_original_management/ - 子サイドパネル Search/Table:
assets/sample_child_search_original_management/ - 子サイドパネル Manual Sort:
assets/sample_child_sort_original_management/
- 最小版 CRUD:
extension policy
- 今後カレンダーなど別パターンを足すときは、
references/に新パターンの手順を追加し、assets/に対応サンプルを増やす Standard Screenからの移行知見は、画面パターン本体ではなく migration 系 reference に寄せるSKILL.mdには共通方針だけを残し、具体コードはassets/へ寄せる