StatPressCN,1.7.1.9版本

功能开发:

  1. 无。

代码改进:

  1. 为详情增加了周期定制选项(在选项中设置),可以拿最近一天、一周、两周和整体统计做比较,更方便看出当前的趋势。
  2. 访问统计时段增加了两周、一周的选项,同时删除了永不删除选项,一直统计下数据库会越来越大(可能超过百兆),给服务器造成很大负担。

规则定义:

  1. 增加了对ucweb以及移动Google搜索规则的支持。

下载升级:

  • 请到wordpress官方插件网址下载最新版本,ftp到服务器上去;
  • 或者,如果您的wordpress是2.7版本以上的,那就耐心等段时间(大约几个小时吧),管理后台会自动提示升级的。

升级需做:

  • 无。

开发笔记

匆忙升级,update_option居然少了个参数,谢谢P45camp朋友的支出。

StatPressCN,1.7.0.3版本

功能开发:

  1. 添加404页面子菜单,显示没有找到结果(可能是blog链接错误,也有可能是浏览者输入了错误的网址,或者是恶意访问,比如hacker)的访问记录,一方面提高统计准确度(去掉了无效访问),另外还可以给高级用户提供网站的全面被访情况,方便作出应对(比如可以把某些恶意访问的ip拉入禁止ip清单中);更新了统计规则,不再处理404页面访问,统计结果更精确;
  2. 对子菜单进行梳理,简洁化,默认不再显示export、banip、spider、update,这些功能模块作为高级功能,如果需要,可以在option中选择启用;
  3. 在统计系统升级中增加了对404访问记录的处理,可以选择全部删除之;
  4. 对搜索功能进行丰富,增加了一个维度,可以查询更多的信息;
  5. 丰富了移动来访的定义规则,新增了对联想(Lenovo)手机的支持。

代码改进:

  1. 调整StatPressCN插件挂入的地方,原来是send_header,现在调整为template_redirect,解决了404页面无法判断的问题;
  2. 给统计数据库增加了一个字段statuscode,记录http的返回码,比如404;对每次访问的记录都会提前检查数据库结构,因为改变了数据库结构;
  3. 修正了对帖子id的判断方法,可以正确识别文章标题中包含中文等字符的链接并正确显示;
  4. 忽略掉对/wp-comments-post.php的记录,这个是留言时自动调用的管理函数页面。

下载升级:

  • 请到wordpress官方插件网址下载最新版本,ftp到服务器上去;
  • 或者,如果您的wordpress是2.7版本以上的,那就耐心等段时间(大约几个小时吧),管理后台会自动提示升级的;
  • 提示升级至本版本会影响数据库中的数据记录

开发笔记

在检测404页面访问的时候花了n长时间都无法获得准确的数据,明明页面不存在,但http的statuscode却显示为200。后来仔细查阅了很多资料都不得其法,最后还是参阅了mystat的代码才找到了合适的入口,那就是template_redirect,也即是模板主题文件调用前。如果有时间还是需要把wordpress的运作机制彻底弄懂。

对非常规(可能合法也可能不合法)的页面访问很重要。原来一直想开发一个功能,能自动禁止那些恶意访问,比如对后缀名mdb文件的访问(明显是想借助某些漏洞拿到me的数据库嘛),但这个功能实现的前提是能判断页面是否被正常访问了。wordpress有自己的机制处置这些问题,那就是is_404()函数。这个大问题解决后就可以构建自动防护系统了。

统计插件的易用性也是个重要考量的地方。这次把高级功能默认不显示,对新手来讲应该是个好事。他们本来不需要、也不想了解那么多后台底层的事情的。

数据库中数据的平滑顺接也是个问题。这次改变了数据库结构,只好在每次登入数据的时候都检查下数据库结构是否是最新的,也算是升级的一种代价吧。

StatPressCN,1.7.0.2版本

功能开发:

  1. 添加卸載功能;
  2. 对选项页面重新排版,按照类型归类显示:前端设定、后台设定、系统设定;
  3. 丰富了移动来访的定义规则,新增了Google的两个mobile搜索;
  4. 修正了初次安装时lastmonth显示错误的bug,感谢Lucky朋友的提醒。

代码改进:

  1. 更新了部分本地化语言。

下载升级:

  • 请到wordpress官方插件网址下载最新版本,ftp到服务器上去;
  • 或者,如果您的wordpress是2.7版本以上的,那就耐心等段时间(大约几个小时吧),管理后台会自动提示升级的;
  • 提示:升级至本版本不会影响数据库中的数据记录。

升级需做:

  • 无。

开发笔记

lastmonth的错误原因在于没有考虑关键点、变化点的处置,一般来讲,变化点会出现在首次安装使用,月份变迁、年份变迁,停止使用等。这些时候,都要认真评估可能产生的影响和变化,否则就会犯错。

卸载功能的提供是为了做一个负责任的、真正方便使用者的插件。可以做到完全不留任何垃圾数据的卸载,可以通过设定清理掉option中的所有相关数据,甚至包括整个统计数据表都可以被drop掉,干干净净,彻彻底底。感觉将来有一点,wordpress会规范卸载功能的,而不像目前这样,随大家的意思来,可以做也可以不做,对用户不好,因为会莫名其妙的留下一下垃圾,并且几乎没有机会清除掉。

StatPressCN,1.6.9.9版本

功能开发:

  1. 在朋友来访栏目中为朋友添加头像(gravatar),更直观;
  2. 增加了对朋友留言情况的统计显示,总留言数,最近一次留言时间和内容;
  3. 增加对朋友总访问数的统计显示;
  4. 丰富了详情中的内容,增加了直接点击发邮件给朋友的功能。

def规则:

  1. 搜索引擎数据定义:新增了对Google mobile的支持,www.google.cn/m;lai79的识别,www.lai79.com;
  2. 爬虫数据:北大学生爬虫的识别,PKU Student spider。

代码改进:

  1. 更新了部分本地化语言;
  2. 修正了对sharethis识别逻辑;
  3. 彻底解决了朋友中仍显示垃圾评论者的问题。

下载升级:

  • 请到wordpress官方插件网址下载最新版本,ftp到服务器上去;
  • 或者,如果您的wordpress是2.7版本以上的,那就耐心等段时间(大约几个小时吧),管理后台会自动提示升级的;
  • 提示:升级至本版本不会影响数据库中的数据记录。

升级需做:

  • 在StatUpdate(统计升级)中任何选项都不需要选中,执行一次升级(就是点那个升级按钮),作用是清理垃圾评论者的访问记录。

开发笔记

对于sharethis的逻辑判断经检查还是出了问题,应该分两层:先判断querystring中是否包含akst_action字样,如果有的话还要看是否包含了p=90之类的链接符号,后者说明blog没有设置永固链接,需要从querystring中提取出文章链接;如果仅包含akst字符串,则放弃querystring,转用requesturi。【换了种思路解决问题简单好多,还有效率也有很大提升,那就是先判断?后是否有p=99之类的硬链接,有的话就提取,并根据是否设定了永固链接获得permalink后存入数据库,如果没有则只取?前的部分直接存入数据库,判断提取语句如下:preg_match(“@(p=\d+|post_id=\d+|page_id=\d+)@”,$urlRequested,$matches)】

wordpress在2.7以上版本中是默认支持gravatar的,用法其实很简单,就是调用get_avatar($email)就ok了。如果要全面,可以加个判断版本低的话直接调用img src,用链接直接调用。

<span>在css中还是比较好用的,一连串的span不会像p那样自动换行。

单复数的问题用?符号最好处理:print $commentleft.” “.($commentleft>1?__(“comments”,”statpresscn”):__(“comment”,”statpresscn”));

在判断是否垃圾评论者的逻辑上,分析如下:先允许所有评论者进来,让Akismet进行过滤,让管理员对首次留言者进行审核,然后再显示朋友来访时再判断是否是正常的朋友留言或访问,通过手动统计更新清除那些垃圾评论者的访问记录(这个应该设定成自动)。

StatPressCN,1.6.9.7版本

下载升级:

  • 请到wordpress官方插件网址下载最新版本,ftp到服务器上去;
  • 或者,如果您的wordpress是2.7版本以上的,那就耐心等段时间(大约几个小时吧),管理后台会自动提示升级的;
  • 提示:升级至本版本不会影响数据库中的数据记录。

升级需做:

  • 无。

功能开发:

  1. 侧栏小工具“最热博文”中可设定时间范围了,比如最近7天的热文、最近三个月的热文等;
  2. 在管理面板上显示统计信息;
  3. 过滤掉user heart5的访问记录,方便测试;
  4. 不定期优化统计数据库(1000次访问执行一次);
  5. 所有的统计子页面都添加效率执行检测模板,在页脚。

def规则:

  1. 增加了两个Google的新规则。

代码改进:

  1. 更新了部分本地化语言。

开发笔记

Maxim提了几个建议,一个是在“详情”中显示的页面包括首页是不应该的,这个数据和widget中最热博文不一致,其次是希望在“最热博文”中可增加时间范围选择。第一个问题me系统思考了下,还是坚持目前的做法。因为在这里是对所有链接请求的统计,比如tag、分类等,和页面是同等地位,但是在博文中则仅仅针对帖子文章,这两个不是一码事。在“最热博文”中增加时间选项倒很实用,me已经实现了这个功能,现在您可以自由设定时间,显示“最近三个月的最热贴”等。解决这个问题的时候me发现widget的所有信息是以数组的形式存放在option表中的。

看到akismet中有个随机执行comments数据库清理优化的代码,觉得很好。既不用每次都运行,消耗系统资源,又能在一定时间内实现代码的执行。运用了mt_rand函数产生随机数,然后设定一个幸运数,符合的时候就执行一次。呵呵,照抄过来,用在了statpress统计数据库的清理优化。再一个想学习的地方是akismet在管理面板中显示的统计信息,比如过滤了多少垃圾评论等。检查代码原来是使用了add_action(“activity_box_end“,’heart5_dashboard_4_spc’);直接借鉴过来就好了。StatPressCN在这里显示的信息是StatPressCN widget中的信息,不过关于版权标记和页底效率监测则需要过滤掉,需要判断是在哪里调用的。如果是管理界面就不显示,正常的来访则显示。