Форум русской поддержки Joomla!® CMS
09.12.2016, 11:44:44 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Модуль авторизации

 (Прочитано 475 раз)
0 Пользователей и 1 Гость смотрят эту тему.
spirit1086
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 135


« : 05.01.2016, 14:19:36 »

Здравствуйте, подскажите можно ли в  модуле авторизации Joomla сделать не изменяя системные файлы Joomla, редирект после авторизации на текущую страницу. В модуле видел только что нужный пункт меню выбрать, а мне нужно чтобы после авторизации оставался на текущей странице где произошла авторизация.
Записан
fsv
Практически профи
*******

Репутация: +330/-2
Offline Offline

Пол: Мужской
Сообщений: 2246


« Ответ #1 : 05.01.2016, 17:02:06 »

Переопределите шаблон модуля авторизации.
В этом шаблоне после стр.12
Код
require_once JPATH_SITE . '/components/com_users/helpers/route.php';
добавьте
Код
$return = base64_encode( JUri::getInstance()->toString() );
не проверял.
Записан
spirit1086
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 135


« Ответ #2 : 05.01.2016, 21:40:57 »

Этот придется править компонент не понял? при обновлении Joomla затерется же?
Записан
fsv
Практически профи
*******

Репутация: +330/-2
Offline Offline

Пол: Мужской
Сообщений: 2246


« Ответ #3 : 05.01.2016, 22:41:30 »

Этот придется править компонент не понял?
Переопределите шаблон модуля авторизации.

при обновлении Joomla затерется же?
Переопределите шаблон модуля авторизации.
Записан
spirit1086
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 135


« Ответ #4 : 06.01.2016, 00:20:13 »

тьфу точно спасибо большое в самом низу есть же скрытое поле $return )) плюсанул!
Записан
v-v
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Сообщений: 87


« Ответ #5 : 08.01.2016, 18:43:33 »

у меня данный способ не работает
Записан
zikkuratvk
Профи
********

Репутация: +258/-2
Offline Offline

Пол: Мужской
Сообщений: 3938


Разрабатываем для Joomla


« Ответ #6 : 08.01.2016, 18:50:45 »

О госпади то... не выбирайте ничего о редиректах в модуле... и будет вам счастье редиректа на страницу с которой вы начали авторизацию
Записан
v-v
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Сообщений: 87


« Ответ #7 : 08.01.2016, 18:59:15 »

О госпади то... не выбирайте ничего о редиректах в модуле... и будет вам счастье редиректа на страницу с которой вы начали авторизацию

ничего не выбирал! редиректит само на страницу профиля
Записан
zikkuratvk
Профи
********

Репутация: +258/-2
Offline Offline

Пол: Мужской
Сообщений: 3938


Разрабатываем для Joomla


« Ответ #8 : 08.01.2016, 19:10:09 »

ничего не выбирал! редиректит само на страницу профиля
Не могут же все ошибаться :-) http://joxi.ru/8AnxeGJSqo0yXm
Либо у вас модуль авторизации не стандартный Joomla либо кем-то переделанный.
Записан
v-v
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Сообщений: 87


« Ответ #9 : 08.01.2016, 19:20:39 »

Не могут же все ошибаться :-) http://joxi.ru/8AnxeGJSqo0yXm
Либо у вас модуль авторизации не стандартный Joomla либо кем-то переделанный.

стандартный модуль
настройки такие же как у вас
редирект на нужную страницу работает а чтобы оставаться на текущей -не работает
$return в скрытых инпутах вроде правильно отображает куда нужно редиректить...но...
Записан
v-v
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Сообщений: 87


« Ответ #10 : 09.01.2016, 05:52:06 »

неужели никто не подскажет в чем может быть причина. Модуль стандартный джумловский, Joomla! 3.4.8, пробовал работу модуля на дефолтных джумловских шаблонах - $return на ту страницу, откуда залогинились, не работает - кидает на страницу профайла
« Последнее редактирование: 09.01.2016, 06:21:26 от v-v » Записан
zikkuratvk
Профи
********

Репутация: +258/-2
Offline Offline

Пол: Мужской
Сообщений: 3938


Разрабатываем для Joomla


« Ответ #11 : 09.01.2016, 13:16:59 »

для того чтоб вам кто-то помог нужна ссылка на сайт хотя бы...
Вам уже популярней не куда объяснили, что стандарная работа модуля так и делает.
Что у вас не так... врядли вам кто скажет не видя даже сайта... Это изгнание духа по фотографии))
Записан
v-v
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Сообщений: 87


« Ответ #12 : 09.01.2016, 19:47:25 »


логинюсь в модуле со страницы
http://www.site.com/ru/page.html


1) в настройках модуля включена переадресация на заданную страницу (index.php?Itemid=234)

у меня в этом случае исходный хтмл-код формы имеет вид (см.ниже) и все нормально срабатывает, после того как залогинился - отправляет на страницу index.php?Itemid=234

<form id="login-form" class="form-inline" method="post" action="/ru/page.html">

<input type="hidden" value="com_users" name="option">
<input type="hidden" value="user.login" name="task">
<input type="hidden" value="aW5kZXgucGhwP0l0ZW1pZD0yMzQ=" name="return">
<input type="hidden" value="1" name="317eb526454b88db3c24395e963d4e14">
</form>

значение value="aW5kZXgucGhwP0l0ZW1pZD0yMzQ=" соответсвует index.php?Itemid=234, отрабатывает нормально

2) в настройках модуля поле переадресации установлено "по умолчанию" , при таком раскладе после залогинивания пользователь должен остаться на той странице, с которой он логинился, т.е остаться на странице http://www.site.com/ru/page.html

у меня в этом случае исходный хтмл-код формы имеет вид (см.ниже)

<form id="login-form" class="form-inline" method="post" action="/ru/page.html">

<input type="hidden" value="com_users" name="option">
<input type="hidden" value="user.login" name="task">
<input type="hidden" value="aHR0cDovL3d3dy5zaXRlLmNvbS9ydS9wYWdlLmh0bWw=" name="return">
<input type="hidden" value="1" name="8d1b5aa7ab9e68d5c39be52a70e67771">
</form>

и в этом случае меня перебрасывает на страницу профиля пользователя index.php?option=com_users&view=profile&lang=ru

значение value="aHR0cDovL3d3dy5zaXRlLmNvbS9ydS9wYWdlLmh0bWw=" соответсвует http://www.site.com/ru/page.html, но не работает

helper.php модуля:
Показать текстовый блок
Записан
fsv
Практически профи
*******

Репутация: +330/-2
Offline Offline

Пол: Мужской
Сообщений: 2246


« Ответ #13 : 09.01.2016, 21:45:09 »

логинюсь в модуле со страницы
http://www.site.com/ru/page.html
У вас мультиязычный сайт. Не проходит проверка в модели компонента на
Код:
if (!JUri::isInternal($data['return']))
и подставляется там же ссылка на профиль.
Попробуйте в шаблон (см.выше) вместо
Код:
$return = base64_encode( JUri::getInstance()->toString() );
вставить
Код:
$curUrl = JUri::getInstance()->toString();
$curUrl = preg_replace('#/ru/#', '/', $curUrl);
// + аналогичные строки для др.языков сайта
$return = base64_encode( $curUrl );
Не проверял.
Записан
v-v
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Сообщений: 87


« Ответ #14 : 10.01.2016, 00:21:08 »

Попробуйте в шаблон (см.выше) вместо
Код:
$return = base64_encode( JUri::getInstance()->toString() );
вставить
Код:
$curUrl = JUri::getInstance()->toString();
$curUrl = preg_replace('#/ru/#', '/', $curUrl);
// + аналогичные строки для др.языков сайта
$return = base64_encode( $curUrl );
Не проверял.

попробовал, не работает, перенаправляет на страницу профиля

попробовал так:
Код:
$url = $_SERVER['REQUEST_URI'];
$curl = substr($url,3);
$return = base64_encode($curl);

тоже перенаправляет на страницу профиля

попробовал также отключить плагин фильтра языка..тоже перенаправляет на страницу профиля
« Последнее редактирование: 10.01.2016, 00:36:36 от v-v » Записан
fsv
Практически профи
*******

Репутация: +330/-2
Offline Offline

Пол: Мужской
Сообщений: 2246


« Ответ #15 : 10.01.2016, 03:15:10 »

попробовал, не работает, перенаправляет на страницу профиля
Я наугад предложил, не вникая, что есть "isInternal". Разбирайте \libraries\joomla\uri\uri.php , function isInternal , сравнивайте, чтобы true возвращало.
Записан
v-v
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Сообщений: 87


« Ответ #16 : 10.01.2016, 03:56:33 »

Я наугад предложил, не вникая, что есть "isInternal". Разбирайте \libraries\joomla\uri\uri.php , function isInternal , сравнивайте, чтобы true возвращало.

спасибо за подсказку, но мой уровень знаний в php не слишком высок
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet