Joomla 2.5在我的模块中渲染内容插件

时间:2012-11-09 14:21:09

标签: php joomla joomla2.5 joomla-extensions

我想在我的模块中渲染Joomla内容插件,该怎么做?

这是我的代码

<pre>

<?php
defined( '_JEXEC' ) or die;

$db = JFactory::getDBO();   
$query = $db->getQuery(true);  
$query->select('stendas_id, stendas_lat, stendas_lon, stendas_name, stendas_description, stendas_kaire, stendas_desine')
        ->from('#__stendukai_stendai')
        ->where('published = 1');  
$db->setQuery($query);

$rows = $db->loadObjectList();

require JModuleHelper::getLayoutPath('mod_stendulist', $params->get('layout', 'default'));

</pre>

这是 default.php 文件代码

<pre>
<?php
defined( '_JEXEC' ) or die;

$document = JFactory::getDocument();

$document->addStyleSheet('http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/ui-lightness/jquery-ui.css');     
$document->addScript("http://maps.google.com/maps/api/js?sensor=false&language=en");  
$document->addScript(JURI::base() . 'modules/mod_stendulist/libs/jquery.min.js');
$document->addScript(JURI::base() . 'modules/mod_stendulist/libs/jquery-noconflict.js');
$document->addScript('http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/jquery-ui.min.js');  
$document->addScript(JURI::base() . 'modules/mod_stendulist/libs/jquery.ui.map.js');
$document->addScript(JURI::base() . 'modules/mod_stendulist/libs/frontend_map.js');
$document->addScript(JURI::base() . 'modules/mod_stendulist/libs/jquery.ui.map.services.js');
$document->addScript(JURI::base() . 'modules/mod_stendulist/libs/jquery.ui.map.extensions.js');

?>

<div id="themapstuff">
    <table class="stendu_table" border="0" cellpadding="0" cellspacing="0" height="151" width="406">
       <tbody>
         <tr><th width="33">Nr.</th><th width="115">Stendai</th><th width="74">Kairė</th><th width="74">Dešinė</th></tr>
    <?php $i=1; ?>


         <?php foreach ($rows as $row): ?>
         <tr data-gmapping='{"id":" <?php echo $row->stendas_id ?>","latlng":{"lat": <?php echo $row->stendas_lat ?>,"lng": <?php echo $row->stendas_lon ?>},"tags":" <?php echo $row->stendas_name ?>"}'>
            <td><?php echo $i++ ?></td>
            <td> <span class="title"><?php echo $row->stendas_name ?></span> 
               <div class="info-box">
                  <?php echo $row->stendas_description;?>
               </div>
            </td>
            <td><?php echo $row->stendas_kaire ?></td>
            <td><?php echo $row->stendas_desine ?></td>

         </tr>
         <?php endforeach ?>
       </tbody>
    </table>      
</div> 
</pre>

如果有可能我最喜欢在

中运行内容插件

$row->stendas_description

因为这是实际内容,其他人是id和别名。

2 个答案:

答案 0 :(得分:2)

如果将Prepare Content参数设置为true,则自定义html模块会呈现插件。

JPluginHelper::importPlugin('content');

$module->content = JHtml::_('content.prepare', $module->content, '', 'mod_custom.content');

https://github.com/joomla/joomla-cms/blob/master/modules/mod_custom/mod_custom.php#L14

答案 1 :(得分:0)

我从未测试过此扩展程序,但它可能正是您正在寻找的内容。

http://extensions.joomla.org/extensions/core-enhancements/coding-a-scripts-integration/embed-a-include/6713

即使它只显示Joomla 1.5图标,它也与Joomla 1.7兼容,因此也与2.5兼容。此扩展允许在模块中执行插件。

希望这有帮助。