Redirect Joomla 3在错误登录后重定向尝试

Redirect Joomla 3在错误登录后重定向尝试,redirect,joomla,login,Redirect,Joomla,Login,Iam使用Joomla的登录模块。登录和注销重定向到模块设置中设置的页面 我的问题是状态,用户试图使用错误的用户凭据登录。在这种情况下,用户将被重定向到组件/用户/?视图=登录页面。在我的例子中,这个页面没有被使用,也不像其他页面那样被设计。因此,我想在错误登录后将用户重定向到上一页 有人知道怎么解决这个问题吗 thx您需要修改用户控制器。但是,为了保持其“不受更新影响”,您不能修改核心代码,这就是我们将进行覆盖的原因: 转到components/com\u users/controllers/

Iam使用Joomla的登录模块。登录和注销重定向到模块设置中设置的页面

我的问题是状态,用户试图使用错误的用户凭据登录。在这种情况下,用户将被重定向到组件/用户/?视图=登录页面。在我的例子中,这个页面没有被使用,也不像其他页面那样被设计。因此,我想在错误登录后将用户重定向到上一页

有人知道怎么解决这个问题吗


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
    文件
  • 打开在步骤3中创建的文件,并将登录模块任务从
    更改为
  • 再次打开user2.php文件,修改这部分代码(第77-82行):
  • $app->redirect(JRoute::(('index.php?option=com\u users&view=login'), 假),


    更改
    $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中,您可以添加:

  • 为您的登录模块创建一个模板覆盖(以使其也具有更新证明),创建一个templates/your_template/html/mod_login文件夹,并将modules/mod_login/tmpl/default.php文件复制到其中,文件名为altlogin.php

  • 在“管理”区域中,打开yout mod_login,在“高级”选项卡中找到“演示文稿”,然后从模板中选择在步骤3“altlogin”中创建的视图


  • 谢谢。

    您有权限编辑模板代码吗?当然可以。请检查我的答案,这是行之有效的做法,应该会有所帮助。如果您有任何问题,我将非常乐意帮助您这是一个非常好的方法。问题是,无法针对登录=错误的情况编辑链接($return变量)。当我解码$return时,它会显示到正确的下一页的链接。此外,如果我尝试登录,mod_login视图将不会再次被触动,我可以在那里调整目标链接。在这种情况下,我通常通过对自定义组件端点的AJAX调用来处理用户登录,自定义组件端点实例化本地Joomla用户模型以进行身份验证和路由。是否有自定义组件可以添加专用控制器以满足此需求?如果没有,下一个最好的方法是将模板覆盖应用到com_用户登录视图,在该视图中可以使用JFactory::getApplication()->redirect()在顶部插入重定向。
            // $app->redirect(JRoute::_('index.php?option=com_users&view=login', false));