侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

DEDECMS V5 常用统计SQL标签

框架(架构)  /  管理员 发布于 7年前   111

这两天,突然又见到论坛里求统计用代码的帖子多起来,这里发几个常用的DEDE统计SQL标签,如果还有什么其它需要的,请跟帖说明,日后继续补充……
另:希望各位提问的兄弟们,先自行搜索一下论坛,也许你的问题可以在以往的帖子里找到答案~~
·注意 dede_archives 这个前缀是默认的 请将dede改成你的数据库前缀

复制代码代码如下:
·共有文章:** 篇
{dede:sql sql="select count(ID) as c from dede_archives where channel=1"}·共有文章:[field:c /]篇{/dede:sql}
·共有图集:** 个
{dede:sql sql="select count(ID) as c from dede_archives where channel=2"}·共有图集:[field:c /]个{/dede:sql}
·共有软件:** 个
{dede:sql sql="select count(ID) as c from dede_archives where channel=3"}·共有软件:[field:c /]个{/dede:sql}
·共有评论:**条
{dede:sql sql="select count(ID) as c from dede_feedback"}·共有评论:[field:c /]条{/dede:sql}
·共有会员:**名
{dede:sql sql="select count(ID) as c from dede_member "}·共有会员:[field:c /]名{/dede:sql}
·文章阅读:** 人次
{dede:sql sql="select sum(click) as c from dede_archives"}文章阅读:[field:c /]人次{/dede:sql}
·今日更新:**篇
{dede:sql sql="SELECT count( ID ) AS c FROM dede_archives WHERE pubdate > UNIX_TIMESTAMP( CURDATE( ) ) "}今日更新:[field:c /]篇{/dede:sql}

·统计指定栏目及所有下属分支栏目内的文章数
1、修改include/inc_functions.php文件,增加函数如下:

复制代码代码如下:
function GetTotalArc($tid){
$dsql = new DedeSql(false);
$sql = TypeGetSunID($tid,$dsql);
$row = $dsql->GetOne("Select count(ID) as dd From dede_archives where {$sql}");
return $row['dd'];
}
2、调用方法,在需要修改的模板页插入如下代码(其中的3是栏目ID,根据你的实际情况修改)
{dede:field function='GetTotalArc(3)'/}

补充一点:
如果在栏目模板页面上调用,可以用这个写法,统计当前栏目内的文章数
{dede:field name='ID' function='GetTotalArc(@me)'/}

·栏目文章统计功能
使用 dedecms 的runphp 接口 编写一个 函数.利用channel标签的ID变量或得。

函数。

复制代码代码如下:
function GetChannelArticleNum($id){
if(!$id || !is_numeric($id)) return 0;
$dsql = new DedeSql();
require_once(dirname(__FILE__)."/inc_channel_unit_functions.php");
$sql = TypeGetSunID($id,$dsql);
$dsql -> SetQuery("Select count(*) as c From dede_archives where {$sql}");
$row = $dsql -> GetOne();
return $row['c'];
}

将该函数放入 inc_functions.php 中

示例调用方法.

{dede:channel type='top' row='8'} | [field:typename/] ([field:ID runphp='yes'] @me = GetChannelArticleNum(@me);[/field:ID]){/dede:channel}



效果见本站首页菜单。

改变 | [field:typename/] ([field:ID runphp='yes'] @me = GetChannelArticleNum(@me);[/field:ID]) 可获得更多形式。

如果你使用该方法没有效果,请打开 inc_typelink.php(以下是在 dedecms v3.1的情况,4.x版本请对应查看)

查找函数 function GetChannelList 体内的

if($row=$this->dsql->GetArray())
{
在 //处理同级栏目中,当前栏目的样式 上加上一行 $row['id'] = $row['ID'];

这是dedecms 里面一个奇怪的问题。 [field:ID /] 经常获得不到值,有时又是可以的,而用$row['id'] = $row['ID']; 后即可用 [field:ID /]获得, 可能是 $row['ID'] 在某个地方没打引号被作为了一个常量。。。。。。

·增加栏目文章统计功能
第一种方法:
1、 修改include/inc_arcpart_view.php文件

找到function ParseTemplet()函数
修改为:

复制代码代码如下:
function ParseTemplet()
{
if(!is_array($this->dtp->CTags)) return "";
foreach($this->dtp->CTags as $tagid=>$ctag)
{
$tagname = $ctag->GetName();
//countclass 统计栏目文章数量
if( $tagname == "countclass" ){
$tid = $ctag->GetAtt("typeid");
$row = $this->dsql->GetOne("Select count(ID) as dd From dede_archives where typeid='$tid' and arcrank<>-1");
$this->dtp->Assign($tagid,$row['dd']);
}

2、在网页上调用方法
{dede:countclass typeid=栏目编号/}
例如:
{dede:countclass typeid='2'/}

第二种方法(由 正牌执子之手339709 提供):

1、修改include/inc_functions.php文件,增加函数如下:

复制代码代码如下:
function GetTotalArc($tid){
$dsql = new DedeSql(false);
$row = $dsql->GetOne("Select count(ID) as dd From dede_archives where typeid='$tid'");
return $row['dd'];
}

2、调用方法
[field:id function='GetTotalArc(@me)'/]


  • 上一条:
    DedeCMS FTP设置的作用说明
    下一条:
    DedeCms SEO 优化全攻略
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • Filament v3.1版本发布(0个评论)
    • docker + gitea搭建一个git服务器流程步骤(0个评论)
    • websocket的三种架构方式使用优缺点浅析(0个评论)
    • ubuntu20.4系统中宿主机安装nginx服务,docker容器中安装php8.2实现运行laravel10框架网站(0个评论)
    • phpstudy_pro(小皮面板)中安装最新php8.2.9版本流程步骤(0个评论)
    • 近期文章
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2018-05
    • 2020-02
    • 2020-03
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-08
    • 2020-11
    • 2021-03
    • 2021-09
    • 2021-10
    • 2021-11
    • 2022-01
    • 2022-02
    • 2022-03
    • 2022-08
    • 2023-08
    • 2023-10
    • 2023-12
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客