Редирект в ModX в компоненте Office

Рейтинг: 0Ответов: 1Опубликовано: 24.10.2014

Добрый день! У меня к вам такой вопрос: как можно оформить правильно редирект в своих функциях класса auth.class.php? Делал по аналогии со стандартными функциями (Login в классе), там используется такой код для редиректа:

$this->_sendRedirect('login');

Который в этой функции описывается потом следующим образом:

if ($action == 'login' && $this->config['loginResourceId']) {
        if (in_array($this->config['loginResourceId'], $error_pages)) {
          $this->config['loginResourceId'] = $this->config['page_id'];
        }
        $url = $this->modx->makeUrl($this->config['loginResourceId'], '', '', 'full');
      }
      elseif ($action == 'logout' && $this->config['logoutResourceId']) {
        if (in_array($this->config['logoutResourceId'], $error_pages)) {
           $this->config['logoutResourceId'] = $this->config['page_id'];
        }
        $url = $this->modx->makeUrl($this->config['logoutResourceId'], '', '', 'full');
     }

В своей функции formRepair пытаюсь также отправить редирект, но проблема в том, что когда делаю это до возвращения Return, то форма повисает. Если после return, то просто не срабатывает редирект:

return $this->success("Смс отправлена на ваш телефон!");
 $this->_sendRedirect('login');

Так как правильно заставить свою функцию работать с редиректом? В чем секрет тут?

Хотя в той же процедуре Login редирект стоит прежде, чем возвращается значение функции:

$this->_sendRedirect('login');
return true;

Ответы

▲ 1

http://rtfm.modx.com/revolution/2.x/developing-in-modx/other-development-resources/class-reference/modx/modx.sendredirect

И где вы в классе Login нашли _sendRedirect($url);? У вас что-то старое.
$this->modx->sendRedirect используют в контроллерах.