Pickles 2

select フィールド

selectフィールドは、選択式の入力欄を作成します。

モジュール実装例

select フィールドには、特別な設定値 options が定義されています。 options には、プロパティに valuelabel を持ったオブジェクトを配列に格納して設定します。

{
    "interface": {
        "fields": {
            "selectfieldsample": {
                "fieldType": "input",
                "type":"select",
                "label":"テキスト寄せ",
                "display":"select",
                "options":[
                    {"value":"left", "label":"左寄せ"},
                    {"value":"center", "label":"中央寄せ"},
                    {"value":"right", "label":"右寄せ"}
                ]
            }
        }
    }
}

テンプレートの実装例は次のようになります。

この例は、CSSの text-align プロパティの値を、 leftcenterright の中から選ぶ使い方を想定したものです。

<!-- template.html.twig の実装例 -->
<div style="text-align:{{ selectfieldsample }};">inner html.</div>

displayradio を設定すると、ラジオボタンの形式に変更することができます。省略時は select になります。

旧Broccoli標準記法での実装例

<!-- 実装例 -->
<div style="text-align:{&{"input":{
    "type":"select",
    "name":"selectfieldsample",
    "label":"テキスト寄せ",
    "display":"select",
    "options":[
        {"value":"left", "label":"左寄せ"},
        {"value":"center", "label":"中央寄せ"},
        {"value":"right", "label":"右寄せ"}
    ]
}}&};">inner html.</div>

データ型

{
    "src": "選択されたオプションの value 値"
}

このデータ型は Broccoli v0.4.0 で、 現在の {"src": src} に変更されました。 Broccoli v0.3 系までは、文字列型のデータを直接格納していました。

バリデーション

validatorjs が定義するバリデーションルールが設定できます。

多言語対応

select フィールドでは、 language.csv に定義を追加することで、オプションのラベルを多言語に対応することができます。

en ja zh zh-TW
fields.fieldname:label Text Alignment テキスト寄せ 文字对齐 文字對齊
fields.fieldname:options.0.label Left 左寄せ 左对齐 左對齊
fields.fieldname:options.1.label Center 中央寄せ 居中 居中
fields.fieldname:options.2.label Right 右寄せ 右对齐 右對齊

キー(一番左の列)の一覧は次の通りです。

  • fields.{$fieldname}:options.{$index}.label: {$index} 番目のオプションのラベルを表します。
  • subModule.{$fieldname}.{submodname:label}:options.{$index}.label: サブモジュールの場合の例です。{$index} 番目のオプションのラベルを表します。

{$index}0 から数えます。