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

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/)
Лоддер