Quiero mostrar una tabla simple debajo de un campo de formulario como parte del texto de ayuda para ese campo (campo de archivo para ser exactos). ¿Estoy siendo totalmente mental o realmente no hay una manera fácil de cambiar las etiquetas html permitidas para esta área de texto? Por el momento he mostrado:
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
Si no hay una manera fácil, ¿cuál es la siguiente forma más fácil de hacerlo?
ACTUALIZAR:
A Clive se le ocurrió una excelente manera de hacerlo a continuación con un módulo personalizado. También puede agregar a esto usando ctools para hacer que el texto de ayuda sea plegable de la siguiente manera:
// 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);
}
fuente
Respuestas:
No hay una manera fácil de hacerlo realmente, la lista de etiquetas permitidas está codificada en la
_field_filter_xss_allowed_tags()
función .A su vez, esto se llama
field_filter_xss()
, no cuando los datos se guardan en la base de datos, sino cuando se muestran enfield_default_form()
.Afortunadamente, hay una manera, pero se necesitará un pequeño módulo personalizado para hacerlo. Básicamente está buscando implementar un formulario alter hook para el formulario del widget de campo y establecer la descripción del elemento para usar
filter_xss()
con un conjunto de etiquetas más permisivo.Algo en este sentido:
Eso se basa en la premisa de que solo desea permitir las nuevas etiquetas para un elemento llamado
field_test
, obviamente, si desea hacer lo mismo para otros campos, deberá cambiarlo para que coincida con una condición diferente. Aconsejo usar la excelentedpm()
función incluida en elDevel module
objeto para inspeccionar el objeto en su formulario alterar función.Acabo de probar lo anterior y funciona (ahora tengo una tabla donde normalmente estaría la descripción de mi campo de archivo), se siente un poco como un truco a pesar de que técnicamente se adhiere a las reglas, pero espero que te ayude camino.
fuente
En caso de que esté utilizando D6, puede navegar a / admin / settings / filter. Allí debe hacer clic en la opción "configurar" de "HTML filtrado". Luego haga clic en la pestaña configurar. se le presentará un cuadro de texto con la etiqueta "Etiquetas HTML permitidas". Ingrese las etiquetas html que necesita usar allí.
En el caso de D7, vaya a admin / config / content / formatos / filter_html. En Configuración del filtro, haga clic en la pestaña "Limitar etiquetas HTML permitidas". Ingrese las etiquetas HTML que desea usar en el cuadro de texto.
fuente