Анонимный пользователь отправляет анкету drupal 7 - PullRequest
0 голосов
/ 11 апреля 2011

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

Я стремлюсь реализовать 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.

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

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

Ответы [ 2 ]

1 голос
/ 13 апреля 2011

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

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

1 голос
/ 12 апреля 2011

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

Возможно, вы забыли очистить кэш?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...