在我的组件视图中,我可以通过以下代码显示模块:
$module = JModuleHelper::getModule('mod_login');
$html = JModuleHelper::renderModule($module);
echo $html;
或
echo JHtml::_('content.prepare', '{loadmodule login}');
但这通常会将模块置于主内容div的屏幕中间。
如何将模块置于模块参数中定义的位置?
答案 0 :(得分:1)
查看管理模板Isis如何在主页上呈现quickicons模块,或者如何在protostar中呈现搜索模块的错误页面。
$this->searchmodules = JModuleHelper::getModules('position-0');
foreach ($this->searchmodules as $searchmodule)
{
$output = JModuleHelper::renderModule($searchmodule, array('style' => 'none'));
$params = new JRegistry;
$params->loadString($searchmodule->params);
echo $output;
}
你只需要一个模块,但是你得到了基本的想法。
答案 1 :(得分:0)
试试这个。
您也可以传递模块参数。
$document = &JFactory::getDocument();
$renderer = $document->loadRenderer('module');
$Module = &JModuleHelper::getModule('mod_fmDataGrid');
$Params = "param1=bruno\n\rparam2=chris";
$Module->params = $Params;
echo $renderer->render($Module);
这可能对你有帮助..
答案 2 :(得分:0)
您不能,在组件生成其输出后处理模板中的jdoc包含。
为什么不让Joomla将模块渲染到正确的位置?这应该是使用它的原因之一,即照顾模块的位置和顺序。
如果您有其他理由这样做,请进一步解释。