Перенаправить пользователей на последнюю посещенную страницу после входа из компонента


8

В Joomla 3.5.1 я хочу перенаправить пользователей на страницу, на которой они находились до входа в систему.

Если они войдут из mod_login, нет проблем, поскольку модуль находится в режиме ожидания из верхнего меню, они просто останутся на этой странице.

Проблема возникает, когда пользователи входят в систему с компонента: они всегда перенаправляются на страницу профиля.

В пункте меню index.php?option=com_users&view=loginесть возможность перенаправить пользователей после входа в систему.

Но как мне сказать: " Get them back to the page they were before"?

Некоторые компоненты добавляют что-то вроде:

?return=L2YlQzMlQjNydW0tcGVyZ3VudGFzLWUtcmVzcG9zdGFzL2NvbnZlcnNhdGi9yZWFkLmh0bWw/aWQ9MjU=

На URL, запрашивая перенаправление на конкретную страницу.

Но они всегда возвращаются на страницу профиля.


they always go back to the profile page.это случается со мной, независимо от модификации, как предложил @Lodder.
Кокбира

Ответы:


7

Довольно просто сделать это.

Сначала вам нужно будет создать шаблон переопределения для следующего файла:

components/com_users/views/login/tmpl/default_login.php

После этого откройте следующий файл (переопределение):

templates/MY_TEMPLATE/html/com_users/login/default_login.php

и перейдите к строке 81, где вы увидите следующий код:

<input type="hidden" name="return" value="<?php echo base64_encode($this->params->get('login_redirect_url', $this->form->getValue('return'))); ?>" />

и заменить его на:

<input type="hidden" name="return" value="<?php echo base64_encode($_SERVER['HTTP_REFERER']); ?>" />

Надеюсь это поможет


+1 Очень хорошая идея. Я не уверен $_SERVER['HTTP_REFERER'], всегда ли правильный выбор, но мне нравится эта идея.
mavrosxristoforos

@mavrosxristoforos - Да, у него есть некоторые недостатки . Более продвинутое и надежное решение будет включать системный плагин, использующий сеанс или cookie
Lodder,

Большое спасибо за помощь, я использую переопределения шаблонов для K2 в течение многих лет, но для ядра Joomla это кажется невозможным. Я просмотрел инструкции в вашей ссылке, в том числе раздел «Создание переопределений», но все мои изменения игнорируются.
Нуно Ногейра

@NunoNogueira - Файл, который вы открываете для внесения изменений, совпадает ли путь с тем, что я указал в своем ответе (второй фрагмент кода)? Оно должно быть точно таким же, помимо того, MY_TEMPLATEчто, конечно, является названием вашего шаблона
Lodder

@NunoNogueira - я ошибся с путем, я обновил его сейчас. (удалить /view/)
Лоддер
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.