Здравствуйте!
Есть регистрационная форма, с дополнительными полями созданными с помощью CCK и Profile
Дополнительное поле называется условно "profile_manager".
Задача:
Нужно при помощи GET запроса (пример - mysite.com/user/register?profile_manager=blablabla), передать в это поле параметр!
Пробовал темизировать форму регистрации, ничто не получилось. Хотел добавить при помощи темизации для этого поля чтото в роде: value=".$_GET['manager']." но так до этого и не дошел...((
На счет темизации, делал так:
Дописал в template.php это:
<?php
function ajno1000_theme () {
return array(
'user_register' => array(
'template' => 'user-register' ,
'arguments' => array( 'form' => NULL ),
),
);
}
?>
и создал файлик user-register.tpl.php с таким содержанием:
<?php<div class="my-form-wrapper">
<?php print $rendered ; ?>
</div>?>
безрезультатно!...
потом пробовал такое:
<?php
## just a test to see if $form is transfered
##var_export($form);
print drupal_render ( $form [ 'name' ]);
print drupal_render ( $form [ 'pass' ]);
print drupal_render ( $form [ 'links' ]);
print drupal_render ( $form [ 'form_build_id' ]);
print drupal_render ( $form [ 'form_id' ]);
print drupal_render ( $form [ 'actions' ]);
?>
Опять без результатно...
(В обеих вариантах страница регистрации загружалась, полей - не видно!)
Прошу помощи знатоков! Скажите, я хоть на правильном пути?
Что может быть у меня не так с темизацией?
И можно ли отправить этот GET запрос без харткодинга?
Заранее всем очень благодарен!
Комментарии
учите php , то что вы написали не является POST запросом
Извините, подскажите как будет правильно?
Если нужно взять что то из url используйте GET запросы
Блин...)) Действительно протупил!
Извеняюсь!
Да, речь идет не о POST а о GET запросах!
Ну что, возьмется кто нибудь помочь?)
Поищите модули на d.org, я уверен кто-то уже подобную задачу решил и возможно сделал универсальное решение.
Если ничего не найдете, то в hook_form_alter устанавливайте для нужных полей параметр #default_value, например так:
if ($form_id == 'my_form_id') {
$form['my_element']['#default_value'] = check_plain($_GET['my_param']);
}
}
Думаю в template.php можно сделать такой же трюк.
http://drupaldance.com/blog/%D1%82%D0%B5%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D...
http://drupaldance.com/blog/10-steps-to-drupal-forms
if ($form_id == 'my_form_id') {
$form['my_element']['#default_value'] = check_plain($_GET['my_param']);
}
}
Я так понял, для этого нужно писать свой модуль. Чесно говоря с написанием собственных не сталкивался...(
Если Вам не сложно, хоть чуть разъясните что за чем и куда тыкать. Буду очень благодарен!
А на счет:
Пробывал, но в итоге максимум что получилось это вывести через
<?php
function themename_user_edit($form) {
return print_r($form);
}
?>
содержание массива этой формы регистрации.
А вот хотя бы как то вывести поля не получилось! (Об этом писал изначально в теме)
Вторая ссылка, которую я давал. Потом изучайте первую ссылку.
Не надо ничего выводить, надо просто поменять свойство #default_value нужного вам элемента.
Ага... Вроде понял!)
Сейчас буду пробовать! Спасибо!