February 13, 20178 yr Здравствуйте, подскажите, пожалуйста, как сделать, чтобы зарегистрированных пользователей редиректило со страницы регистрации, входа и восстановления пароля, если они туда случайно зашли по ссылке? Сейчас, если перейти по этим ссылкам форум.ru/index.php?app=core&module=global§ion=loginфорум.ru/index.php?app=core&module=global§ion=registerфорум.ru/index.php?app=core&module=global§ion=lostpass авторизованным пользователем, он попадает на эти страницы. Хотелось бы, чтобы его редиректило на главную. Т.е. чтобы эти страницы были доступны только гостям. Edited February 13, 20178 yr by Strategius
February 13, 20178 yr Author Получилось добавить редирект на главную страницу. Для регистрации admin\applications\core\modules_public\global\register.php После: IPSMember::save( $this->memberData['member_id'], array( 'core' => array( 'login_anonymous' => "{$privacy}&0", 'last_activity' => IPS_UNIX_TIME_NOW ) ) );Добавил: /* Редирект авторизованного пользователя на главную страницу */ $this->registry->getClass('output')->redirectScreen( $return[0], $this->registry->output->formatUrl( $this->settings['board_url'] ) ); Для входа admin\applications\core\modules_public\global\login.php После $template .= $this->registry->getClass('output')->getTemplate('login')->errors($message); }Добавил /* Редирект авторизованного пользователя на главную страницу */ if ($this->memberData['member_id']) { $this->registry->getClass('output')->redirectScreen( $return[0], $this->registry->output->formatUrl( $this->settings['board_url'] ) ); }Но насколько ли правильное это решение, и разумное ли оно вообще? Для восстановления пароля admin\applications\core\modules_public\global\lostpass.php составил такую функцию: protected function _avMemberRed() { /* Редирект авторизованного пользователя на главную страницу */ if ($this->memberData['member_id']) { $this->registry->getClass('output')->redirectScreen( $return[0], $this->registry->output->formatUrl( $this->settings['board_url'] ) ); } }Но она почему-то не работает... Edited February 13, 20178 yr by Strategius
February 14, 20178 yr Author Кстати, чем отличается $this->registry->getClass('output')->silentRedirect от $this->registry->getClass('output')->redirectScreen?
February 14, 20178 yr Кстати, чем отличается $this->registry->getClass('output')->silentRedirect от $this->registry->getClass('output')->redirectScreen? Во втором случае после редиректа появляется сообщение.
February 14, 20178 yr Author @newbie, понял, спасибо! Для добавления редиректа на страницу восстановления пароля в файле admin\applications\core\modules_public\global\lostpass.php После if ( $this->settings['bot_antispam_type'] != 'none' ) { $this->output = str_replace( "<!--{REG.ANTISPAM}-->", $captchaHTML, $this->output ); }Добавляем /* Редирект авторизованного пользователя на главную страницу */ if ($this->memberData['member_id']) { $this->registry->getClass('output')->silentRedirect( $this->registry->output->formatUrl( $this->settings['board_url'] ) ); }
Здравствуйте, подскажите, пожалуйста, как сделать, чтобы зарегистрированных пользователей редиректило со страницы регистрации, входа и восстановления пароля, если они туда случайно зашли по ссылке?
Сейчас, если перейти по этим ссылкам
форум.ru/index.php?app=core&module=global§ion=login
форум.ru/index.php?app=core&module=global§ion=register
форум.ru/index.php?app=core&module=global§ion=lostpass
авторизованным пользователем, он попадает на эти страницы. Хотелось бы, чтобы его редиректило на главную.
Т.е. чтобы эти страницы были доступны только гостям.
Edited by Strategius