В случае, если вы просто хотите вызвать содержание соответствующего модуля из URL следующий ответ поможет вам.
Если вы просто хотите, чтобы показать/скрыть модуль в одной и той же странице вы можете использовать что-то похожее на мой предыдущий ответ: Joomla 3 Show different modules on same position depending on toggler
Joomla обеспечивает функциональные возможности для вызова определенного файла активного шаблона путем добавления tmpl=FILENAME
ключ/значение в строку запроса url. Все встроенные шаблоны имеют файл component.php, если пользователь хочет загрузить шаблон только с помощью компонента. Вы можете проверить следующую ссылку для получения более подробной информации: Adding print pop-up functionality to a component.
Вы можете сделать что-то похожее только на отображение модулей, которые вы хотите загрузить. Вы можете скопировать компонент.php в новый файл (я использовал custom.php) и добавил следующий код php в части <body> ... </body>
.
<?php
$jinput = JFactory::getApplication()->input;
$selectedPosition = $jinput->getString("position", "");
$selectedModule = $jinput->getString("module", "");
$selectedModuleTitle = $jinput->getString("title");
if($selectedPosition !== "") {
$modules = JModuleHelper::getModules($selectedPosition);
foreach ($modules as $module) {
echo JModuleHelper::renderModule($module);
}
} elseif ($selectedModule !== "") {
$module = JModuleHelper::getModule($selectedModule, $selectedModuleTitle);
echo JModuleHelper::renderModule($module);
}
?>
Так с аналогичным способом, как loadposition/loadmodule работ можно назвать новый файл шаблона с помощью:
index.php?tmpl=custom&position=MODULE_POSITION
или
index.php?tmpl=custom&module=MODULE_TYPE
или
index.php?tmpl=custom&module=MODULE_TYPE&title=MODULE_TITLE
Необязательно, если вам хотите загрузить m МОДУЛЬ с определенным стилем, вы могли бы передать его на второй из параметра Я метода renderModule как:
echo JModuleHelper::renderModule($module, array("style" => "xhtml"));
Надеется, что это помогает