【问题标题】:Render module in the right position from code (Joomla 2.5)从代码中将模块渲染到正确的位置(Joomla 2.5)
【发布时间】:2013-01-09 06:33:10
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: joomla joomla2.5


    【解决方案1】:

    试试这个。

    你也可以传递模块参数。

       $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】:

      你不能,模板中包含的 jdoc 是在组件完成输出后处理的。

      为什么不让 Joomla 将模块呈现在正确的位置?这应该是使用它的原因之一,即注意模块的放置和顺序。

      如果您有其他原因,请进一步说明。

      【讨论】:

        【解决方案3】:

        看看管理模板 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;
                        }
        

        您只需要一个模块,但您了解基本概念。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-12-04
          • 1970-01-01
          • 1970-01-01
          • 2012-12-16
          • 2013-04-16
          相关资源
          最近更新 更多