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";
- 'description' => $row['description'],
- 'counter' => $row['counter'],
- 'countid' => $row['countid']
4.修改include/template_sidebar.php的171行和178行,这两个地方是一样的,这个是读取缓存中的数据,供前台模板调用:
- $output .= "<li><a href=\"{$row['url']}\" title=\"{$row['description']}\" target=\"_blank\"
- 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
- function addCount(id){
- $.get("common.php?action=addCount&countid="+id);
- }
6.以上面的URL为例,在JBLOG的根目录新建common.php这个文件,具体代码如下,因为考虑到后续可能还会继续扩展,所以这里用switch来做判断
- //引入系统的配置文件
- include_once('config.php');
- //读取配置文件中的参数来链数据库
- $conn = mysql_connect(DB_HOST, DB_USER, DB_PWD) or die(mysql_error());
- mysql_select_db(DB_NAME);
- //设置字符编码,默认就是UTF-8,这里可以省去,但避免出现问题还是将其加上
- mysql_query("set names utf8");
- function sqlQuery($sql){ //执行不需要返回数据集的SQL语句
- $result= mysql_query($sql)or die(mysql_error());
- return $result;
- }
- //开始执行
- $action = $_GET['action'];
- switch($action){
- case 'addCount':
- $id = $_GET['countid'];
- $sql = "UPDATE `jblog_link` SET `counter`=`counter`+1 WHERE `id`='$id'";
- sqlQuery($sql);
- break;
- default :
- echo "Wrong Action Command...";
- }
好了,到这里就已经结束了!如有错误欢迎指正...如果您在修改的过程中遇到了问题,也欢迎与Yizero交流!