Emlog博客统计信息添加方法详解

博客统计信息的查询有很多方法,大部分使用的是利用核心文件里面的缓存函数,还可以使用数据库查询的方法。

首先是常用速度比较快的缓存函数方法,大家可以用编辑器打开模板的 module.php 文件,在末尾加上代码:

  1. <?php
  2. // 缓存函数统计博客信息
  3. function ja_sta(){
  4. global $CACHE;
  5. $JA_STA = $CACHE->readCache(‘sta‘);
  6. $JA_STA[‘linknum‘] = count($CACHE->readCache(‘link‘));
  7. $JA_STA[‘sortnum‘] = count($CACHE->readCache(‘sort‘));
  8. $JA_STA[‘tagsnum‘] = count($CACHE->readCache(‘tags‘));
  9. $JA_STA[‘usernum‘] = count($CACHE->readCache(‘user‘));
  10. extract($JA_STA);
  11. echo "
  12. <li>游客可见文章数:$lognum 篇</li>
  13. <li>隐藏草稿:$draftnum 篇</li>
  14. <li>未审核的文章数量: $checknum 篇
  15. <li>未隐藏的评论数:$comnum 条</li>
  16. <li>被隐藏的评论数:$hidecomnum 条</li>
  17. <li>所有评论数:$comnum_all 条</li>
  18. <li>微语:$twnum 条</li>
  19. <li>友链:$linknum 个</li>
  20. <li>分类:$sortnum 个</li>
  21. <li>标签:$tagsnum 个</li>
  22. <li>作者:$usernum 人</li>
  23. ";
  24. }
  25. ?>

然后在模板的 footer.php 文件或者 side.php 文件合适的位置添加使用代码:

  1. <?php ja_sta(); ?>

另外一种方法是使用数据库查询的方法,这种方法比较准确但是加载慢一点~

同样在模板的 module.php 文件添加代码:

  1. <?php
  2. //统计文章总数
  3. function count_log_all(){
  4. $db = MySql::getInstance();
  5. $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "blog WHERE type = ‘blog‘");
  6. return $data[‘total‘];
  7. }
  8. //置顶文章数
  9. function count_log_top(){
  10. $db = MySql::getInstance();
  11. $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "blog WHERE top = ‘y‘ or sortop = ‘y‘ AND type = ‘blog‘");
  12. return $data[‘total‘];
  13. }
  14. //隐藏文章数
  15. function count_log_hide(){
  16. $db = MySql::getInstance();
  17. $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "blog WHERE hide = ‘y‘ AND type = ‘blog‘");
  18. return $data[‘total‘];
  19. }
  20. //未审核文章数
  21. function count_log_check(){
  22. $db = MySql::getInstance();
  23. $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "blog WHERE checked = ‘n‘ AND type = ‘blog‘");
  24. return $data[‘total‘];
  25. }
  26. //加密文章数
  27. function count_log_pass(){
  28. $db = MySql::getInstance();
  29. $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "blog WHERE password !=‘‘ AND type = ‘blog‘");
  30. return $data[‘total‘];
  31. }
  32. //统计页面总数
  33. function count_page_all(){
  34. $db = MySql::getInstance();
  35. $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "blog WHERE type = ‘page‘");
  36. return $data[‘total‘];
  37. }
  38. //统计评论总数
  39. function count_com_all(){
  40. $db = MySql::getInstance();
  41. $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "comment");
  42. return $data[‘total‘];
  43. }
  44. //统计友链总数
  45. function count_link_all(){
  46. $db = MySql::getInstance();
  47. $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "link");
  48. return $data[‘total‘];
  49. }
  50. //统计微语评论总数
  51. function count_treply_all(){
  52. $db = MySql::getInstance();
  53. $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "reply");
  54. return $data[‘total‘];
  55. }
  56. //统计分类总数
  57. function count_sort_all(){
  58. $db = MySql::getInstance();
  59. $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "sort");
  60. return $data[‘total‘];
  61. }
  62. //统计子分类数
  63. function count_sort_mod(){
  64. $db = MySql::getInstance();
  65. $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "sort WHERE pid != 0");
  66. return $data[‘total‘];
  67. }
  68. //统计标签总数
  69. function count_tag_all(){
  70. $db = MySql::getInstance();
  71. $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "tag");
  72. return $data[‘total‘];
  73. }
  74. //统计微语总数
  75. function count_tw_all(){
  76. $db = MySql::getInstance();
  77. $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "twitter");
  78. return $data[‘total‘];
  79. }
  80. //统计用户总数
  81. function count_user_all(){
  82. $db = MySql::getInstance();
  83. $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "user");
  84. return $data[‘total‘];
  85. }
  86. //统计管理员总数
  87. function count_user_admin(){
  88. $db = MySql::getInstance();
  89. $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "user WHERE role = ‘admin‘");
  90. return $data[‘total‘];
  91. }
  92. //统计作者总数
  93. function count_user_writer(){
  94. $db = MySql::getInstance();
  95. $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "user WHERE role = ‘writer‘");
  96. return $data[‘total‘];
  97. }
  98. //统计附件总数
  99. function count_att_all(){
  100. $db = MySql::getInstance();
  101. $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "attachment");
  102. return $data[‘total‘];
  103. }
  104. //最后发表文章时间
  105. function last_post_log(){
  106. $db = MySql::getInstance();
  107. $sql = "SELECT * FROM " . DB_PREFIX . "blog WHERE type=‘blog‘ ORDER BY date DESC LIMIT 0,1";
  108. $res = $db->query($sql);
  109. $row = $db->fetch_array($res);
  110. $date = date(‘Y-n-j H:i‘,$row[‘date‘]);
  111. return $date;
  112. };
  113. // 输出函数
  114. function echo_count_info(){
  115. echo "
  116. <li>文章总数:<?php echo count_log_all(); ?></li>
  117. <li>置顶文章数:<?php echo count_log_top(); ?></li>
  118. <li>隐藏文章数:<?php echo count_log_hide(); ?></li>
  119. <li>未审核文章数:<?php echo count_log_check(); ?></li>
  120. <li>加密文章数:<?php echo count_log_pass(); ?></li>
  121. <li>页面总数:<?php echo count_page_all(); ?></li>
  122. <li>评论总数:<?php echo count_com_all(); ?></li>
  123. <li>微语评论总数:<?php echo count_sort_all(); ?></li>
  124. <li>分类总数:<?php echo count_log_all(); ?></li>
  125. <li>子分类数:<?php echo count_sort_mod(); ?></li>
  126. <li>标签总数:<?php echo count_tag_all(); ?></li>
  127. <li>微语总数:<?php echo count_tw_all(); ?></li>
  128. <li>标签总数:<?php echo count_tag_all(); ?></li>
  129. <li>用户总数:<?php echo count_user_all(); ?></li>
  130. <li>管理员总数:<?php echo count_user_admin(); ?></li>
  131. <li>作者总数:<?php echo count_user_writer(); ?></li>
  132. <li>附件总数:<?php echo count_att_all(); ?></li>
  133. <li>最后发表文章时间:<?php echo last_post_log(); ?></li>
  134. ";
  135. }
  136. ?>

然后在模板的 footer.php或者side.php 文件添加代码:

  1. <?php echo_count_info(); ?>

大家可以根据自己需要改变文字和格式,也可以单个使用哦,如文章总数可单独使用 <?php echo count_log_all(); ?> 得到~

原文地址:https://www.cnblogs.com/pzg123/p/12004646.html

时间: 2024-08-27 14:26:16

Emlog博客统计信息添加方法详解的相关文章

转载:唐磊的个人博客《python中decorator详解》【转注:深入浅出清晰明了】

转载请注明来源:唐磊的个人博客<python中decorator详解> 前面写python的AOP解决方案时提到了decorator,这篇文章就详细的来整理下python的装饰器--decorator. python中的函数即objects 一步一步来,先了解下python中的函数. def shout(word='hello,world'):     return word.capitalize() + '!'print shout()#输出:Hello,world!#跟其他对象一样,你同样

SQL Server研究之统计信息—发现过期统计信息并处理详解

 前言: 统计信息是关于谓词中的数据分布的主要信息源,如果不知道具体的数据分布,优化器不能获得预估的数据集,从而不能统计需要返回的数据. 在创建列的统计信息后,在DML操作如insert.update.delete后,统计信息就会过时.因为这些操作更改了数据,影响了数据分布.此时需要更新统计信息. 在高活动的表中,统计信息可能几个小时就会过时.对于静态表,可能几个星期才会过时.这要视乎表上DML的操作. 从2000开始,SQLServer对增删改操作会增加在表sysindexes中的RowM

协议学习之 vamei博客系列 05 IP协议详解

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在粗略了解了IP接力和IP地址后,我们再反过来,看一看IP协议的具体细节和设计哲学. IPv4与IPv6头部的对比 我们已经在IP接力中介绍过,一个IP包分为头部(header)和数据(payload/data)两部分.头部是为了实现IP通信必须的附加信息,数据是IP通信所要传送的信息. 黄色区域 (同名区域) 我们看到,三个黄色区域跨越了IPv4和IPv6.Version(4位

如何为自己的博客文章自动添加移动版本(目前仅支持博客园)

前言 从2005年开始撰写第一篇技术博客,我也算是国内最早的一批技术博客作者之一了.其中中断过一段时间,但2008年重新启用之后,这个习惯一直保留到现在,目前已经累积的文章数量已经达到1226篇.这些文章绝大部分都是原创的,转载的有特别注明,文章内容大多是自己实际工作中遇到的问题和解决方案,或者我为企业做顾问服务.培训服务时解决的问题,我尤其喜欢在解决问题后做一点总结,并整理成一篇博客文章分享出来,一来是对思路的重新梳理,同时也希望也许日后能对其他人也有所帮助. 这些年随着移动互联网逐渐占据主流

Hexo博客maupassant主题添加Google Adsense广告

自从在 Github Page 落户以后,很长一段时间使用的是极简且有点艺术范儿的 fexo 主题,而不是大名鼎鼎的 next 主题.后来偶然发现了符合我审美的Hexo博客 maupassant 主题,准备好好经营,但是更新博客的动力不足.新的一年开始,我终于决定引入 Google Adsense ,让自己的博客显得主流一点,如果能够顺便赚些零花钱当然更好了.本文默认读者已经注册了 Adsense 账号,下面仅仅分享一下具体的设置步骤,方便自己以后备查. 从 Adsense 中下载具体广告模块代

Oracle里收集与查看统计信息的方法

Oracle数据库里的统计信息是这样的一组数据:它存储在数据字典里,且从多个维度描述了Oracle数据库里对象的详细信息.CBO会利用这些统计信息来计算目标SQL各种可能的.不同的执行路径的成本,并从中选择一条成本值最小的执行路径来作为目标SQL的执行计划. Oracle数据库里的统计信息可以分为如下6种类型: 表的统计信息 索引的统计信息 列的统计信息 系统统计信息 数据字典统计信息 内部对象统计信息 表的统计信息用于描述Oracle数据库里表的详细信息,它包含了一些典型的维度,如记录数.表块

查看登陆系统用户的信息的三种方法详解

查看登陆系统用户的信息的三种方法详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.who这个命令显示可以谁在登陆,但是这个有很多的花式玩法,这个命令超简单 语法:who [OPTION]... [ FILE | ARG1 ARG2 ] 1.参数:-u,显示闲置时间,若该用户在前一分钟之内有进行任何动作,将标示成"."号,如果该用户已超过24小时没有任何动作,则标示出"old"字符串. 例如: 2.参数:-m,此参数的效果和指定"a

throw er; // Unhandled &#39;error&#39; event,博客园内发现问题解决方法,特此记录

原帖地址http://www.cnblogs.com/liuswi/p/4030216.html throw er; // Unhandled 'error' event events.js:72 throw er; // Unhandled 'error' event ^ Error: listen EADDRINUSE at errnoException (net.js:904:11) at Server._listen2 (net.js:1042:14) at listen (net.js

Oracle 和 SQLSERVER 重新获取统计信息的方法

1. Oracle 重新获取统计信息的命令 exec dbms_stats.gather_schema_stats(ownname =>'LCoe739999',options => 'GATHER',estimate_percent => dbms_stats.auto_sample_size, method_opt => 'for all columns size repeat', degree => 4) # 需要修改 ownername options 指定 以及 d