从代码(Joomla 2.5)渲染模块在正确的位置

时间:2013-01-25 09:58:07

标签: joomla joomla2.5

在我的组件视图中,我可以通过以下代码显示模块:

$module = JModuleHelper::getModule('mod_login');
$html = JModuleHelper::renderModule($module);
echo $html;

echo JHtml::_('content.prepare', '{loadmodule login}');

但这通常会将模块置于主内容div的屏幕中间。

如何将模块置于模块参数中定义的位置?

3 个答案:

答案 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将模块渲染到正确的位置?这应该是使用它的原因之一,即照顾模块的位置和顺序。

如果您有其他理由这样做,请进一步解释。