На различных страницах сайта, есть поле которое пользователь заполняет и переходит по кнопке к созданию ноды.
Как передать функции построителю формы значение, которое ввел пользователь на странице сайта с которой перешел,
чтобы, например, заголовок заказа или какое другое поле автоматически заполнить этим введенным значением?
Комментарии
Через get-запрос. Форма с полем делает редирект на node/add/page?title=Заголовок (например). В "построителе" проверяем значение в $_GET.
Почему то строка получается вида "%3Fcountry%3D3159%2526region%3D3503%2526city%3D3509"
И при извлечение из переменной GET получаю только значение первой переменной - всю строку.
Вопрос преобразовываеся в %3F а Амперсанд в %2526...
Как быть?
Подсказали - неправильно делал редирект, нужно было так:
$form_state['redirect'] = array("node/add/page", array("country"=>3159, "region"=>4312, "city"=>4400));
Можете поподробнее описать решение?
Как я понял, нужно делать ссылку типа
<a href="node/add/page?title=Заголовок">.... </a>.
А что дальше, как ее перехватить и как записать в нужное поле формы?
в функции отправки формы делаете такой редирект с параметрами
$form_state['redirect'] = array("node/add/page", array('title'=>'Заголовок'));
Ссылка получится как вы написали.
Достать значения в форме построителе по новому адресу:
$title = $_GET['title'];
$form['title'] = array(
'#value' => check_plain($_GET['title']),
);
}
Это имеется ввиду? Или как то по-другому?
Все таки по-другому. Надо вот так:
if (!isset($form['title']['#default_value'] )){
$form['title']['#default_value'] = check_plain($_GET['title']);}
}
ребят, не бейте за глупый вопрос: а где мне найти эту функцию my_modules_form_page_node_form_alter? у меня свой тип материала, созданный с помощью CCK.
Создать свой модуль - например my_modules, как в данном примере, в котором и прописать нужную вам функцию.
http://api.drupal.org/api/drupal/developer--hooks--core.php/function/hoo...