如何加载一个joomla模块作为链接



这是我的问题。。。

我有一些图片和链接,当用户点击它们时,我想加载不同的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"));

希望这能帮助

最新更新