2

我希望我的用户在成功注册 Joomla 后重定向到自定义 URL。我找不到任何选择!我怎样才能做到这一点?

4

3 回答 3

0

如果您使用 Joomla! 的内置菜单来加载注册页面,或者从登录模块到达那里,则无法重定向(这很奇怪,因为您可以在登录模块中登录后设置重定向) .

最好的起点是查看Joomla的“身份验证”部分中的现有解决方案!扩展目录。似乎列出了几个既支持旧的 1.5 样式站点又支持新的 1.7/2.5 站点的列表。

(顺便说一句,如果您仍在使用 1.7,您应该更新到最新的 2.5,因为 1.7 行中存在严重的安全问题。)

于 2012-05-07T00:15:01.147 回答
0

在您的代码集中执行以下操作;

$app=JFactory::getapplication();
$app->redirect('index.php?option=com_users&view=login'));
于 2015-08-24T08:26:24.680 回答
0

您可以使用插件来实现这一点(至少在 Joomla 3.x 中 - 不确定这将在多远的时候立即起作用)。这里的关键是 onUserAfterSave 事件,它告诉您用户是新用户还是现有用户。

我前段时间写了下面的代码,所以不记得重定向无法从 onUserAfterSave 事件处理程序中完成的确切原因,但我认为重定向随后会在核心 Joomla 用户管理代码的其他地方被覆盖,如果你尝试从那里开始,因此在会话中保存一个标志并在以后的事件处理程序中检查它。

class PlgUserSignupRedirect extends JPlugin
{
    public function onUserAfterSave($user, $isnew, $success, $msg)
    {
        $app = JFactory::getApplication();

        // If the user isn't new we don't act
        if (!$isnew) {
            return false;
        }

        $session = JFactory::getSession();
        $session->set('signupRedirect', 1);

        return true;
    }

    function onAfterRender() {
        $session = JFactory::getSession();
        if ($session->get('signupRedirect')) {
            JFactory::getApplication()->redirect('/my-post-signup-url');
            $session->clear('signupRedirect');
        }
    }
}
于 2017-08-18T23:21:00.857 回答