Всем привет! Подскажите- может кто делал, как форму (реализована в webform) выводить в popup окне... Ставил модуль popup- но так и не понял как он работает! буду признателен!
Сделайте по аналогии с логином, только в качестве ID укажите ID блока с вебформой. И, соответственно, уберите проверку на залогиненого пользователя. А так смысл остаётся тем же.
$form = drupal_get_form('webform_form_blabla'); // Получить вебформу по её build id.
drupal_add_library('system', 'ui.dialog'); // Подключаем библиотеки для попапа.$commands = array();
$commands[] = ajax_command_append('body', '<div id="popup"></div>'); // Создаём элемент на странице.$commands[] = ajax_command_html('#popup', render($form)); // Ложим в созданный div форму.$commands[] = ajax_command_invoke('#popup', 'dialog'); // Открываем форму в попапе.returnarray('#type' => 'ajax', '#commands' => $commands);
Да рабочий код, смотрел выступление твое MinskCamp, ты вроде упоминал об этом, если не webforms а форма созданная мною, я запихаю этот код в функция callback и возвращаю в элемент? Или мне надо создать отдельную форму с одним элементом "Submit" при клике открыватся вторая форма с элементами. Буду признателен. Спасибо
Если эти формы появляются в разных местах - то делай 2 разных формы. Если же на месте одной появляется другая - то можно и на колбэке от первой. Посмотри в исходники модуля, который я писал для кэмпа (функция dcm_ajax_example_form_ajax_callback()). Там как раз одна форма на колбэке заменяется другой.
Комментарии
присоединяюсь к вопросу. Но думаю для этого надо создать форму через forms api прикрутить к slidebox.
Сделайте по аналогии с логином, только в качестве ID укажите ID блока с вебформой. И, соответственно, уберите проверку на залогиненого пользователя. А так смысл остаётся тем же.
А через ajax_command_invoke? получится сделать?
Получится. Как-то так:
Набросал на коленке, но выглядит рабочим ;)
Да рабочий код, смотрел выступление твое MinskCamp, ты вроде упоминал об этом, если не webforms а форма созданная мною, я запихаю этот код в функция callback и возвращаю в элемент? Или мне надо создать отдельную форму с одним элементом "Submit" при клике открыватся вторая форма с элементами. Буду признателен. Спасибо
Если эти формы появляются в разных местах - то делай 2 разных формы. Если же на месте одной появляется другая - то можно и на колбэке от первой. Посмотри в исходники модуля, который я писал для кэмпа (функция dcm_ajax_example_form_ajax_callback()). Там как раз одна форма на колбэке заменяется другой.
Да можно и так, благадарю за советы)
Добрый день SplasH!
Что то не получается вывести в popup. Вот сниппет. в Чем проблема?
и callback функция
Куда это вообще вставлять?
Обратите внимание на коменты в коде.
да редирект надо убрать, там раньше был условия if else. Долго мучался разбирая код в кэмпе. Спасибо огромное
Вы можете использовать https://drupal.org/project/popup_forms
Комментировать