2012-05-06 3 views
2

Я хочу, чтобы мои пользователи перенаправлялись на собственный URL после того, как они успешно зарегистрировались в Joomla. Я не могу найти для этого никакой возможности! Как я могу это достичь?Перенаправить пользователя на пользовательский URL после успешной регистрации в Joomla

ответ

0

Если вы используете встроенное меню Joomla !, чтобы загрузить страницу регистрации или попасть туда из модуля Login, нет способа перенаправления (что не так, потому что вы можете установить перенаправление после входа в систему модуль входа в систему).

Лучшим местом для начала будет поиск существующих решений в разделе «Authentication» раздела Joomla! Extension Directory. Кажется, есть несколько перечисленных, которые поддерживают как старые сайты стиля 1.5, так и новые сайты 1.7/2.5.

(Кстати, если вы все еще на 1.7 необходимо обновить до последней 2.5, поскольку есть серьезные проблемы безопасности в 1,7 линии.)

0

В вашем наборе кода выполните следующие действия;

$app=JFactory::getapplication(); 
$app->redirect('index.php?option=com_users&view=login')); 
0

Вы можете достичь этого с помощью плагина (по крайней мере, в Joomla 3.x - не знаете, как далеко это будет работать). Ключевым здесь является событие onUserAfterSave, которое сообщает вам, является ли пользователь новым или существующим.

Я написал код, приведенный ниже, так что не могу вспомнить точную причину, по которой перенаправление не может быть выполнено из обработчика события onUserAfterSave, но я думаю, что перенаправление впоследствии переопределяется в другом месте основного кода управления пользователями Joomla если вы попытаетесь сделать это оттуда, поэтому сохраните флаг в сеансе и проверите его в более позднем обработчике событий.

class PlgUserSignupRedirect extends JPlugin 
{ 
    public function onUserAfterSave($user, $isnew, $success, $msg) 
    { 
     $app = JFactory::getApplication(); 

     // If the user isn't new we don't act 
     if (!$isnew) { 
      return false; 
     } 

     $session = JFactory::getSession(); 
     $session->set('signupRedirect', 1); 

     return true; 
    } 

    function onAfterRender() { 
     $session = JFactory::getSession(); 
     if ($session->get('signupRedirect')) { 
      JFactory::getApplication()->redirect('/my-post-signup-url'); 
      $session->clear('signupRedirect'); 
     } 
    } 
} 
Смежные вопросы