選択リストにHTML文字を追加する必要があります


9

入力の1つとして通貨値の選択リストを持つFAPIを使用するフォームがあります。次のようなHTML文字を追加できるようにする必要があります€ $pound; ¥

問題は、Drupalが入力をフィルター処理していて、目的のシンボルを表示せず、上記のように実際のHTMLコードを表示していることです。

Drupalが私のリストをフィルターしないようにする方法はありますか?

回答:


4

シンボルのUTF-8文字をリストに含めることができます。HTMLエンティティは、一部のシンボルがアクティブなコードページで表示されない可能性があった昔からの遺物です。したがって、リストで€、£、および¥を使用するだけです。

Drupalは、後ろから前へとUTF-8です。使用してください。


簡単な返信ありがとうございます。残念ながら、それほど簡単ではありませんでした。UTF-8文字だけを挿入しても機能しない場合があります。php.iniをチェックして、デフォルトの文字セットがut8-fであることを確認し、ヘッダーに<meta http-equiv = "Content-Type" content = "text / html; charset = utf-8" />があることを確認しましたそれらと最も重要な..ページがutf-8として保存されていることを確認してください。私の場合、Eclipseでページを右クリックして、プロパティダイアログを表示する必要がありました。ここから、テキストファイルのエンコーディング属性がUTF-8に設定されていることを確認する必要がありました。たとえば、すべてのページでこれを行わなければなりませんでした。page.tplおよび任意のインクルード
Kevin Bradshaw

Drupalで開発する場合、これはすべて標準的なはずです。content-typeメタタグはDrupalによって追加されます(少なくともD6では、おそらくD7ではテーマに任されていますが、それでもすべてのテーマがutf-8を文字セットとして出力します)。そしてEclipseは、ええ、Eclipseがデフォルトでutf-8以外のものとともに出荷されるのは残念です。将来のプロジェクトで同じ問題が発生しないように、ワークスペースの標準をutf-8に設定することを忘れないでください。
fietserwin 2012

1

解決策として、フォーム要素に#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要素を再定義できます。

別のおそらく解決策は、この例の l()関数画像とのリンクを作成するときにhtmlオプションを使用することです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.