Иногда требуется изменить алгоритм работы формы регистации сайта Joomla.
Для того чтобы изменить параметры редиректа (перенаправления, переадресации) после регистрации пользователя нужно внести изменения в файл components/com_users/controllers/registration.php.
Смотрим самый низ страницы с кодом. Где-то в районе строки 188 находим код:
// Redirect to the profile screen.
if ($return === 'adminactivate'){
$this->setMessage(JText::_('COM_USERS_REGISTRATION_COMPLETE_VERIFY'));
$this->setRedirect(JRoute::_('index.php?option=com_users&view=registration&layout=complete', false));
}else if ($return === 'useractivate') {
$this->setMessage(JText::_('COM_USERS_REGISTRATION_COMPLETE_ACTIVATE'));
$this->setRedirect(JRoute::_('index.php?option=com_users&view=registration&layout=complete', false));
} else {
$this->setMessage(JText::_('COM_USERS_REGISTRATION_SAVE_SUCCESS'));
$this->setRedirect(JRoute::_('index.php?option=com_users&view=login', false));
}
В этом фрагменте видим 3 варианта переадресации:
Первый ( index.php?option=com_users&view=registration&layout=complete ) выполняется после регистрации пользователя, если учетная запись должна быть активирована администратором.
Второй ( index.php?option=com_users&view=registration&layout=complete ), если учетная запись должна быть активирована пользователем.
Третий ( index.php?option=com_users&view=login ), если активация учетной записи не требуется.
Замените ссылки в зависимости от типа регистрации, который вы используете, на нужный вам URL.
Например, если активация учетной записи на сайте не требуется, и я хочу перенаправить пользователя после регистрации на http://домен/welcome , исправленный код будет выглядеть так:
// Redirect to the profile screen.
if ($return === 'adminactivate'){
$this->setMessage(JText::_('COM_USERS_REGISTRATION_COMPLETE_VERIFY'));
$this->setRedirect(JRoute::_('index.php?option=com_users&view=registration&layout=complete', false));
} else if ($return === 'useractivate') {
$this->setMessage(JText::_('COM_USERS_REGISTRATION_COMPLETE_ACTIVATE'));
$this->setRedirect(JRoute::_('index.php?option=com_users&view=registration&layout=complete', false));
} else {
$this->setMessage(JText::_('COM_USERS_REGISTRATION_SAVE_SUCCESS'));
$this->setRedirect(JRoute::_('http://домен/welcome', false));
}