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

  • 16 Ответов
  • 689 Просмотров

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

*

spirit1086

  • Осваиваюсь на форуме
  • ***
  • 120
  • 1
Модуль авторизации
« : 05.01.2016, 15:19:36 »
Здравствуйте, подскажите можно ли в  модуле авторизации Joomla сделать не изменяя системные файлы Joomla, редирект после авторизации на текущую страницу. В модуле видел только что нужный пункт меню выбрать, а мне нужно чтобы после авторизации оставался на текущей странице где произошла авторизация.

*

fsv

  • Практически профи
  • *******
  • 2506
  • 367
Re: Модуль авторизации
« Ответ #1 : 05.01.2016, 18:02:06 »
Переопределите шаблон модуля авторизации.
В этом шаблоне после стр.12
Код: php
require_once JPATH_SITE . '/components/com_users/helpers/route.php';
добавьте
Код: php
$return = base64_encode( JUri::getInstance()->toString() );
не проверял.
Заказать разработку:    расширения Joomla  |   интерфейсы на javascript(jQuery)  |  мобильные приложения

*

spirit1086

  • Осваиваюсь на форуме
  • ***
  • 120
  • 1
Re: Модуль авторизации
« Ответ #2 : 05.01.2016, 22:40:57 »
Этот придется править компонент не понял? при обновлении Joomla затерется же?

*

fsv

  • Практически профи
  • *******
  • 2506
  • 367
Re: Модуль авторизации
« Ответ #3 : 05.01.2016, 23:41:30 »
Этот придется править компонент не понял?
Переопределите шаблон модуля авторизации.

при обновлении Joomla затерется же?
Переопределите шаблон модуля авторизации.
Заказать разработку:    расширения Joomla  |   интерфейсы на javascript(jQuery)  |  мобильные приложения

*

spirit1086

  • Осваиваюсь на форуме
  • ***
  • 120
  • 1
Re: Модуль авторизации
« Ответ #4 : 06.01.2016, 01:20:13 »
тьфу точно спасибо большое в самом низу есть же скрытое поле $return )) плюсанул!

*

v-v

  • Осваиваюсь на форуме
  • ***
  • 87
  • 3
Re: Модуль авторизации
« Ответ #5 : 08.01.2016, 19:43:33 »
у меня данный способ не работает

*

zikkuratvk

  • Профи
  • ********
  • 4029
  • 268
  • Разрабатываем для Joomla
Re: Модуль авторизации
« Ответ #6 : 08.01.2016, 19:50:45 »
О госпади то... не выбирайте ничего о редиректах в модуле... и будет вам счастье редиректа на страницу с которой вы начали авторизацию
Хочется уникальное расширение? ===>>>> JoomLine - Разрабатываем расширения под заказ.
Использую хостинг TimeWeb и Reg

*

v-v

  • Осваиваюсь на форуме
  • ***
  • 87
  • 3
Re: Модуль авторизации
« Ответ #7 : 08.01.2016, 19:59:15 »
О госпади то... не выбирайте ничего о редиректах в модуле... и будет вам счастье редиректа на страницу с которой вы начали авторизацию

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

*

zikkuratvk

  • Профи
  • ********
  • 4029
  • 268
  • Разрабатываем для Joomla
Re: Модуль авторизации
« Ответ #8 : 08.01.2016, 20:10:09 »
ничего не выбирал! редиректит само на страницу профиля
Не могут же все ошибаться :-) http://joxi.ru/8AnxeGJSqo0yXm
Либо у вас модуль авторизации не стандартный Joomla либо кем-то переделанный.
Хочется уникальное расширение? ===>>>> JoomLine - Разрабатываем расширения под заказ.
Использую хостинг TimeWeb и Reg

*

v-v

  • Осваиваюсь на форуме
  • ***
  • 87
  • 3
Re: Модуль авторизации
« Ответ #9 : 08.01.2016, 20:20:39 »
Не могут же все ошибаться :-) http://joxi.ru/8AnxeGJSqo0yXm
Либо у вас модуль авторизации не стандартный Joomla либо кем-то переделанный.

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

*

v-v

  • Осваиваюсь на форуме
  • ***
  • 87
  • 3
Re: Модуль авторизации
« Ответ #10 : 09.01.2016, 06:52:06 »
неужели никто не подскажет в чем может быть причина. Модуль стандартный джумловский, Joomla! 3.4.8, пробовал работу модуля на дефолтных джумловских шаблонах - $return на ту страницу, откуда залогинились, не работает - кидает на страницу профайла
« Последнее редактирование: 09.01.2016, 07:21:26 от v-v »

*

zikkuratvk

  • Профи
  • ********
  • 4029
  • 268
  • Разрабатываем для Joomla
Re: Модуль авторизации
« Ответ #11 : 09.01.2016, 14:16:59 »
для того чтоб вам кто-то помог нужна ссылка на сайт хотя бы...
Вам уже популярней не куда объяснили, что стандарная работа модуля так и делает.
Что у вас не так... врядли вам кто скажет не видя даже сайта... Это изгнание духа по фотографии))
Хочется уникальное расширение? ===>>>> JoomLine - Разрабатываем расширения под заказ.
Использую хостинг TimeWeb и Reg

*

v-v

  • Осваиваюсь на форуме
  • ***
  • 87
  • 3
Re: Модуль авторизации
« Ответ #12 : 09.01.2016, 20: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

  • Практически профи
  • *******
  • 2506
  • 367
Re: Модуль авторизации
« Ответ #13 : 09.01.2016, 22: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 );
Не проверял.
Заказать разработку:    расширения Joomla  |   интерфейсы на javascript(jQuery)  |  мобильные приложения

*

v-v

  • Осваиваюсь на форуме
  • ***
  • 87
  • 3
Re: Модуль авторизации
« Ответ #14 : 10.01.2016, 01: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, 01:36:36 от v-v »

*

fsv

  • Практически профи
  • *******
  • 2506
  • 367
Re: Модуль авторизации
« Ответ #15 : 10.01.2016, 04:15:10 »
попробовал, не работает, перенаправляет на страницу профиля
Я наугад предложил, не вникая, что есть "isInternal". Разбирайте \libraries\joomla\uri\uri.php , function isInternal , сравнивайте, чтобы true возвращало.
Заказать разработку:    расширения Joomla  |   интерфейсы на javascript(jQuery)  |  мобильные приложения

*

v-v

  • Осваиваюсь на форуме
  • ***
  • 87
  • 3
Re: Модуль авторизации
« Ответ #16 : 10.01.2016, 04:56:33 »
Я наугад предложил, не вникая, что есть "isInternal". Разбирайте \libraries\joomla\uri\uri.php , function isInternal , сравнивайте, чтобы true возвращало.

спасибо за подсказку, но мой уровень знаний в php не слишком высок