这是我的问题......
我有一些图像和链接,我想在用户点击它们时加载不同的joomla模块。
表示每个超链接都可以加载另一个模块位置
感谢所有
答案 0 :(得分:0)
如果您只想从网址调用模块的内容,以下答案将对您有所帮助。
如果您只是想在同一页面中显示/隐藏模块,您可以使用与我之前的答案类似的内容: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。
您可以执行类似的操作,仅显示要加载的模块。
您可以将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"));
希望这有帮助