这是我的问题...
我有一些图像和链接,当用户单击它们时,我想加载不同的 joomla 模块。
表示每个超链接可以加载另一个模块|位置
谢谢大家
这是我的问题...
我有一些图像和链接,当用户单击它们时,我想加载不同的 joomla 模块。
表示每个超链接可以加载另一个模块|位置
谢谢大家
如果您只想从 url 调用模块的内容,以下答案将对您有所帮助。
如果您只想在同一页面中显示/隐藏一个模块,您可以使用类似于我之前的答案的内容:Joomla 3 Show different modules on same position取决于togger
tmpl=FILENAME
Joomla 提供了通过将键/值添加到 url 的查询字符串来调用活动模板的特定文件的功能。如果用户只想加载带有组件的模板,所有内置模板都有一个 component.php 文件。您可以查看以下链接以获取更多详细信息:向组件添加打印弹出功能。
您可以执行类似的操作,仅显示您要加载的模块。您可以将 component.php 复制到一个新文件(我使用过 custom.php)并在该<body> ... </body>
部分中添加以下 php 代码。
<?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
或者,如果您想加载具有特定样式的模块,您可以将其传递给 renderModule 方法的第二个参数,例如:
echo JModuleHelper::renderModule($module, array("style" => "xhtml"));
希望这可以帮助