我正在研究jomsocial。我已经安装了"JomSocial的重定向注册"插件,用于将注册页面重定向到Jomsocial注册。我正在获得注册页面,但是一旦注册的第一步完成,页面就会重定向到登录页面,显示消息为"请先登录"。
仅当我禁用在 jomsocial 安装期间创建的菜单"Jomsocial"时,才会发生这种情况。
有没有其他方法可以将注册页面重定向到jomsocial注册。
您似乎有菜单项问题。 可能是您在 JomSocial 工具栏之外创建了一些菜单项,并且您已经为此菜单项之一(菜单项 ID 最高的菜单项)设置了隐私限制。
所以你进入注册页面,当点击下一个Joomla!从我上面提到的菜单项中获取菜单项ID...这会导致重定向到"请先登录"。只需检查您的菜单项;)
您不能禁用 jomsocial 菜单项,如果您不想显示它们,只需将它们放在新菜单中,您不会为其创建模块(或创建模块并不要将其分配给任何位置)。 这就是为什么它现在失败了。 需要这样做的函数是重定向插件中的 getMenuItem()。
接下来你会发现,访问者点击需要登录的链接将被发送到登录页面,其中包含一个&return参数,其中包含登录后应该返回的编码URL。 这不是由 jomsocial 插件处理的,只是更改是这样的:
文件插件/系统/Jomsocialredirect/Jomsocialredirect.php
/**
* Method to override Login / Logout redirect
*/
private function overrideRedirectLoginLogout() {
$mainframe =& JFactory::getApplication();
$task = JRequest::getVar ( 'task' );
switch ($task) {
case 'user.login' : //Joomla 1.6 and later
case 'login' : /* on logging */
/**
* krz This next line restores working status of login redirects.
* (the purpose of jomsocialredirect plugin is to redirect after login, but some links for guests
* point to com_login with a return url set; if this is the case, the next line makes the feature work,
* otherwise it would be overridden;
* note: redirect is to be avoided on logout.
*/
if (JRequest::getVar('return','')!='') return;
if ($this->login ()) { /* we do login by self */
/* redirect if login success */
$link = $this->getMenuLink ( $this->pluginParams->get ( 'redirect_login', 1 ) );
$mainframe->redirect ( $link, JText::_ ( $this->pluginParams->get ( 'redirect_login_msg', 'LOGIN_SUCCESSFUL' ) ), 'message' );
} else {
/* redirect if login failed */
$link = $this->getMenuLink ( $this->pluginParams->get ( 'redirect_login_failed', 1 ) );
$mainframe->redirect ( $link, JText::_ ( $this->pluginParams->get ( 'redirect_login_failed_msg', 'LOGIN_FAILED' ) ), 'notice' );
}
break;
case 'user.logout' : //Joomla 1.6 and later
case 'logout' :
$link = $this->getMenuLink ( $this->pluginParams->get ( 'redirect_logout', 1 ) );
JFactory::getApplication ()->logout ();
$mainframe->redirect ( $link, JText::_ ( $this->pluginParams->get ( 'redirect_logout_msg', 'YOU_HAVE_LOGGED_OUT' ) ), 'message' );
break;
default :
/* override redirect after login / logout */
$view = JRequest::getVar('view','');
if ($view=='profile') {
$link = $this->getMenuLink ( $this->pluginParams->get ( 'redirect_login', 1 ) );
$mainframe->redirect ( $link);
}
break;
}
}