blocs: 逆引きレシピ集(やりたいことから引く)
blocs: 逆引きレシピ集(やりたいことから引く)
ステータス: ドラフト(要オーナー検証)。掲載コードは文書化済みの data 属性(No.2.1)から構成しています。実環境での動作確認を推奨します。各レシピの詳細仕様はリンク先ナレッジを参照してください。
「○○したい」から、使う機能の組み合わせを引くためのレシピ集です。個々の属性・機能の詳細は各 No. に、ここでは組み合わせ方の勘所を示します。
テンプレート編(blocs/blocs)
レシピ1: 一覧をループ表示し、0件のときはメッセージを出す
data-loop(繰り返し, No.2.5)と data-none(値がないとき, No.2.4)を組み合わせます。
<table>
<tr data-loop=$users>
<td><!-- $user->name --></td>
<td><!-- $user->email --></td>
</tr>
</table>
<p data-none=$users>データがありません</p>
勘所: 行の表示は data-val の省略記法 <!-- $user->name --> が簡潔。空配列の判定は data-none、1件以上なら data-exist。
レシピ2: ログイン状態やフラグで表示を出し分ける
値の有無は data-exist / data-none、条件式での分岐は data-if / data-unless(No.2.4)。
<div data-exist=$user>
ようこそ <!-- $user->name --> さん
</div>
<a href="/login" data-none=$user>ログイン</a>
勘所: 「変数が入っているか」で出し分けるなら data-exist / data-none、「値が特定の条件を満たすか」で分けるなら data-if / data-unless。詳細・条件式の書き方は No.2.4。
レシピ3: 共通パーツ(カード・ヘッダー等)を部品化して使い回す
再利用は data-bloc(部品定義)/ data-include(読み込み)(No.2.6)。プロジェクト全体で自動的に読み込ませたい共通テンプレート・UI は Auto Include(No.2.12)。
勘所: 1ファイル内での使い回しは data-bloc + data-include、複数画面で共通利用するなら Auto Include の登録を検討。正確な記法は No.2.6 / No.2.12 を参照。
レシピ4: 金額・日付などを整形して表示する
data-convert(表示形式の整形・元の値は変えない)、前後への文字付与は data-prefix / data-postfix(No.2.7)。
勘所: 「¥」「円」などの固定文字は prefix/postfix、桁区切りや日付フォーマットは convert。convert で使う関数名が未定義だと B008(No.2.14)。関数名は No.2.7 の一覧を参照。
レシピ5: 入力フォームにバリデーションと多言語のエラーメッセージを付ける
バリデーション条件は data-form + data-validate(No.2.10)、エラーメッセージ・案内文の翻訳は data-notice / data-lang(No.2.9)、入力UIは ai-* クラス(No.2.13)。
<!-- data-form="email" data-validate="required" -->
<input type="text" name="email">
勘所: バリデーションはコメント記法のみ(省略記法 !email="required")。複数ルールやカスタムルールは No.2.10 / No.2.11。入力前の値整形は data-filter(No.2.8、関数未定義は B010)。
管理画面編(blocs/admin)
詳細手順は各 No. にあります。ここは「目的 → 組み合わせる機能」の対応表です。
| やりたいこと | 組み合わせる機能(No.) |
|---|---|
| 定義ファイルから CRUD 画面を一気に作る | 定義ファイルと自動生成(No.3.1)→ 不要機能の無効化(No.3.2) |
| 一覧に検索・ソート・ページネーションを足す | 一覧表示のカスタマイズ(No.4.1) |
| 一覧にコピー・並び替えを付ける | CopyTrait / SortTrait(No.5.6)+ ボタン(No.5.3) |
| 編集画面にファイルアップロードを付ける | 新規作成・編集のカスタマイズ(No.4.2)+ ファイルアップロード(No.5.5) |
| ダッシュボードにグラフを出す | グラフ表示 Chart.js(No.5.7) |
| サイドメニューに動的な項目を足す | サイドメニュー設定(No.3.4)+ 動的メニュー addOption(No.5.2) |
| ボタンからモーダルを開く | ボタン(No.5.3)+ モーダル(No.5.4) |
| 表形式でまとめて入力させる | テーブルタイプの入力画面(No.5.8) |
| 管理者の権限・ログイン画面を分ける | アクセス権限の設定(No.3.3)+ 複数ログイン画面(No.5.9) |
| 処理機能記述書や Excel 出力を自動化する | docs 自動生成(No.6.1)+ Excel 操作(No.6.2) |
勘所: 自動生成(No.3.1)で土台を作り、不要機能を削り(No.3.2)、共通レイアウト(No.4.4)で見た目を揃えるのが基本の流れ。各画面の細かな上書きは No.4.x を参照。
関連ナレッジ
- No.2.1 テンプレートエンジン概要とデータ属性一覧(属性の全体像)
- No.2.14 エラーコード一覧(レシピ実装時のエラー対処)
- No.7.2 トラブルシューティング & FAQ(ハマりどころ)