Joomla加载模块在额外的地方?

时间:2013-10-22 21:23:52

标签: joomla joomla-k2 joomla-module

在我的k2页面上,我需要在顶部区域完成模块,无法进行模块分配,因为页面是动态选择的数据库。所以我安装了一个像“loadmodule”这样的模块,区别很简单我可以获得具有特定id的模块。

例如: {loadmodulefromarticle | 97} 如果我在额外的字段或内容区域中使用它,那么它可以工作,但是如我所知,我需要它在我的页面的顶部区域,所以我有一个if请求并尝试在顶部加载k2内容。我得到了内容,没关系。但我在这里只看到纯文本,并且没有加载模块。我的问题是,在这里插入什么以便我加载模块?我认为它可以是 $ result;

<?php
    $menuID = JSite::getMenu()->getActive()->id ;

    if ($menuID == '713') {

        $db = JFactory::getDbo();
        $query = $db->getQuery(true);
        $query->select('introtext');
        $query->from('#__k2_items');
        $query->where('id = ' . JRequest::getInt('id'));
        $db->setQuery($query);
        $result = $db->loadResult();
?>
                <div id="gkHeaderMod">
                    <div><?php echo $result; ?></div>
                </div>
<?php
}
?>

1 个答案:

答案 0 :(得分:0)

您可以执行以下操作。它使用Joomla编码标准获取菜单ID,renderModule显示模块。

<?php
  $app   = JFactory::getApplication();
  $menuID   = $app->getMenu()->getActive()->id;

  if ( $menuID == '713' ) {
        $db = JFactory::getDbo();
        $query = $db->getQuery(true)
         ->select('introtext')
         ->from('#__k2_items')
         ->where('id = ' . JRequest::getInt('id'));
        $db->setQuery($query);
        $result = $db->loadResult();

        echo '<div id="gkHeaderMod">';
        $module = JModuleHelper::getModule( 'mod_example', 'Module Title' );
        echo JModuleHelper::renderModule( $module );
        echo '</div>';
  }   
?>

请注意,您必须将 mod_example 模块标题更改为您需要的任何内容