質問: array('table', 'thead', 'tbody', 'tfoot', 'tr', 'th', 'td'); return array_merge(_field_filter_xss_allowed_tags(), $new_tags); }
回答: 実際には簡単な方法はありません。許可されたタグのリストは _field_filter_xss_allowed_tags() function にハードコードされています。これは、次に、データがデータベースに保存されるときではなく、 field_filter_xss() に表示されるときに field_default_form() によって呼び出されます。幸いなことに方法はありますが、そのためには小さなカスタムモジュールが必要です。基本的には、フィールドのウィジェットフォームにフォーム変更フックを実装し、より寛容なタグのセットでfilter_xss()を使用するように要素の説明を設定することを考えています。これらの線に沿った何か:_// 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 $element[0]['#description'] = filter_xss($context['instance']['description'], _mymodule_field_filter_xss_allowed_tags()); } } // 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); } _これは、_field_test_と呼ばれる要素の新しいタグのみを許可するという前提に基づいています。他のフィールドでも同じことを行う場合は、別の条件に一致するように変更する必要があります。 _devel module_ に含まれる優れたdpm()関数を使用して、フォーム変更関数のオブジェクトを検査することをお勧めします。私は上記をテストしたところ、うまくいきました(現在、ファイルフィールドの説明が通常あるテーブルがあります)。技術的にはルールに固執していますが、ハックのように感じられますが、うまくいけば、仕方。