Потрібно додати символи HTML у список вибору


9

У мене є форма, що використовує 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. у моєму випадку мені довелося правою кнопкою миші клацнути на моїй сторінці, щоб відкрити діалогове вікно властивостей. Звідси я повинен був переконатися, що атрибут кодування текстових файлів був встановлений на UTF-8. Я повинен був робити це для кожної сторінки, наприклад. page.tpl та будь-яке, що входить
Кевін Бредшоу

Це все повинно бути стандартним при розробці в Drupal. Мета-тег типу вмісту додається Drupal (принаймні, у D6, можливо, у D7 він залишається до теми, але навіть тоді кожна тема виводить utf-8 у вигляді шаблону). І 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
}

тут ви можете переосмислити вибраний елемент, навіть ви можете #theme додати #prefix #suffix

інше, ймовірно, рішення, можливо, що функція l () у цьому прикладі використовує опцію html при створенні посилань із зображеннями, можливо, вибраний елемент також використовує його

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.