在joomla中渲染模块

时间:2013-10-22 08:30:20

标签: joomla joomla-module

我们如何使用标题在joomla中渲染模块。因为现在,我能够根据位置渲染模块,但它不包括模块标题。

以下是我渲染模块的方法。

<?php
                    jimport('joomla.application.module.helper');
                    $modules = JModuleHelper::getModules('position-3');
                    foreach ($modules as $module) {
                        echo JModuleHelper::renderModule($module->title);
                        echo JModuleHelper::renderModule($module);
                    }
                    ?>

非常感谢。

3 个答案:

答案 0 :(得分:2)

试试这个,

使用此方法可以将参数传递给模块。

 $document = JFactory::getDocument();
 $renderer = $document->loadRenderer('module');

 $Module = JModuleHelper::getModule('mod_fmDataGrid');

 $Params = "param1=bruno\n\rparam2=chris"; //This is the way of passing params values
 $Module->params = $Params;
 echo $renderer->render($Module);

希望有所帮助......

答案 1 :(得分:1)

尝试使用以下内容:

foreach ($modules as $module)
{
    echo $module->title;
    echo JModuleHelper::renderModule($module);
}

您也可以使用以下内容,但是您必须手动输入模块标题。这只是假设您不希望它是动态的。您还需要更改 mainmenu

$module = JModuleHelper::getModule( 'mainmenu', 'Module Title Goes Here' );
echo JModuleHelper::renderModule( $module );

答案 2 :(得分:0)

试试这个。 希望这对你有用。

    $document = JFactory::getDocument();
    $renderer = $document->loadRenderer('module');
    $contents = '';
    $db = JFactory::getDBO();
    $db->setQuery("SELECT * FROM `#__modules` WHERE id = 'your module id'");
    $modules = $db->loadObjectList();
    $module = $modules[0];  
    $contents = $renderer->render($module);