Необходимо добавить символы HTML в список выбора

9

У меня есть форма, использующая FAPI, который имеет список значений валют в качестве одного из входных данных. Мне нужно иметь возможность добавлять символы HTML, такие как€ $pound; ¥

Проблема в том, что Drupal фильтрует входные данные и не отображает нужные символы, а отображает действительные HTML-коды, как показано выше.

Есть ли способ, чтобы Drupal не фильтровал мой список?

Кевин Брэдшоу
источник

Ответы:

4

Вы можете и должны поместить символы UTF-8 для символов в вашем списке. HTML-сущности являются пережитком прошлого, когда возможно, что некоторые символы не имеют представления в активной кодовой странице. Таким образом, просто используйте €, £ и ¥ в своих списках.

Drupal - это UTF-8 сзади-вперед: используйте его.

fietserwin
источник
спасибо за ваш простой ответ, к сожалению, это было не так просто, как это сделать. вставка одних только символов UTF-8 может не сработать. Мне пришлось: проверить php.ini, чтобы убедиться, что моя кодировка по умолчанию была ut8-f, убедиться, что мои заголовки имеют <meta http-equ = "Content-Type" content = "text / html; charset = utf-8" /> в их и САМОЕ ВАЖНОЕ .. убедитесь, что ваши страницы сохранены как utf-8. в моем случае мне пришлось щелкнуть правой кнопкой мыши мою страницу в Eclipse, чтобы открыть диалоговое окно свойств. Отсюда я должен был убедиться, что атрибут кодировки текстового файла был установлен в UTF-8. Я должен был сделать это для каждой страницы, например. page.tpl и любые другие включает в себя
Кевин Брэдшоу
Все это должно быть стандартным при разработке в Drupal. Метатег типа содержимого добавлен Drupal (по крайней мере, в D6, возможно, что в D7 он оставлен на усмотрение темы, но даже тогда каждая тема выводит utf-8 в виде charset). И Eclipse, ну да, жаль, что Eclipse поставляется с чем-то другим, кроме utf-8 по умолчанию. Не забудьте установить стандарт рабочего пространства на utf-8, чтобы предотвратить появление такой же проблемы в будущих проектах.
fietserwin
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
}

здесь вы можете переопределить ваш элемент select, даже если вы можете #theme add #prefix #suffix

другое, вероятно, решение - возможно, функция l () в этом примере использует опцию html при создании ссылок с изображениями, возможно, элемент select также использует ее

werqious
источник