Chcę wyświetlić prostą tabelę pod polem formularza jako część tekstu pomocy dla tego pola (dokładnie pola pliku). Czy jestem całkowicie mentalny, czy naprawdę nie ma łatwego sposobu na zmianę dozwolonych tagów HTML dla tego obszaru tekstowego? W tej chwili wyświetlałem:
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
Jeśli nie ma łatwego sposobu, jaki jest następny najłatwiejszy sposób?
AKTUALIZACJA:
Clive wymyślił świetny sposób na zrobienie tego poniżej z niestandardowym modułem. Możesz do tego dodać również ctools, aby tekst pomocy był zwijany w następujący sposób:
// 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
7 odpowiedzi
źródło
źródło
Odpowiedzi:
Nie ma łatwego sposobu, aby to zrobić, lista dozwolonych tagów jest na stałe zakodowana w
_field_filter_xss_allowed_tags()
funkcji .Jest to z kolei wywoływane przez
field_filter_xss()
, nie wtedy, gdy dane są zapisywane w bazie danych, ale kiedy są wyświetlane wfield_default_form()
.Na szczęście istnieje sposób, ale zajmie to mały niestandardowy moduł. Zasadniczo chcesz zaimplementować hak zmiany formy dla formularza widżetu pola i ustawić opis elementu do użycia
filter_xss()
z bardziej liberalnym zestawem tagów.Coś w tym stylu:
Jest to oparte na założeniu, że chcesz zezwolić tylko na nowe tagi dla elementu o nazwie
field_test
, oczywiście jeśli chcesz zrobić to samo dla innych pól, musisz to zmienić, aby dopasować inny warunek. Radzę użyć doskonałejdpm()
funkcji zawartej wDevel module
celu sprawdzenia obiektu w funkcji zmiany formy.Właśnie przetestowałem powyższe i działa (mam teraz tabelę, w której normalnie byłby mój opis pola pliku), wygląda to trochę jak hack, chociaż technicznie jest zgodny z zasadami, ale mam nadzieję, że dostaniesz się na droga.
źródło
Jeśli używasz D6, możesz przejść do / admin / settings / filter. Tam należy kliknąć opcję „konfiguruj” w „Filtrowanym HTML”. Następnie kliknij kartę konfiguracji. zostanie wyświetlone pole tekstowe oznaczone „Dozwolone tagi HTML”. Wprowadź tagi html, których musisz tam użyć.
W przypadku D7 przejdź do admin / config / content / format / filter_html. W obszarze Ustawienia filtru kliknij kartę „Ogranicz dozwolone tagi HTML”. Wpisz znaczniki HTML, których chcesz użyć, w polu tekstowym.
źródło