Добрый день.
У меня следующая проблема/вопрос.
1. Создал тип материала "мероприятие" (список полей: Заголовок, Описание (бади), картинка) рулсом настроил, что бы при создании материала из заголовка создавался термин таксономии в словарь - "мероприятия".
В итоге получилось содержимое - мероприятие("Трататта") и такой же термин таксономии.
2.Создал тип материала "Зарегистрироваться" (список полей: Ф.И.О., Контактные данные и поле с выпадающий списком терминов таксономии из словаря "Мероприятия").
Идея в том, что когда пользователь заходит на страничку с тем или иным мероприятием, при клике на кнопку "записаться" он переходит на страницу формы регистрации( по сути создание нового материала "Зарегистрироваться" ).
Как сделать так, что бы в поле с выпадающим списком мероприятий в форме регистрации, автоматически, по умолчанию выставлялось то мероприятие с которого пользователь перешел на страницу регистрации?? Что бы ему не нужно было просматривать весь список мероприятий, а просто дальше заполнить форму.
Заранее благодарю)
| Вложение | Размер |
|---|---|
| 10.64 КБ | |
| 9.65 КБ | |
| 196.58 КБ |

Комментарии
hook_form_FORM_ID_alter
Смотри на реферрер, или гетом передавай айдишник мероприятия. Ну и в хуке ставь дефолтное значение своего поля.
А можно подробнее?
В том то и дело что у меня это не форма, а простой тип материала, создаваемый каждый раз при регистрации на мероприятие нового пользователя.
Как же не форма? Ещё как форма, самая обыкновенная форма.
Знаете... я чуть позже статью напишу на эту тему, с подробностями и ссылку вам дам.
Возможно я чего-то не понял...
Вообще выглядит это как простая процедура создания нового материала с прикрученным к ней модулем рулз, который выполняет отправку письма админу, о том что такой-то пользователь зарегистрировался на такое-то мероприятие.
Спасибо, буду ждать.
Лови http://php-include.ru/stati/uproshchenie-svyazki-dvuh-materialov-v-drupal
У меня на примере авторов и статей.
Получается для тебя мой автор=твоё мероприятие. моя статья=твоя запись на мероприятие.
Спасибо огромное, сделал по аналогии как описано в статье.
Есть пара уточнений:
Вот этот код помещаю в файл модуля mymodule.module?
Соответственно название файла модуля у меня auto_tax.module
Заменил название поля на свое...
<?php function auto_tax_form_alter(&$form, &$form_state, $form_id){
debug($form_id);
}
function
auto_tax_form_alter(&$form, &$form_state, $form_id){if($form_id == 'rigistr_node_form') {
if(isset($_GET['a'])) {
$form['field_tm_rigistr_action']['und'][0]['nid']['#default_value'] = (int) $_GET['a'];
}
}
}
?>
Но, из-за какой-то ошибки весь сайт ложится. НЕ могу понять в чем причина(( Толи в синтаксисе, толи еще где?
Еще раз благодарю)
Всё правильно.
Ложится потому что ты объявил функцию auto_tax_form_alter два раза.
Затри это
debug($form_id);
}
Оставь только
if($form_id == 'rigistr_node_form') {
if(isset($_GET['a'])) {
$form['field_tm_rigistr_action']['und'][0]['nid']['#default_value'] = (int) $_GET['a'];
}
}
}
Так и сделал, заработало)Спасибо!!
возник еще один вопрос, как при помощи вьюза сделать рабочим фильтр по полю где указывается мероприятие и nid (например: Реформа образования [nid:31])
Вывожу это поле в открытый фильтр, смотрю на дроп лист. Да все мероприятия ранее созданые в нем есть, но какое из них я бы не выбирал, результат пустой.
Такое ощущение, что это название не как не связывается с нодой регистрации. Соответственно и фильтру нечего выводить.
Еще раз конкретизирую вопрос: Как заставить работать фильтр во вьюзе по этому полю в открытом режиме в виде выпадающего списка?
И как скрыть из вывода сам [nid:31], тк эта форма открыта для всех. И такой вид не сильно кошерный.
У вьюса есть взаимосвязи. Добавляешь эту взаимосвять и когда создаешь фильтр - указываешь эту взаимосвязь. И тогда будет работать.
Традиционным способом никак не скрыть. Можно извратиться и написать много кода на js, но оно того не стоит.