YIZERO.COM

  • 首页
  • 归档
  • 友链
  • 关于

给JBLOG加上友情链接的点击统计

2011-04-26 23:11:54

    RT,给JBLOG加上了友情链接的点击次数了,点击这里查看效果。下面说一下具体过程,做个记录:

1.给数据库link表(如果按默认安装的话就应该是jblog_link这个表)加上counter字段,类型mediumint(8),默认值设为0

2.修改缓存文件,将counter字段和友情链接的id号写缓存,打开include/func_cache.php的188行,修改SQL语句,,从数据库中读出counter和id号,id号防止重名,故给它取个别名。改动的部分已红色标记:

$sql = "SELECT a.id AS groupid,a.status,a.groupname,b.id as countid,b.name,b.url,b.logo,b.description,b.counter FROM ".DB_TABLEPRE."linkgroup a JOIN ".DB_TABLEPRE."link b ON a.id = b.groupid WHERE a.status <> 3 AND b.visible = 1 ORDER BY a.orderid ASC, b.orderid ASC";

3.将读出的数据写缓存,添加counter和id,还是include/func_cache.php这个文件,202行,将这两个新字段写缓存:
 
  1. 'description' => $row['description'], 
  2. 'counter' => $row['counter'], 
  3. 'countid' => $row['countid'] 

 4.修改include/template_sidebar.php的171行和178行,这两个地方是一样的,这个是读取缓存中的数据,供前台模板调用:

  1. $output .= "<li><a href=\"{$row['url']}\" title=\"{$row['description']}\" target=\"_blank\" 
  2. onclick=\"addCount('{$row['countid']}')\">{$text}</a>[{$row['counter']}]</li>\n"; 

    同时可以注意到,这里在超链接上加了一个onclick事件,对应的函数是addCount,参数是友情链接的id号,addCount()是用Ajax把id号传入后台对数据库进行操作,将对应的友情链接的统计次数加1。

5.在script/common.js中加上addCount(),用Jquery的get()方法将id传给后台,这里的url可以自定,以你自己的处理文件为准:

  1. //点击数加1 
  2. function addCount(id){ 
  3.   $.get("common.php?action=addCount&countid="+id); 
  4. } 

6.以上面的URL为例,在JBLOG的根目录新建common.php这个文件,具体代码如下,因为考虑到后续可能还会继续扩展,所以这里用switch来做判断

  1. //引入系统的配置文件 
  2. include_once('config.php'); 
  3. //读取配置文件中的参数来链数据库 
  4. $conn = mysql_connect(DB_HOST, DB_USER, DB_PWD) or die(mysql_error()); 
  5. mysql_select_db(DB_NAME); 
  6. //设置字符编码,默认就是UTF-8,这里可以省去,但避免出现问题还是将其加上 
  7. mysql_query("set names utf8"); 
  8.  
  9.  
  10. function sqlQuery($sql){ //执行不需要返回数据集的SQL语句 
  11. $result= mysql_query($sql)or die(mysql_error()); 
  12. return $result; 
  13. } 
  14.  
  15. //开始执行 
  16. $action = $_GET['action']; 
  17. switch($action){ 
  18.   case 'addCount': 
  19.        $id = $_GET['countid']; 
  20.        $sql = "UPDATE `jblog_link` SET `counter`=`counter`+1 WHERE `id`='$id'"; 
  21.        sqlQuery($sql); 
  22.        break; 
  23.   default : 
  24.       echo "Wrong Action Command..."; 
  25. } 

    好了,到这里就已经结束了!如有错误欢迎指正...如果您在修改的过程中遇到了问题,也欢迎与Yizero交流!

© All Copyright 2010-2019 Yizero, Powered By CodeIgniter, Proud to use 腾讯云

鲁ICP备17047844号