Desejo exibir uma tabela simples sob um campo de formulário como parte do texto de ajuda para esse campo (campo de arquivo para ser exato). Estou sendo totalmente mental ou não há realmente nenhuma maneira fácil de alterar as tags html permitidas para esta área de texto? No momento eu tenho exibido:
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
Se não houver uma maneira fácil, qual é a próxima maneira mais fácil de fazer isso?
ATUALIZAR:
O Clive criou uma ótima maneira de fazer isso abaixo com um módulo personalizado. Você também pode adicionar isso usando ctools para tornar o texto de ajuda recolhível da seguinte maneira:
// 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);
}
fonte
Respostas:
Na verdade, não existe uma maneira fácil de fazer isso, a lista de tags permitidas está codificada na
_field_filter_xss_allowed_tags()
função .Por sua vez, isso é chamado
field_filter_xss()
, não quando os dados são salvos no banco de dados, mas quando são exibidos nofield_default_form()
.Felizmente, existe uma maneira, mas será necessário um pequeno módulo personalizado. Você basicamente procura implementar um alter hook de formulário para o formulário de widget do campo e definir a descrição do elemento para usar
filter_xss()
com um conjunto de tags mais permissivo.Algo nesse sentido:
Isso é baseado na premissa de que você deseja permitir apenas as novas tags para um elemento chamado
field_test
, obviamente, se você quiser fazer o mesmo para outros campos, precisará alterá-lo para corresponder a uma condição diferente. Aconselho o uso da excelentedpm()
função incluída noDevel module
objeto para inspecionar na sua forma alter function.Acabei de testar o que foi dito acima e funciona (agora tenho uma tabela onde normalmente seria a descrição do meu campo de arquivo), parece um hack, mesmo que tecnicamente atenda às regras, mas espero que você consiga maneira.
fonte
Caso esteja usando o D6, você pode navegar para / admin / settings / filter. Lá você precisa clicar na opção "configurar" de "HTML filtrado". Em seguida, clique na guia configurar. você receberá uma caixa de texto chamada "Tags HTML permitidas". Digite as tags html que você precisa usar lá.
No caso do D7, vá para admin / config / content / formatos / filtrado_html. Em Configurações do filtro, clique na guia "Limitar tags HTML permitidas". Digite as tags HTML que você deseja usar na caixa de texto.
fonte