CMS Drupal

Как обычно делаю сайт на Drupal и возникла вот такая задача: если пользователь не заполнил свою анкету, то при входе на сайт он должен перенаправляться на страницу с формой анкеты.

Сначала решил воспользоваться инструкцией, которая как раз, вроде, должна решать поставленную задачу: http://drupal.org/node/683696 Т.е. с помощью модуля trigger. Но почему-то перенаправления все никак не происходило. Порывшись на том же сайте нашел, что редирект происходит, если логиниться не из блока, а со страницы /user. Но мне-то надо из блока.

Решил, что буду дописывать свой модуль под это дело. Благо существует hook_user, позволяющий обработать вход пользователя на сайт:

function alex_module_user($op, &$edit, &$account, $category = NULL) {
  global $user;
  switch ($op) {
    case 'login':
      if (MAINTENANCE_MODE != "install") {
        $queryResult = db_result(db_query('SELECT COUNT(*) AS number FROM {node} n
          WHERE n.uid = %d AND n.type="profile"',$user->uid));
        if ($queryResult == 0) {
          drupal_set_message('Заполните пожалуйста персональную информацию');
          //drupal_goto('node/add/profile');
          header('Location: http://'.$_SERVER['SERVER_NAME'].'/node/add/profile');
          exit;
        }
      }
      break;
}

Обратите внимание, что строка drupal_goto('node/add/profile'); закомментирована. По началу я пытался использовать именно эту функцию для редиректа, но редиректа не происходило, при чем опять же только из блока(со страницы с формой входа на сайт все работает). Т.е. можно сделать вывод, что при входе на сайт из блока не срабатывает функция drupal_goto().

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • Строки и параграфы переносятся автоматически.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <1c7>, <drupal5>, <drupal6>, <javascript>, <php>. Beside the tag style "<foo>" it is also possible to use "[foo]".