blocs/blocs: 変数の表示(data-val)とメニュー項目の自動変換
blocs/blocs: 変数の表示(data-val)とメニュー項目の自動変換
テンプレート内でコントローラーから渡された変数の値を表示するには data-val 属性を使用します。タグ記法とコメント記法の両方で使用可能です。
基本的な使い方
タグ記法では、タグに挟まれる内容が変数の値で置き換えられます。コメント記法では、コメント部分が変数の値で置き換えられます。
<div data-val=$name>Name</div>
<div><!-- $name --></div>
省略記法
No.2.1 の省略記法表を参照してください。data-val=$name はコメント記法では <!-- $name --> と書けます。
<!-- $name -->
タグ記法では <div data-val=$name></div> のように data-val を明示します。
出力時の自動処理
data-val を使用すると、以下の処理が自動的に行われます。
- メニュー項目の自動変換(選択肢の値をラベルに変換)
htmlspecialcharsによる HTML エスケープ- 改行の
<br />変換(nl2br)
HTMLタグをそのまま表示したい場合、またはメニュー項目の自動変換を行わない場合は data-convert="raw" を指定します。
<span data-val=$htmlSource data-convert="raw"></span>
メニュー項目の自動置換
data-val で変数を表示する際、対応するメニューのラベルに自動変換されます。テンプレート内にメニュー項目がなくても、同一フォルダ内の他のテンプレートにメニュー項目が定義されていれば自動変換されます。
例えば、入力画面で選択された値を確認画面でラベルに変換して表示できます。
<select id="type" name="type">
<option value="company">法人のお客様</option>
<option value="private">個人のお客様</option>
<option value="other">その他</option>
</select>
<!-- 確認画面での表示(自動的にラベルに変換される) -->
<span data-val=$type></span>
変換せず値をそのまま表示したい場合は data-convert="raw" を指定します。
複数選択メニューの区切り文字を変更する方法
app/Consts/Blocs.php(blocs/admin インストール後)または blocs/blocs 読み込み前の任意の PHP ファイルで BLOCS_OPTION_SEPARATOR 定数を定義します。
defined('BLOCS_OPTION_SEPARATOR') || define('BLOCS_OPTION_SEPARATOR', ', ');
QA
addOption で追加した項目も自動変換されますか?
はい。addOption で追加した項目も data-val で自動的にラベルに変換されます。変換を行わず value 値を表示したい場合は data-convert="raw" を指定します。