首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以将$db = JFactory::getDBO();放在Joomla模板本身中吗?

可以将$db = JFactory::getDBO();放在Joomla模板本身中吗?
EN

Stack Overflow用户
提问于 2012-12-03 14:42:45
回答 2查看 1.2K关注 0票数 2

我是Joomla的新手,我在EasyBlog组件上工作,我想创建一个类别列表作为菜单,并添加一个类到当前活动的菜单站点。为此,我必须连接到数据库并使用$db = JFactory::getDBO();获取类别id

我的问题是,可以在我的网站的index.php模板上使用$db = JFactory::getDBO();来获取ID吗?

这是我当前的脚本。

代码语言:javascript
复制
$view   = JRequest::getCmd('view');
$temp   = JRequest::getString('id');

if ($view == 'entry' or $view == 'tags' or $view == 'archive' or $view == 'blogger' or $view == 'teamblog') {

    $db = JFactory::getDBO();
    $option   = JRequest::getCmd('option');
    $temp   = explode(':', $temp);
    $id   = $temp[0];
        if ($option == 'com_easyblog' && $view == 'entry' && $id)
        { $db->setQuery('SELECT category_id FROM #__easyblog_post WHERE id='.$id);
        $category_id = $db->loadResult(); //this is current article’s category ID
        }
    //echo $category_id; //show it
     $cat_id = $category_id;

    }
    else{
     $cat_id = $temp;
    }
EN

回答 2

Stack Overflow用户

发布于 2013-01-26 07:10:30

这真的不太好。但是如果你使用页面级缓存,它应该可以工作:

确保缓存插件已启用,然后切换到调试模式,并点击页面两次。

在第二次加载时,您应该看不到列出的查询。

如果是这样的话,你可以保留它。

如果查询仍然在那里,这意味着它没有被缓存,您正在减慢您的网站。

票数 0
EN

Stack Overflow用户

发布于 2014-01-13 23:36:37

这不是正确的解决方案,但它实际上解决了问题。

然而,你有其他更好的解决方案(在我看来):

1:使用插件:如果您需要在每个页面上使用此菜单,并希望在模板中轻松显示它,建议您使用此插件。有关插件触发,请参阅http://docs.joomla.org/Triggering_content_plugins_in_your_extension。检查任何简单插件的代码,看看如何编写这个插件。插件基本上就是你可以在任何地方使用的功能。你可以在插件中添加静态变量并缓存cat_id,然后你就可以在站点上的任何地方使用它,代码永远不会执行两次。它将从模板中删除所有的“控制器和模块”逻辑。你甚至不需要使用普通的触发器,你可以只执行静态函数,因为类将在程序启动时定义。

2:推荐此解决方案。创建模块。在这种情况下,您可以轻松地缓存所有资源,并且不需要创建逻辑来将其分配给选项(当然,您可以使用itemid完成此操作)。当然,在这种情况下,你还需要添加创建菜单项的完整代码,如果没有,你必须将其推送到全局范围,这也不是一个很好的解决方案。

3:模板覆盖。我不确定它是否适用于这种情况,但您可以始终使用模板覆盖http://docs.joomla.org/How_to_override_the_output_from_the_Joomla!_core。在这种情况下,你可以去掉主模板中的整个代码,只把它留在组件模板中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13678376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档