emlog 统计代码

有时候想在网页中向访客展示emlog博客的文章数量、评论数量、运行时间等信息,但emlog后台侧边

栏没有提供相关的模块,因此需要自主添加网站统计信息代码。

方法一

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

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

[lv]

<?php $sta_cache = Cache::getInstance()->readCache('sta'); ?>

<ul>

        <li>文章总数:<?php echo $sta_cache['lognum']; ?> 篇</li>

        <li>评论总数:<?php echo $sta_cache['comnum_all']; ?> 条</li>

        <li>闲言碎语:<?php echo $sta_cache['twnum']; ?>条</li>                

        <li>网站运行:<?php echo floor((time()-strtotime(20160423))/86400); ?> 天</li>        

</ul>

[/lv]

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

lognum 游客可见日志总数

draftnum 草稿,也就是隐藏文件数量

comnum 未隐藏的评论数量

comnum_all 所有评论数量

hidecomnum 被隐藏的评论数量

twnum 微语数量

checknum 未审核的文章数量

方法二

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

把下面的代码添加到主题的module.php文件中:

[lv]

<?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 sortop = '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'];

        }

        //统计页面总数

        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'];

        }

        //统计标签总数

        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'];

        }

        //统计用户总数

        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;       

        };

?>

[/lv]

调用代码:

<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>