实现emlog网站信息统计的代码

实现emlog网站信息统计的代码

ZJ
ZJ
2019-11-20 / 0 评论 / 242 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2019年11月20日,已超过1672天没有更新,若内容或图片失效,请留言反馈。

有时候想在网页中向访客展示emlog博客的文章数量、评论数量、运行时间等信息,但emlog后台侧边栏没有提供相关的模块,因此需要博主自主添加博客统计信息代码。下面是博客吧整理的emlog网站信息统计代码,已在emlog 5.3.x上测试可用。

调用代码:

方法一:官方缓存类统计代码。优点:加载速度快;缺点:可能信息更新不及时。

把以下代码添加到当前使用的主题模板文件中,如side.php文件:

  1. <?php $sta_cache = Cache::getInstance()->readCache('sta'); /*必须添加*/ ?>
  2. <ul>
  3. <li>文章总数:<?php echo $sta_cache['lognum']; ?> 篇</li>
  4. <li>评论总数:<?php echo $sta_cache['comnum_all']; ?> 条</li>
  5. <li>闲言碎语:<?php echo $sta_cache['twnum']; ?></li>
  6. <li>网站运行:<?php echo floor((time()-strtotime(20160423))/86400); ?> 天</li>
  7. </ul>

附:$sta_cache[‘参数’]中的参数可选如下:

  • lognum 游客可见日志总数
  • draftnum  草稿,也就是隐藏文件数量
  • comnum  未隐藏的评论数量
  • comnum_all  所有评论数量
  • hidecomnum  被隐藏的评论数量
  • twnum  微语数量
  • checknum 未审核的文章数量

方法二:自编函数,通过SQL语句查询相关数据。缺点:加载速度较缓存类慢;优点:实时显示

把下面的代码添加到主题的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. ?>

调用代码:

  1. <ul>
  2. <li>文章总数:<?php echo count_log_all();?></li>
  3. <li>置顶文章:<?php echo count_log_top();?></li>
  4. <li>隐藏文章:<?php echo count_log_hide();?></li>
  5. <li>待审文章:<?php echo count_log_check();?></li>
  6. <li>加密文章:<?php echo count_log_pass();?></li>
  7. <li>页面总数:<?php echo count_page_all();?></li>
  8. <li>评论总数:<?php echo count_com_all();?></li>
  9. <li>友链总数:<?php echo count_link_all();?></li>
  10. <li>微语评论:<?php echo count_treply_all();?></li>
  11. <li>分类总数:<?php echo count_sort_all();?></li>
  12. <li>子分类数:<?php echo count_sort_mod();?></li>
  13. <li>标签总数:<?php echo count_tag_all();?></li>
  14. <li>微语总数:<?php echo count_tw_all();?></li>
  15. <li>用户总数:<?php echo count_user_all();?></li>
  16. <li>管理员数:<?php echo count_user_admin();?></li>
  17. <li>作者总数:<?php echo count_user_writer();?></li>
  18. <li>附件总数:<?php echo count_att_all();?></li>
  19. <li>最后更新:<?php echo last_post_log();?></li>
  20. </ul>
本文共 486 个字数,平均阅读时长 ≈ 2分钟
0

评论 (0)

取消