Анонимная отправка пользовательских форм Drupal 7

У меня есть ситуация, когда после базовой регистрации пользователь перенаправляется на страницу, где ему нужно заполнить небольшую форму.

я стремлюсь реализовать hook_user_insert и hook_menu, чтобы сделать что-то вроде этого

function registration_user_insert(&$edit, $account, $category){
drupal_goto('splan/'.$edit['uid']);
}

function registration_menu() {
$items['splan/%'] = array(
'title' => 'Select a Plan',
'page callback' => 'drupal_get_form',
'page arguments' => array('selectplan_form'),
'access callback' => TRUE,
'type' => MENU_CALLBACK
);
return $items;
}

В selectplan_form я определяю свою новую форму, а затем, используя uid, я сохраняю данные в пользовательскую таблицу.

Теперь происходит то, что после отправки базовой формы регистрации пользователя происходит перенаправление на splan/uid, но я также получаю следующую ошибку.

You are not authorized to access this page.

Теперь я изменил разрешения, чтобы разрешить анонимность. пользователям создавать и редактировать веб-формы, но проблема все еще существует.

Пожалуйста помоги!!!!!!!!


person ayush    schedule 11.04.2011    source источник


Ответы (2)


Попробуйте удалить 'access callback' => TRUE, и добавить вместо него 'access arguments' => array('access content'),.

Может быть, вы забыли очистить кеш?

person Bart    schedule 12.04.2011

Обязательно ли заполнять форму, на которую вы ссылаетесь, ПОСЛЕ того, как пользователь зарегистрируется? Если да, то это довольно сложная ситуация. В любом случае, размещение drupal_goto в хуке user_insert прервет процесс регистрации. Если ваша форма не требует, чтобы пользователь был сначала зарегистрирован, вы должны просто изменить регистрационную форму, включив в нее любые дополнительные поля, которые у вас есть в вашей форме. Для этого вам нужно реализовать hook_from_alter():

http://api.drupal.org/api/drupal/modules--system--system.api.php/function/hook_form_alter/7

person mattacular    schedule 13.04.2011