Случай: вставьте / встроите форму в другую форму, сохранив исходную разметку <form>
во встроенном выводе. В данном случае это форма массовых операций представлений с открытыми фильтрами формы, встроенными в форму редактирования узла.
Проблема: когда он встроен, все выглядит хорошо на поверхности, и в представлении отображается форма и все ее элементы. Однако при изучении визуализированного вывода представлений Exposed Form из Exposed Filter удаляется <form>
разметка. Однако, когда я добавляю блок в область стандартным способом на той же странице, что и форма редактирования узла, выходные данные Views Exposed Form содержат разметку <form>
, и фильтр работает нормально.
Примечания: содержимое представлений формы VBO не изменяется, и его <form>
разметка в форме редактирования узла остается неизменной. Только фильтр открытой формы в том же отображении представлений удаляется <form>
. Кроме того, при использовании пейджера в отображении представлений и с параметром Использовать Ajax, установленным на Да, если я перейду на следующую страницу результатов представлений, обновленная форма Ajax будет содержать правильную разметку <form>
для открытой формы представлений, и с этого момента фильтр будет работать. .
Что я пробовал:
установка отображаемой формы для отображения в блоке, а затем встраивание открытого блока формы отдельно с помощью module_invoke ('views', 'block', 'view', '-exp-Instructor_select-page_1').
встраивание представления с использованием views_embed_view ('VIEW-NAME', 'VIEW-DISPLAY') - независимо от того, был ли VIEW-DISPLAY 'default', 'page_1' или 'block_1' - та же проблема.
встраивание отображения блока Views с помощью module_invoke ('views', 'block', 'view', 'VIEWS-DISPLAY-block_1');
вставка формы напрямую с помощью drupal_build_form ($ form_id, & $ form_state) (замена представлений для drupal_get_form)
Проверено с:
используя hook_form_alter
тема_preprocess_NODETYPE_node_form ($ vars)
жесткое кодирование разметки в шаблоне фильтра с настраиваемым представлением:
<form id="views-exposed-form-VIEWS-DISPLAY" method="get" accept-charset="UTF-8" action="/URL" class="views-processed">
ПРОСМОТРЕТЬ КОД ШАБЛОНА ФОРМЫ<input type="hidden" value="instructor_select" name="view_name"><input type="hidden" value="block_1" name="view_display_id"><input type="hidden" value="" name="view_args"><input type="hidden" value="user/1/edit/studio" name="view_path"><input type="hidden" value="URL-PATH" name="view_base_path"><input type="hidden" value="VIEWS-DISPLAY" name="view_dom_id"><input type="hidden" value="0" name="pager_element"></form>
Я уверен, что мне не хватает некоторых других способов, которыми я пытался это решить, но этого должно быть достаточно, чтобы служить примерами того, что я испробовал.
Независимо от того, как форма встроена в форму редактирования узла, фильтр Views Exposed не работает, так как элемент <form>
отсутствует, AJAX, однако, работает с остальной частью формы VBO и при использовании пейджера и AJAX, обновляющего форму Views display разметка Exposed Form Filter отображается правильно и фильтр работает.
На данный момент у меня нет идей. Я был бы очень признателен за несколько указателей или примеров кода о том, как это сделать.
Заранее спасибо.