Пример отключения Wysiwyg редактора для всех полей типа text_format
в форме создания/редактирования материала типа page
:
/**
* Implements hook_form_FORM_ID_alter().
*/
function mymodule_form_page_node_form_alter(&$form) {
mymodule_disable_wysiwyg_recursive($form);
}
/**
* Disable wysiwyg in all fields
*/
function mymodule_disable_wysiwyg_recursive(&$form) {
foreach (element_children($form) as $element) {
if (isset($form[$element]['#type']) && $form[$element]['#type'] == 'text_format') {
$form[$element]['#wysiwyg'] = FALSE;
}
else {
mymodule_disable_wysiwyg_recursive($form[$element]);
}
}
}
В Drupal 8 функция element_children()
переименована в \Drupal\Core\Render\Element::children()
.
Написанное актуально для
Drupal 7
Похожие записи
- Вывести дефолтное значение элемента формы с помощью #lazy_builder
- Inline Form Errors только у конкретных форм
- Восстанавливаем позицию текстового курсора при ajax обновлении формы
- Как выполнять свой js-код до или после любых AJAX запросов (изменение работы AJAX API)
- Порядок и логика работы #validate и #submit колбаков в форме
Комментарии
Внесу свои 5 копеек.
У меня ключа #wysiwyg не нашлось. Может, я не тот модуль использую.
Зато у меня есть в #pre_render колбек
wysiwyg_pre_render_text_format()
, который нужно «удалить».Кстати, ещё один вариант реализации — воспользоваться стандартной рекурсией задав
#process
или#after_build
вhook_element_info_alter
:)Спасибо за блог, xandeadx!
По поводу
#wysiwyg
— поняла, когда заглянула в тот же wysiwyg_pre_render_text_format() :)у hook_element_info_alter оверхед большой будет
А для 6 подойдет?
должно
better filters меня спас )
Такой подход не обойдет все элементы формы, если они имеют вложенную струткуру.. Как быть в такой ситуации?
обойдёт
не сразу заметил, что реализация для 7ки, но в 6ке, если есть вложенные элементы формы, например,
, функция
element_children
вернет ключ только элементаparent
, а до элементаchild
добраться таким циклом не получается, т.к. он на уровень глубжену рекурсия же есть
конечно есть) просто это достаточно стандартный подход к структурам формы, думал есть что-нибудь в функционале ядра, для обхода элементов такой структуры... ок, напишем тогда.
Добавить комментарий