【问题标题】:Joomla load module on extra place?Joomla 在额外的地方加载模块?
【发布时间】:2013-10-31 23:01:22
【问题描述】:

在我的 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
}
?>

【问题讨论】:

  • 您的编码是从 K2 数据库表中获取内容,但是显示模块的代码在哪里?
  • 代码是存储在“introtext”字段中的占位符,我在前端以纯文本形式获取此代码,我只看到:“{loadmodulefromarticle|113}”
  • 啊,我明白了。为什么不使用 JModuleHelper::renderModule() ?另外我会使用 Joomla 2.5+ 编码标准来获取菜单 ID
  • 我是 joomla 开发的新手。我可以在我的代码中实现它吗?

标签: joomla joomla-k2 joomla-module


【解决方案1】:

您可以执行以下操作。它使用 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_exampleModule Title 更改为您需要的任何内容

【讨论】:

  • 我能在这里说吗,模块:mod_image_show_gk4,id 为 113,因为我有更多来自 mod_image_show_gk4 的模块
  • 我有点困惑。那是一个问题吗?请解释
  • 如果我使用占位符 {loadmodule header_fix} 所以我从这个位置获取所有模块,我已经安装了一个插件,我可以在其中说 {loadmodulefromarticle|30} 并获得具有此 ID 的模块,我也可以在 1 个位置有更多模块,只获得我需要的模块。如果我在 k2 的额外字段或内容中使用此代码,我得到模块,没关系,通过此代码,具有特定 id 的模块不会被加载,我只看到 placin 文本“{loadmodulefromarticle|30}”
  • 在您的文章中使用占位符 {loadmodulefromarticle|30} 然后从数据库查询中回显我们的内容是行不通的。插件不能那样工作
  • 对不起,但最后一个问题,存在任何加载特定模块的方法,所以我需要什么?否则我必须使用绝对位置...
猜你喜欢
  • 2012-10-18
  • 2014-01-06
  • 2011-04-15
  • 1970-01-01
  • 2014-04-10
  • 1970-01-01
  • 1970-01-01
  • 2011-04-08
  • 1970-01-01
相关资源
最近更新 更多