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

chen'mo
2021-06-04 / 0 评论 / 12,071 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2021年06月05日,已超过1300天没有更新,若内容或图片失效,请留言反馈。

前言:

有时候想在网页中向访客展示[Emlog]个人博客的文章数量、评论数量、运行[时间]等信息

但[emlog]后台侧边栏没有提供相关的模块,因此需要[站]长自主添加个人博客统计信息代码

下面是整理的Emlog[网站信息统计]代码,已在emlog 5.3.1+上测试可用,[最新版]6.0.1也是可以用的

正文:

方法一

利用Emlog官方缓存类统计代码

优点:加载速度快

缺点:可能信息[更新]不及时

把以下代码添加到当前使用的主题模板文件中,无陌然建议放在侧边栏side.php文件底部

<?php $sta_cache = Cache::getInstance()->readCache('sta'); ?>
<li>日志数量:<?php echo $sta_cache['lognum']; ?></li>
<li>评论数量:<?php echo $sta_cache['comnum']; ?></li>
<li>微语数量:<?php echo $sta_cache['tbnum']; ?></li>
<li>运行时间:<?php echo floor((time()-strtotime("2018-04-04"))/86400); ?>天</li>

这里解释一下代码:
$sta_cache[‘参数’]中的参数可选如下
lognum 游客可见日志总数
comnum  未隐藏的评论数量
tbnum  微语数量

方法二

自编函数通过SQL语句查询相关数据

优点:实时显示

缺点:加载速度较缓存类慢
博客用过该代码,后期直接莫名其妙[数据库]出错,不太建议使用)

把下面的代码添加到模版文件下的module.php文件中

<?php
    //统计文章总数
    function count_log_all(){
        $db = MySql::getInstance();
        $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "blog WHERE type = 'blog'");
        return $data['total'];
    }

    //置顶文章数
    function count_log_top(){
        $db = MySql::getInstance();
        $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "blog WHERE  top = 'y' or [sort](http://uqseo.com/tag/sort)op = 'y' AND type = 'blog'");
        return $data['total'];
    }
    //隐藏文章数
    function count_log_hide(){
        $db = MySql::getInstance();
        $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "blog WHERE hide = 'y' AND type = 'blog'");
        return $data['total'];
    }

    //未审核文章数
    function count_log_check(){
        $db = MySql::getInstance();
        $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "blog WHERE checked = 'n' AND type = 'blog'");
        return $data['total'];
    }

    //加密文章数
    function count_log_pass(){
        $db = MySql::getInstance();
        $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "blog WHERE  password !='' AND type = 'blog'");
        return $data['total'];
    }

    //统计[页面](http://aidezy.com/?s=%E9%A1%B5%E9%9D%A2)总数
    function count_page_all(){
        $db = MySql::getInstance();
        $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "blog WHERE type = 'page'");
        return $data['total'];
    }

    //统计评论总数
    function count_com_all(){
        $db = MySql::getInstance();
        $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "comment");
        return $data['total'];
    }
    //统计友链总数
    function count_link_all(){
        $db = MySql::getInstance();
        $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "link");
        return $data['total'];
    }

    //统计微语评论总数
    function count_treply_all(){
        $db = MySql::getInstance();
        $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "reply");
        return $data['total'];
    }

    //统计分类总数
    function count_sort_all(){
        $db = MySql::getInstance();
        $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "sort");
        return $data['total'];
    }

    //统计子分类数
    function count_sort_mod(){
        $db = MySql::getInstance();
        $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "sort WHERE pid != 0");
        return $data['total'];
    }

    //统计[标签](http://aidezy.com/?s=%E6%A0%87%E7%AD%BE)总数
    function count_tag_all(){
        $db = MySql::getInstance();
        $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "tag");
        return $data['total'];
    }

    //统计微语总数
    function count_tw_all(){
        $db = MySql::getInstance();
        $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "twitter");
        return $data['total'];
    }

    //统计[用户](http://aidezy.com/?s=%E7%94%A8%E6%88%B7)总数
    function count_user_all(){
        $db = MySql::getInstance();
        $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "user");
        return $data['total'];
    }

    //统计管理员总数
    function count_user_admin(){
        $db = MySql::getInstance();
        $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "user WHERE role = 'admin'");
        return $data['total'];
    }

    //统计作者总数
    function count_user_writer(){
        $db = MySql::getInstance();
        $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "user WHERE role = 'writer'");
        return $data['total'];
    }

    //统计附件总数
    function count_att_all(){
        $db = MySql::getInstance();
        $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "attachment");
        return $data['total'];
    }

    //最后发表文章时间 
    function last_post_log(){
        $db = MySql::getInstance();
        $sql = "SELECT * FROM " . DB_PREFIX . "blog WHERE type='blog' ORDER BY date DESC LIMIT 0,1";
        $res = $db->query($sql);
        $row = $db->fetch_array($res);
        $date = date('Y-n-j H:i',$row['date']);
        return $date;       
    };
?>

然后在需要的地方调用就行,调用代码如下

<ul>
    <li>文章总数:<?php echo count_log_all();?></li>
    <li>置顶文章:<?php echo count_log_top();?></li>
    <li>隐藏文章:<?php echo count_log_hide();?></li>
    <li>待审文章:<?php echo count_log_check();?></li>
    <li>加密文章:<?php echo count_log_pass();?></li>
    <li>页面总数:<?php echo count_page_all();?></li>
    <li>评论总数:<?php echo count_com_all();?></li>
    <li>友链总数:<?php echo count_link_all();?></li>
    <li>微语评论:<?php echo count_treply_all();?></li>
    <li>分类总数:<?php echo count_sort_all();?></li>
    <li>子分类数:<?php echo count_sort_mod();?></li>
    <li>标签总数:<?php echo count_tag_all();?></li>
    <li>微语总数:<?php echo count_tw_all();?></li>
    <li>用户总数:<?php echo count_user_all();?></li>
    <li>管理员数:<?php echo count_user_admin();?></li>
    <li>作者总数:<?php echo count_user_writer();?></li>
    <li>附件总数:<?php echo count_att_all();?></li>
    <li>最后更新:<?php echo last_post_log();?></li>    
</ul>

无陌然直接上图看效果,如果有什么不懂的可以留言

2019091810123882964869.jpg

0
Typecho的Joe主题实现侧边栏互动读者-展示活跃用户
« 上一篇 06-03
emlog pro版本获取文章缩略图
下一篇 » 06-08

评论 (0)