从组件登录后,将用户重定向到上次访问的页面


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建议如何。
kokbira

Answers:


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 '16

@mavrosxristoforos-是的,它确实有一些缺点。更高级和可靠的解决方案将涉及使用会话或cookie的系统插件
Lodder

非常感谢您的帮助,多年来我一直在K2中使用模板替代,但是对于核心joomla来说似乎是不可能的。我确实查看了您链接中的说明,包括“创建替代”部分,但是忽略了我所做的任何更改。
Nuno Nogueira

@NunoNogueira-您打开以进行更改的文件,该路径是否与我在答案中提供的内容匹配(第二个代码段)?它应该是完全一样的,除了MY_TEMPLATE模板的名称是哪个之外
Lodder

@NunoNogueira-我弄错了路径,现在已经更新了。(移除/view/
Lodder
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.