[решено]Как передать параметры в форму создания ноды

Главные вкладки

Аватар пользователя Positiff Positiff 25 февраля 2011 в 1:36

На различных страницах сайта, есть поле которое пользователь заполняет и переходит по кнопке к созданию ноды.

Как передать функции построителю формы значение, которое ввел пользователь на странице сайта с которой перешел,
чтобы, например, заголовок заказа или какое другое поле автоматически заполнить этим введенным значением?

Комментарии

Аватар пользователя tonyk tonyk 25 февраля 2011 в 13:53

Через get-запрос. Форма с полем делает редирект на node/add/page?title=Заголовок (например). В "построителе" проверяем значение в $_GET.

Аватар пользователя Positiff Positiff 5 марта 2011 в 23:24

Почему то строка получается вида "%3Fcountry%3D3159%2526region%3D3503%2526city%3D3509"
И при извлечение из переменной GET получаю только значение первой переменной - всю строку.
Вопрос преобразовываеся в %3F а Амперсанд в %2526...
Как быть?

Аватар пользователя Positiff Positiff 6 марта 2011 в 11:12

Подсказали - неправильно делал редирект, нужно было так:
$form_state['redirect'] = array("node/add/page", array("country"=>3159, "region"=>4312, "city"=>4400));

Аватар пользователя vmelnychuk vmelnychuk 28 марта 2011 в 23:25

Можете поподробнее описать решение?
Как я понял, нужно делать ссылку типа
<a href="node/add/page?title=Заголовок">.... </a>.
А что дальше, как ее перехватить и как записать в нужное поле формы?

Аватар пользователя Positiff Positiff 29 марта 2011 в 10:23

в функции отправки формы делаете такой редирект с параметрами
$form_state['redirect'] = array("node/add/page", array('title'=>'Заголовок'));

Ссылка получится как вы написали.
Достать значения в форме построителе по новому адресу:

$title = $_GET['title'];

Аватар пользователя vmelnychuk vmelnychuk 29 марта 2011 в 19:38

"Positiff" wrote:
Достать значения в форме построителе по новому адресу:

function my_modules_form_page_node_form_alter(&$form, &$form_state) {
    $form['title'] = array(
        '#value' => check_plain($_GET['title']),
        );
}

Это имеется ввиду? Или как то по-другому?

Аватар пользователя fea67 fea67 17 августа 2011 в 22:35

ребят, не бейте за глупый вопрос: а где мне найти эту функцию my_modules_form_page_node_form_alter? у меня свой тип материала, созданный с помощью CCK.

Аватар пользователя orest78 orest78 18 августа 2011 в 12:17

fea67 wrote:
ребят, не бейте за глупый вопрос: а где мне найти эту функцию my_modules_form_page_node_form_alter? у меня свой тип материала, созданный с помощью CCK.

Создать свой модуль - например my_modules, как в данном примере, в котором и прописать нужную вам функцию.
http://api.drupal.org/api/drupal/developer--hooks--core.php/function/hoo...