Редирект после отправки формы в Drupal 7

В Drupal form API версии 6, у формы было свойство редиректа (пример из документации Drupal):

которое позволяло перенаправить пользователя после отправки/обработки данных формы. В 7й версии API это свойство исчезло. Что можно предпринять, чтобы получить похожий эффект?

Редирект в 6-й версии выполнял команду внутреннего перехода, для примера выше это соответствовало:

Никто не мешает нам выполнить этот переход в hook_submit формы. Соответствующий обработчик можно добавить в form_hook_alter.

Проблема этого способа в том, что не будут выполнены последующие обработчики формы onsubmit. Потому второй вариант — это изменить внешнее окружение так, чтобы drupal делал то, что нужно:

Это не помешает выполнится другим зацепкам, но и не помешает другим зацепкам использовать тот же самый трюк с подменой $_GET[‘destination’].

Написать комментарий

Мало букафф? Читайте есчо !

Вариант XML карты сайта для Drupal 7

Ноябрь 8, 2016 г.

Сначала написал вариант для Drupal 6, но в силу актуальности семерки, предлагаю вариант кода для 7й версии. Описание вы найдете в прошлой статье, здесь обновлена только работа с базой данных. Привожу код класса и пример его вызова. Код класса: ...

Читать

Как проверить роль пользователя (user role) в Drupal 7?

Ноябрь 22, 2016 г.

Модуль user предоставляет довольно неудобную функцию, которая проверяет роль пользователя по Role-ID, а не по названию роли. Код и описание функции (из /modules/user/user.module): [crayon-61e9e790b8d0e512404012/] Проблема в том, что роли пользователей ...

Читать

 

Комментарии к «Редирект после отправки формы в Drupal 7»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий:

Один комментарий в “Редирект после отправки формы в Drupal 7”

  1. Frantsuzzz:

    Для 7 должен такой вариант работать:
    function _redirect_onsubmit($form, &$form_state) {
    $form_state[‘redirect’] = «user/login»;
    }