仅在模式中加载注册组件

时间:2018-06-07 17:00:05

标签: joomla joomla3.0

我需要能够在模块中显示com_users组件的注册部分。重定向到注册不是一个选项(设计要求。)我找到了JComponentHelper,但文档似乎缺乏给我足够的信息来解决问题。

$component = JComponentHelper::getComponent('com_users');

我已经创建了一个基本模块来完成这项工作,但我现在没有运气。帮助

编辑:

我设法让它在某种程度上显示表单,但不完全正确。在主页上,代码显示在任何标题输出之前。如果我转到子页面,表单实际上会在页面上显示我想要的位置。这可能不是解决问题的正确途径。

这是我目前测试模块的default.php。

$view = JRequest::getCmd('view',null);
$layout = JRequest::getCmd('layout',null);
$task   = JRequest::getCmd('task',null);

JRequest::setVar('view', 'registration');
JRequest::setVar('layout', 'default');
JRequest::setVar('task', 'display');

$lang = JFactory::getLanguage();
$lang->load('com_users', JPATH_ADMINISTRATOR);

if (!class_exists('UsersController')) {
    require_once (JPATH_ADMINISTRATOR .DS. 'components' .DS. 'com_users'.DS. 'controller.php');
}
$controller = new UsersController();
$controller->execute('register');
//$controller->redirect();

// revert system vars to previous state
if ($view != null) {
    JRequest::setVar('view', $view);
}

if ($layout != null) {
    JRequest::setVar('layout', $layout);
}

if ($task != null) {
    JRequest::setVar('task', $task);
}

1 个答案:

答案 0 :(得分:0)

在澄清之后,我知道您希望注册表格以模式打开,从您的注册模块开始。

因此,首先可以复制常规joomla mod_login。 然后,在布局中,添加将包含注册表单的bootstrap模式(它可以是自定义的)。

然后,对于注册表单本身,不要发布到com_users,而是使用com_ajax发回给你的模块helper.php。一旦你的模块helper.php进行了注册,你就可以显示一个自定义布局,它将在模态中显示结果。

请参阅:https://docs.joomla.org/Using_Joomla_Ajax_Interface#Module_Support