Я хочу отобразить простую таблицу под полем формы как часть текста справки для этого поля (точнее, поля файла). Я полностью псих, или действительно нет простого способа изменить разрешенные HTML-теги для этой текстовой области? На данный момент я показал:
Instructions to present to the user below this field on the editing form.
Allowed HTML tags: a b big code del em i ins pre q small span strong sub sup tt ol ul li p br img
Если нет простого пути, каков следующий легкий способ сделать это?
ОБНОВИТЬ:
Клайв придумал отличный способ сделать это ниже с помощью пользовательского модуля. Вы также можете добавить к этому, используя ctools, чтобы сделать текст справки разборным, как показано ниже:
// Implement hook_field_widget_form_alter()
function MYMODULE_field_widget_form_alter(&$element, &$form_state, &$context) {
// If some condition is matched based on the element provided...
if (isset($element[0]) && $element[0]['#field_name'] == 'field_test') {
// Alter the description using your more permissive set of tags
$reworked = filter_xss($context['instance']['description'], _MYMODULE_field_filter_xss_allowed_tags());
$element[0]['#description'] = theme('ctools_collapsible', array('handle' => 'Help text', 'content' => $reworked, 'collapsed' => TRUE));
}
}
// Provide a more permissive set of tags to be used with filter_xss()
function _MYMODULE_field_filter_xss_allowed_tags() {
// Merge the new set of allowed tags with the less permissive defaults
$new_tags = array('table', 'thead', 'tbody', 'tfoot', 'tr', 'th', 'td');
return array_merge(_field_filter_xss_allowed_tags(), $new_tags);
}
theming
input-formats
7wonders
источник
источник
Ответы:
Нет простого способа сделать это, список разрешенных тегов жестко запрограммирован в
_field_filter_xss_allowed_tags()
функцию .Это, в свою очередь, вызывается
field_filter_xss()
не когда данные сохраняются в базе данных, а когда они отображаются вfield_default_form()
.К счастью, есть способ, но для этого потребуется небольшой пользовательский модуль. Вы в основном хотите реализовать хук изменения формы для формы виджета поля и настроить описание элемента для использования
filter_xss()
с более разрешающим набором тегов.Что-то в этом роде:
Это основано на предпосылке, что вы хотите разрешить новые теги только для элемента с именем
field_test
, очевидно, если вы хотите сделать то же самое для других полей, вам нужно изменить его, чтобы он соответствовал другому условию. Я советую использовать отличнуюdpm()
функцию, включенную в,Devel module
чтобы проверить объект в вашей функции изменения формы.Я только что проверил вышеизложенное, и оно работает (теперь у меня есть таблица, в которой обычно описывается поле моего файла), это выглядит как хак, хотя технически оно соответствует правилам, но, надеюсь, оно поможет вам путь.
источник
Если вы используете D6, вы можете перейти к / admin / settings / filter. Там вам нужно нажать «настроить» параметр «Фильтрованный HTML». Затем нажмите на вкладку конфигурации. Вам будет представлено текстовое поле с надписью «Разрешенные теги HTML». Введите HTML-теги, которые вам нужно использовать там.
В случае D7 перейдите в admin / config / content / format / Filter_html. В разделе «Параметры фильтра» перейдите на вкладку «Ограничить допустимые теги HTML». Введите теги HTML, которые вы хотите использовать в текстовом поле.
источник