Загрузка только компонента регистрации в модале - PullRequest
0 голосов
/ 07 июня 2018

Мне нужно иметь возможность отображать регистрационную часть компонента 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 голосов
/ 10 июня 2018

После разъяснения я понимаю, что вы хотите, чтобы регистрационная форма открывалась в модальном порядке из вашего регистрационного модуля.

Итак, во-первых, возможно, скопировать обычный joomla mod_login.Затем в макете добавьте модал начальной загрузки, который будет содержать регистрационную форму (она может быть индивидуальной).

Тогда, для самой формы регистрации, не пишите в com_users, а вместо этого используйте com_ajax для отправки обратно в ваш модуль helper.php.Как только ваш модуль helper.php выполнит регистрацию, вы можете отобразить пользовательский макет, который будет отображать результат в модальном режиме.

см .: https://docs.joomla.org/Using_Joomla_Ajax_Interface#Module_Support

...