Требуется создать форму, которая должна будет подключаться к разным материалам и быть привязана к своему материалу. При этом форма одна и та же.
Возможно ли такое с помощью того же webform? Сейчас знакомлюсь с этим модулем и вижу, что он создает конкретную страницу с формой. С которой пока не понятно что делать...
А у меня такая структура: На сайте описание мероприятий. Каждое мероприятие имеет набор страниц, связанных друг с другом за счет url. Например, общая инфа о мероприятие1: /mer/1
Остальные страницы, связанные с этим мероприятием (например, программа мероприятия, дневник, итоги и пр.) имеют следующие страницы mer/1/5, mer/1/6, mer/1/7 и т.д.
Эта структура позволяет вывести в меню данного мероприятия все относящиеся к нему страницы.
Теперь нужно чтобы у каждого мероприятия была форма регистрации участников. Форма одна и та же, но нужно чтобы она была привязана к этому мероприятию таким же способом, как и все остальное.
Юзер кликает на пункт меню "регистрация" и оказывается на странице формы с адресом mer/1/form Заполняет ее, отправляет. Администратор получает форму, в скрытом поле которого 1 - и понимает, что люди регятся на мероприятие1.
Причем, еще необходимо, чтобы в каждом отдельном случае можно было открывать форму или закрывать ее. То есть где-то выставить галку "открыть регистрацию" или наоборот "закрыть". Если открыта - показываем форму. Закрыта - показываем фразу "закрыта". И эти настройки индивидуальны для каждого мероприятия.
Что-то я сомневаюсь, что такое возможно с помощью webform.
Может быть кто-нибудь что-нибудь посоветует?
entity form
открыть-закрыть: надо делать javascript вам нужно прописать в node.tpl.php кнопку или просто через JS добавлять html код кнопки, по клику на кнопку она делает видимым поля Entity Form.
Еще Entity Form можно сгруппировать в одном div-блоке с помощью модуля field_group
Добавьте в вебформу поле "Мероприятие" типа текст, установите дефолтное значение [current-page:url] или [current-page:title] (как удобнее), выведите форму в блок.
"Добавьте в вебформу поле "Мероприятие" типа текст, установите дефолтное значение [current-page:url] или [current-page:title] (как удобнее),"
Примерно так и сделала. ТОлько не текстовое поле, а скрытое. Поскольку юзер переходит на форму находясь на странице данного мероприятия.
Форму в блок вывести можно. Но мне важно, чтобы эта форма имела определенный адрес: mer/1/form (для мероприятия1), mer/2/form для мероприятия2 и так далее. Внутреннее меню мероприятия формируется благодаря тому, что каждая страница мероприятия имеет в урл tid мероприятия. И страница с регистрацией тоже, соответственно, должна иметь такой url.
На данный момент я создала страницу во вьюс mer/%/form, где % - tid мероприятия. И вывела ноду с формой в шапку этого вьюса. Оно работает. Но при сабмите формы юзера уводит на страницу ноды формы. То есть он уходит из раздела данного мероприятия. Тоже самое, если ноду с формой вложением делать в страницу mer/%/form..
пока не знаю, что еще можно придумать...
задача с адресами одной и той же формы уходит, если вы используете загрузку и отображение вебформы в colorbox-node. сама по себе форма не является информационной страницей. и если это всего лишь заявка в 5-8 полей то проще выводить в модальном окне колорбокса или modal-модуля
как изменить адрес перехода при сабмите формы я не могу подсказать точно, но я делал такое при регистрации. вот тут tlito.ru/node/80 это назвается $form_state['redirect'] = 'mer/%/form';
777 - это id формы
if ($form_id == 'webform_client_form_777')
$form['#submit'][] = 'HOOK_webform_client_form_777_submit';
}
function HOOK_webform_client_form_777_submit($form, &$form_state) {
$form_state['redirect'] = 'mer/%/form';
}
Tlito: форма сложнее. Там и поля выбора есть (чекбоксы) и загрузка файлов юзерами. И главное, требуется адекватная статистика по отправленным данным. Вебформ это вроде бы дает. Хотя конечно заморочки с тем, как это все представить в моей структуре.
За код спасибо. ТОже уже подумала про редирект.
ТОлько вот чего-то я не могу найти как перевести на другой язык поля, создаваемые webform. Сайт у меня мультиязычный, и формы должны быть на разных языках. Он вообще умеет?