我希望我的用户在成功注册Joomla后重定向到自定义URL。 我找不到任何选择! 我怎样才能做到这一点?
答案 0 :(得分:0)
如果您使用Joomla!的内置菜单加载注册页面,或者从登录模块到达那里,则无法重定向(这很奇怪,因为您可以在登录后设置重定向登录模块)。
最好的起点是查看Authentication的“Joomla! Extension Directory”部分中的现有解决方案。看来有几个列出了支持旧1.5风格的网站和新的1.7 / 2.5网站。
(顺便说一句,如果你仍然在1.7,你应该更新到最新的2.5,因为1.7行存在严重的安全问题。)
答案 1 :(得分:0)
在您的代码集中执行以下操作;
$app=JFactory::getapplication();
$app->redirect('index.php?option=com_users&view=login'));
答案 2 :(得分: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');
}
}
}