这是我的问题。。。
我有一些图片和链接,当用户点击它们时,我想加载不同的joomla模块。
意味着每个超链接可以加载另一个模块|位置
感谢所有
如果您只想从url调用模块的内容,以下答案将对您有所帮助。
如果你只想在同一页面中显示/隐藏一个模块,你可以使用类似于我之前的回答:Joomla 3根据切换在同一位置显示不同的模块
Joomla提供了通过向url的查询字符串添加tmpl=FILENAME
键/值来调用活动模板的特定文件的功能。如果用户只想加载带有组件的模板,那么所有内置模板都有一个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"));
希望这能帮助