Php 在Joomla中成功注册后将用户重定向到自定义URL
我希望我的用户在成功注册Joomla后重定向到自定义URL。 我找不到任何选择!Php 在Joomla中成功注册后将用户重定向到自定义URL,php,joomla,joomla1.5,joomla1.7,Php,Joomla,Joomla1.5,Joomla1.7,我希望我的用户在成功注册Joomla后重定向到自定义URL。 我找不到任何选择! 我怎样才能做到这一点呢?如果您使用的是Joomla!”的内置菜单加载注册页面,或者从登录模块到达注册页面时,无法重定向(这很奇怪,因为您可以在登录模块中登录后设置重定向) 最好的出发点是查看本手册“”部分中的现有解决方案。似乎列出了几个既支持旧的1.5样式站点又支持新的1.7/2.5样式站点的站点 (顺便说一下,如果您仍然使用1.7,您应该更新到最新的2.5,因为1.7行中存在严重的安全问题。)如果您使用的是Joo
我怎样才能做到这一点呢?如果您使用的是Joomla!”的内置菜单加载注册页面,或者从登录模块到达注册页面时,无法重定向(这很奇怪,因为您可以在登录模块中登录后设置重定向) 最好的出发点是查看本手册“”部分中的现有解决方案。似乎列出了几个既支持旧的1.5样式站点又支持新的1.7/2.5样式站点的站点
(顺便说一下,如果您仍然使用1.7,您应该更新到最新的2.5,因为1.7行中存在严重的安全问题。)如果您使用的是Joomla的内置菜单加载注册页面,或者从登录模块到达注册页面时,无法重定向(这很奇怪,因为您可以在登录模块中登录后设置重定向) 最好的出发点是查看本手册“”部分中的现有解决方案。似乎列出了几个既支持旧的1.5样式站点又支持新的1.7/2.5样式站点的站点
(顺便说一句,如果您仍然使用1.7,您应该更新到最新的2.5,因为1.7行中存在严重的安全问题。)在代码集中执行以下操作:
$app=JFactory::getapplication();
$app->redirect('index.php?option=com_users&view=login'));
在代码集中执行以下操作:
$app=JFactory::getapplication();
$app->redirect('index.php?option=com_users&view=login'));
你可以通过一个插件来实现这一点(至少在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');
}
}
}
你可以通过一个插件来实现这一点(至少在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');
}
}
}