Регистър: вмъкнете/вградете формуляр в друг формуляр, като същевременно запазите оригиналното <form>
маркиране във вградения изход. В този случай това е формуляр за групови операции на Views с открити филтри за формуляри, вградени във формуляр за редактиране на възел.
Проблем: когато е вградено, всичко изглежда добре на повърхността и изгледът показва формата и всички нейни елементи. Въпреки това, когато се изследва рендираният изход на Views 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 на Views)
Тестван с:
използвайки hook_form_alter
theme_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>
Сигурен съм, че пропускам няколко от другите начини, които съм опитвал да реша това, но това трябва да е достатъчно, за да служи като примери за изпробвани неща.
Без значение как формулярът е вграден във формуляра за редактиране на възел, филтърът за изложени изгледи не работи, тъй като елементът <form>
липсва, но AJAX работи с останалата част от VBO формуляра и при използване на пейджър и AJAX обновява формуляра за изгледи дисплей, маркирането на филтъра за разкрити формуляри се изобразява правилно и филтърът работи.
На този етап ми липсват идеи. Наистина ще оценя някои насоки или примерни кодове за това как да опитам това.
Благодаря предварително.