您好,欢迎来到菜鸟吧源码网(www.cniao8.com)本站只做精品网站源码!
  • 首 页
  • 菜鸟云
  • 公告:本站资源均来源于互联网及会员投稿发布,所有资源仅供学习参考研究使用,请勿商用或其它非法用途,商用请购买正版,否则产生一切后果由用户自行承担!谢谢!

     

    当前位置:主页 > 站长学堂 > dede教程 >
    织梦获取当前栏目及所有子栏目的文章数量
    时间:2020-07-31 21:00 作者:菜鸟吧 浏览:收藏 挑错 打印

    织梦DEDEV5起,加强了对SQL注入和安全的检查,导致无法查询一些正常的子查询的SQL。以下代码用来解决查询当前栏目及当前栏目下所有子栏目的文章总数,添加到/include/common.func.php

    或者

    /include/extend.func.php中,然后在模板中调用getTotalArcByTid(1)。

    代码如下:

    01返回符合记录的文章数量
    02* @description DEDE不允许执行子查询,解决栏目下文章统计的问题
    03* @param $level 为真时查询所有子类目www.dede58.com<a href="http://www.dede58.com/"target="_blank"><u>织梦模板</u></a>下载
    04* */
    05functiongetTotalArcByTid($tid, $level=TRUE) {
    06global $dsql;
    07$level==TRUE && $tid = GetSonTypeID($tid);
    08$sql = "SELECT count(id) as total from `dede_archives` where typeid in($tid)";
    09$result = $dsql->GetOne($sql);
    10return$result['total'];
    11}
    12/*
    13* 递归获取符合条件的子栏目
    14* @param $tid 栏目ID
    15* @returnstring
    16* */
    17functionGetSonTypeID($tid)
    18{
    19global $dsql;
    20$dsql->SetQuery("Select id From `dede_arctype` where reid in($tid) And ishidden<>1 order by sortrank");
    21$dsql->Execute($tid);
    22$typeid = '';
    23while($row=$dsql->GetObject($tid))
    24{
    25$typeid .= "{$row->id},";
    26$typeid .= GetSonTypeID($row->id);
    27}
    28returntrim($typeid,',');
    29}


    模板中调用的方法一般为:调用方法:

    {dede:field.typeid function="getTotalArcByTid(@me)"/}

    或者

    [field:typeid function="getTotalArcByTid(@me)"/]

    郑重声明:
    本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
    我们不承担任何技术及版权问题,且不对任何资源负法律责任。
    如无法下载,联系站长索要。
    如有侵犯您的版权,请给我们来信:admin@cniao8.com,我们尽快处理。

    织梦中{dede:channel}无法调用隐藏栏目解决方法织梦中{dede:channel}无法调用隐藏栏目
    DEDECMS批量导入excel数据到后台文章系统的开发教程DEDECMS批量导入excel数据到后台文章系
    织梦58织梦模板加固版教程详解织梦58织梦模板加固版教程详解