Переадресация после регистрации Joomla 2.5

  • 18 Ответов
  • 13537 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

Здравствуйте. Никак не могу найти ответ на вопрос. Стоит Joomla 2.5 стандартный модуль регистрации, при регистрации нового пользователя, после того как приходит письмо и переходишь на сайт по ссылке, попадаешь на страницу авторизации. После авторизации высвечиваются данные зарегистрированного пользователя, а мне необходимо сделать переадресацию на форум. В менеджере пользователей переадресация установлена, она работает когда ты авторизуешься не после регистрации, а после 2-й, 3-й раз и все остальные. Я так понимаю что необходимо поправить код в joomle. В components/com_user/controller.php есть 5 редеректов менял по очереди во всех не помогает. Подскажите где и в каком месте нужно прописать редерект?

Если не править код в joomle, а сделать редирект в htaccess. Пробывал, вроде все получается. Можно ли этот способ считать технически правильным?

*

arma

  • ******
  • 1318
  • 63
Да

   Тоже долго мучился с этой проблемой. Оказывается информация в рунете по этому вопросу не соответствует действительности, по крайней мере в отношении Joomla 2.5.
   Итак, для того чтобы изменить параметры редиректа (перенаправления, переадресации) после регистрации пользователя править нужно не файл /components/com_user/controller.php, а components/com_users/controllers/registration.php.
   Прокрутите вниз до самого дна. На строке 162 или около того, вы увидите требуемый фрагмент кода:

// 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://www.mywebsite.ru/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://www.mywebsite.ru/welcome', false));
}

Информацию почерпнул здесь: http://www.mysysadmintips.com/other/web/127-joomla-redirection-after-user-registration

Скажите, а вы не знаете, можно ли сделать автоматическую авторизацию после регистрации? То есть пользователь зарегистрировался и не нужно было авторизовываться вручную, а сразу без его участия происходила авторизация.

*

ipdj

  • ***
  • 27
  • 0
Joomla 3.1.1 шаблон protostar почему то после заполнения формы регистрации пользователя происходит переадресация на пустую страницу (белый лист)? не в курсе с чем это может быть связано? и если я подправлю адрес ссылки переадресации по вашему методу в Joomla 3.1.1 этот метод прокатит?

*

user

  • ***
  • 112
  • 1
  Тоже долго мучился с этой проблемой. Оказывается информация в рунете по этому вопросу не соответствует действительности, по крайней мере в отношении Joomla 2.5.
   Итак, для того чтобы изменить параметры редиректа (перенаправления, переадресации) после регистрации пользователя править нужно не файл /components/com_user/controller.php, а components/com_users/controllers/registration.php.
   Прокрутите вниз до самого дна. На строке 162 или около того, вы увидите требуемый фрагмент кода:

// 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://www.mywebsite.ru/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://www.mywebsite.ru/welcome', false));
}

Информацию почерпнул здесь: http://www.mysysadmintips.com/other/web/127-joomla-redirection-after-user-registration

Не совсем то, что мне нужно. После заполнения формы, сразу происходит перенаправление на заданный адрес, но он у меня доступен только после авторизации, поэтому выдается сообщение "сначала пройдите авторизацию".
Мне нужно сделать переадресацию после первой авторизации на сайте (через форму, которая открывается после подтверждения email). Как это сделать не подскажете, в каком файле задать адрес?

прошу простить, но уже кипит)) - не как не одолею((

J2.5
пытаюсь сделать редирект или заменить в коде, в общем мне надо вместо /index.php?option=com_users вот такой URL info/login.html
друзья  - подскажите пожалуйста
а вообще я наглухо... чего и вам желаю...

*

wbmsk

  • **
  • 21
  • 3
прошу простить, но уже кипит)) - не как не одолею((

J2.5
пытаюсь сделать редирект или заменить в коде, в общем мне надо вместо /index.php?option=com_users вот такой URL info/login.html
друзья  - подскажите пожалуйста

Попробуйте включить SEF и перенаправление URL, предварительно переименовав файл htaccess.txt в .htaccess
Все ссылки c index.php будут перенаправляться на нормальный URL

*

folang

  • **
  • 20
  • 0
День добрый. Не могу настроить переадресацию стандартной авторизации.
делал все, что написано в этой теме, не помогает, после входа кидает на страницу с профилем.
надо чтоб кидало сюда
index.php/faqs
поможите пожалуйса  !

*

zomby6888

  • ******
  • 1484
  • 167
Попробуйте мой плагин: http://websiteprog.ru/pages/redirectuser
интернет-блог: http://websiteprog.ru

*

folang

  • **
  • 20
  • 0
Попробуйте мой плагин: http://websiteprog.ru/pages/redirectuser
Joomla 2.5 при установке выдает ошибку:
JFolder::create: Не удалось создать каталог
Внимание! Не удалось переместить файл!


*

Fat

  • *
  • 475
  • 25
  • Разрабатываю компоненты для Joomla
Скажите, а вы не знаете, можно ли сделать автоматическую авторизацию после регистрации? То есть пользователь зарегистрировался и не нужно было авторизовываться вручную, а сразу без его участия происходила авторизация.

Код
if ($return === 'adminactivate')
{
$this->setMessage(JText::_('COM_USERS_REGISTRATION_COMPLETE_VERIFY'));
$this->setRedirect(JRoute::_('index.php?option=com_users&view=registration&layout=complete', false));
}
elseif ($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('Спасибо за регистрацию!');
$app = JFactory::getApplication();
$credentials = array();
$credentials['username'] = $data['username'];
$credentials['password'] = $data['password1'];
$return_url = 'index.php';

$options = array();
$options['remember'] =  false;
$options['return'] = base64_decode($return_url);

        $app->login($credentials, $options);

        //print_r($data);
        $this->setRedirect(JRoute::_($return_url, false));
       // exit;
               return true;

$this->setRedirect(JRoute::_('index.php?option=com_users&view=login', false));
}
nCatalogues - компонент CCK для Joomla.

Скачать компонент можно через нашу группу вконтакте

   Тоже долго мучился с этой проблемой. Оказывается информация в рунете по этому вопросу не соответствует действительности, по крайней мере в отношении Joomla 2.5.
   Итак, для того чтобы изменить параметры редиректа (перенаправления, переадресации) после регистрации пользователя править нужно не файл /components/com_user/controller.php, а components/com_users/controllers/registration.php.
   Прокрутите вниз до самого дна. На строке 162 или около того, вы увидите требуемый фрагмент кода:

// 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://www.mywebsite.ru/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://www.mywebsite.ru/welcome', false));
}

Информацию почерпнул здесь: http://www.mysysadmintips.com/other/web/127-joomla-redirection-after-user-registration

СПАСИБО, ПОМОГЛО! Joomla 3.3.6

*

ilnur

  • *
  • 4
  • 0
   Тоже долго мучился с этой проблемой. Оказывается информация в рунете по этому вопросу не соответствует действительности, по крайней мере в отношении Joomla 2.5.
   Итак, для того чтобы изменить параметры редиректа (перенаправления, переадресации) после регистрации пользователя править нужно не файл /components/com_user/controller.php, а components/com_users/controllers/registration.php.
   Прокрутите вниз до самого дна. На строке 162 или около того, вы увидите требуемый фрагмент кода:

// 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://www.mywebsite.ru/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://www.mywebsite.ru/welcome', false));
}

Информацию почерпнул здесь: http://www.mysysadmintips.com/other/web/127-joomla-redirection-after-user-registration

Доброго времени всем!
 Хочу поблагодарить на joomla3  этот способ тоже работает токо что протестировал все окей спасибо. *DRINK* Второй  день парюсь не мог решить, час все работает :D




*

ShamilHan

  • ***
  • 194
  • 5
Есть лучшее решение для переадресации после регистрации, это плагин TCVN AUTO LOGIN PLUGIN. Вот ссылка на него http://thecoders.vn/joomla-plugins/item/17-tcvn-auto-login-plugin.html
В настройках плагина можно указать куда перенаправить (указываете ссылку на старницу) после автоматической авторизации.

Плагин БЕСПЛАТНЫЙ
« Последнее редактирование: 09.12.2014, 14:06:28 от ShamilHan »

перенаправление после авторизации
Спойлер
[свернуть]
файл находится components/com_users/controllers/user.php
строка 47, работает в Joomla 3.3.6
тут переадресация после входа

   Тоже долго мучился с этой проблемой. Оказывается информация в рунете по этому вопросу не соответствует действительности, по крайней мере в отношении Joomla 2.5.
   Итак, для того чтобы изменить параметры редиректа (перенаправления, переадресации) после регистрации пользователя править нужно не файл /components/com_user/controller.php, а components/com_users/controllers/registration.php.
   Прокрутите вниз до самого дна. На строке 162 или около того, вы увидите требуемый фрагмент кода:

// 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://www.mywebsite.ru/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://www.mywebsite.ru/welcome', false));
}

Информацию почерпнул здесь: http://www.mysysadmintips.com/other/web/127-joomla-redirection-after-user-registration

Спасибо большое! Ваш совет решил проблему переадресации на нужную страницу!