fbp-original-screen

star 0

Build custom note management screens as the default FBP approach by using `screen_build_type=Original Screen` and a `<tb_name>_original_management/run` class, with reusable CRUD, sort, and calendar samples plus CLI verification patterns.

focusbp By focusbp schedule Updated 6/8/2026

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 ScreenOriginal Screen へ移行したい
  • 標準画面の 検索 / マニュアルソート / カレンダー では足りず、自由度の高い管理画面を作りたい
  • ノートの screen_build_typeOriginal Screen にして、<tb_name>_original_management/run を呼びたい
  • 一覧 / 追加 / 編集 / 削除 / 部分更新の管理画面パターンを再利用したい
  • Original Screenサイドパネルの詳細設計は fbp-side-panel も使う

workflow

  1. まず Standard Screenscreen_fieldsdb_additionalspost_action_class で実現できない理由を確認する。ユーザーが「Original Screen指定」と明示している場合はその指定を優先する。
  2. 既存移行なら先に references/migration-standard-to-original.md で棚卸し対象を洗い出す。
  3. 対象ノートの screen_build_typeOriginal Screen にする。
  4. list_type は Original 画面の中で使う UI パターンに応じて通常一覧系を選ぶ。
  5. classes/app/<tb_name>_original_management/<tb_name>_original_management.php を作る。
  6. run(Controller $ctl) で自由な画面を表示する。
  7. 初回の骨組み確認なら minimal_*、案件流用なら sample_* を起点に流用する。
  8. 環境側の同期手順で実行環境へ反映した後、対象ノートを db_exe/pageapp_call し、Original management class not found が出ないことを確認する。
  9. 検証は references/verification.mdapp_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.mddb_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_rightdisplay:flex; justify-content:flex-end; align-items:flex-end; margin-left:auto; にし、ボタン側は float:none !important; で右寄せする。
  • ダイアログや詳細パネルでボタン行の直後に表・見出しを置く場合は、.button_rowdisplay: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/

extension policy

  • 今後カレンダーなど別パターンを足すときは、references/ に新パターンの手順を追加し、assets/ に対応サンプルを増やす
  • Standard Screen からの移行知見は、画面パターン本体ではなく migration 系 reference に寄せる
  • SKILL.md には共通方針だけを残し、具体コードは assets/ へ寄せる
Install via CLI
npx skills add https://github.com/focusbp/fbp-codex-booster --skill fbp-original-screen
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator