Redirect Joomla 3在错误登录后重定向尝试
Iam使用Joomla的登录模块。登录和注销重定向到模块设置中设置的页面 我的问题是状态,用户试图使用错误的用户凭据登录。在这种情况下,用户将被重定向到组件/用户/?视图=登录页面。在我的例子中,这个页面没有被使用,也不像其他页面那样被设计。因此,我想在错误登录后将用户重定向到上一页 有人知道怎么解决这个问题吗Redirect Joomla 3在错误登录后重定向尝试,redirect,joomla,login,Redirect,Joomla,Login,Iam使用Joomla的登录模块。登录和注销重定向到模块设置中设置的页面 我的问题是状态,用户试图使用错误的用户凭据登录。在这种情况下,用户将被重定向到组件/用户/?视图=登录页面。在我的例子中,这个页面没有被使用,也不像其他页面那样被设计。因此,我想在错误登录后将用户重定向到上一页 有人知道怎么解决这个问题吗 thx您需要修改用户控制器。但是,为了保持其“不受更新影响”,您不能修改核心代码,这就是我们将进行覆盖的原因: 转到components/com\u users/controllers/
thx您需要修改用户控制器。但是,为了保持其“不受更新影响”,您不能修改核心代码,这就是我们将进行覆盖的原因:
components/com\u users/controllers/
并复制一个名为user.php
的文件,您可以调用一个新文件user2.php
user2.php
文件并将控制器类重命名为UsersControllerUser2
templates/your_template/html/mod_login
文件夹,并在那里复制modules/mod_login/tmpl/default.php
文件
更改为
更改
$app->redirect
路由到您想要的任何位置:)最好的方法是对mod_登录模块进行模板覆盖。此链接详细介绍了如何执行此操作的细节
基本上,您可以将位于/modules/mod_login/tmpl/default_login.php的文件复制到/templates/{YOUR_TEMPLATE}/html/mod_login,只要文件名保持不变,Joomla将使用该文件呈现任何mod_登录模块
在第116行,您将看到这行代码:
<input type="hidden" name="return" value="<?php echo $return; ?>" />
在Joomla 3.6.1中,为了在错误登录后保持在同一页面中,您必须更改/components/com_users/controllers/user.php中的一行 查找: 只需评论最后一行:
// $app->redirect(JRoute::_('index.php?option=com_users&view=login', false));
仅此而已。di3sel很棒的覆盖,仍在2019年工作,在步骤3中,您可以添加:
谢谢。您有权限编辑模板代码吗?当然可以。请检查我的答案,这是行之有效的做法,应该会有所帮助。如果您有任何问题,我将非常乐意帮助您这是一个非常好的方法。问题是,无法针对登录=错误的情况编辑链接($return变量)。当我解码$return时,它会显示到正确的下一页的链接。此外,如果我尝试登录,mod_login视图将不会再次被触动,我可以在那里调整目标链接。在这种情况下,我通常通过对自定义组件端点的AJAX调用来处理用户登录,自定义组件端点实例化本地Joomla用户模型以进行身份验证和路由。是否有自定义组件可以添加专用控制器以满足此需求?如果没有,下一个最好的方法是将模板覆盖应用到com_用户登录视图,在该视图中可以使用JFactory::getApplication()->redirect()在顶部插入重定向。
// $app->redirect(JRoute::_('index.php?option=com_users&view=login', false));