Отправка GET запроса в поле формы регистрации (Темизация...? или как?)

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

Аватар пользователя mrdakotas mrdakotas 18 мая 2011 в 22:58

Здравствуйте!

Есть регистрационная форма, с дополнительными полями созданными с помощью 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 запрос без харткодинга?
Заранее всем очень благодарен!

Комментарии

Аватар пользователя us11 us11 18 мая 2011 в 23:19

"mrdakotas" wrote:
Нужно при помощи POST запроса (пример - mysite.com/user/register?profile_manager=blablabla), передать в это поле параметр!

учите php , то что вы написали не является POST запросом

Аватар пользователя vgoodvin vgoodvin 19 мая 2011 в 12:16

Поищите модули на d.org, я уверен кто-то уже подобную задачу решил и возможно сделал универсальное решение.
Если ничего не найдете, то в hook_form_alter устанавливайте для нужных полей параметр #default_value, например так:

function mymodule_form_alter(&$form, $form_state, $form_id) {
  if ($form_id == 'my_form_id') {
    $form['my_element']['#default_value'] = check_plain($_GET['my_param']);
  }
}
Аватар пользователя mrdakotas mrdakotas 19 мая 2011 в 15:01
function mymodule_form_alter(&$form, $form_state, $form_id) {
  if ($form_id == 'my_form_id') {
    $form['my_element']['#default_value'] = check_plain($_GET['my_param']);
  }
}

Я так понял, для этого нужно писать свой модуль. Чесно говоря с написанием собственных не сталкивался...(
Если Вам не сложно, хоть чуть разъясните что за чем и куда тыкать. Буду очень благодарен!

А на счет:

Quote:

Думаю в 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

Пробывал, но в итоге максимум что получилось это вывести через


<?php
  
function themename_user_edit($form) {
    return 
print_r($form); 
  }
?>

содержание массива этой формы регистрации.
А вот хотя бы как то вывести поля не получилось! (Об этом писал изначально в теме)

Аватар пользователя vgoodvin vgoodvin 19 мая 2011 в 15:49

"mrdakotas" wrote:
Я так понял, для этого нужно писать свой модуль. Чесно говоря с написанием собственных не сталкивался...(
Если Вам не сложно, хоть чуть разъясните что за чем и куда тыкать. Буду очень благодарен!

Вторая ссылка, которую я давал. Потом изучайте первую ссылку.

"mrdakotas" wrote:
А вот хотя бы как то вывести поля не получилось! (Об этом писал изначально в теме)

Не надо ничего выводить, надо просто поменять свойство #default_value нужного вам элемента.