2016-07-28 51 views
1

这是我的问题...如何加载joomla模块作为链接?

我有一些图像和链接,当用户点击它们时,我想加载不同的joomla模块。

意味着每个超链接可以加载其他模块|位置

感谢所有

回答

0

在情况下,你只是想打电话从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

你可以做类似的事情,只显示你想加载的模块。 您可以将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 

可选,如果你想要加载m odule与特定的风格,你可以把它像renderModule方法的第二放慢参数:

echo JModuleHelper::renderModule($module, array("style" => "xhtml")); 

希望这有助于