Tôi muốn hiển thị một bảng đơn giản dưới trường biểu mẫu như một phần của văn bản trợ giúp cho trường đó (chính xác là trường tệp). Tôi hoàn toàn bị tâm thần hay thực sự không có cách nào dễ dàng thay đổi các thẻ html được phép cho vùng văn bản này? Hiện tại tôi đã hiển thị:
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
Nếu không có cách dễ dàng, cách dễ nhất tiếp theo để làm điều đó là gì?
CẬP NHẬT:
Clive đã đưa ra một cách tuyệt vời để làm điều đó dưới đây với một mô-đun tùy chỉnh. Bạn cũng có thể thêm vào điều này bằng cách sử dụng ctools để làm cho văn bản trợ giúp có thể thu gọn như sau:
// 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);
}