入力の1つとして通貨値の選択リストを持つFAPIを使用するフォームがあります。次のようなHTML文字を追加できるようにする必要があります€ $pound; ¥
問題は、Drupalが入力をフィルター処理していて、目的のシンボルを表示せず、上記のように実際のHTMLコードを表示していることです。
Drupalが私のリストをフィルターしないようにする方法はありますか?
入力の1つとして通貨値の選択リストを持つFAPIを使用するフォームがあります。次のようなHTML文字を追加できるようにする必要があります€ $pound; ¥
問題は、Drupalが入力をフィルター処理していて、目的のシンボルを表示せず、上記のように実際のHTMLコードを表示していることです。
Drupalが私のリストをフィルターしないようにする方法はありますか?
回答:
シンボルのUTF-8文字をリストに含めることができます。HTMLエンティティは、一部のシンボルがアクティブなコードページで表示されない可能性があった昔からの遺物です。したがって、リストで€、£、および¥を使用するだけです。
Drupalは、後ろから前へとUTF-8です。使用してください。
解決策として、フォーム要素に#after_buildプロパティを使用できます。
選択のためのオプションを持つ$ options変数があるとしましょう
$form['myselect']['options'] = $options;
$form['myselect']['#after_build'][] = 'custom_select_formatter';
次に、フォーマッタ関数を次のように定義する必要があります
function custom_select_formatter($form_element, $form_state){
$options = $form_element['#options'] //you can use your option values
}
ここでは、#theme add #prefix #suffixを使用しても、select要素を再定義できます。