twitter on 2008-10-17

  • 乘火车再次恶心体验:定票费高出平常两倍,买张无座,提前半个小时进站安检时被女性工作人员无由喝斥,车子又无可奈何的晚点一个小时零十五分钟(大厅站立等待),无广播无道歉仅电子牌告 于 2008-10-17 09:25:07
  • 多年未这么坐车了,感叹铁老大风采依旧,除了硬件投入外,居然不见丝毫服务意识和进步,感叹民生多艰! 于 2008-10-17 11:30:41
  • Google终于来信,feedburner终于迁移到Google了。怪不得用Google Reader订阅的烧录链接都自动更新了一遍。 于 2008-10-17 16:09:09

Powered by Twitter Tools.

升级StatPress的功能(完美支持中文)

【将Statpress的升级纳入了正式的开发进程,最新进展请移步StatPressCn插件开发——WordPress插件。此文仅作历史资料参考。】

自从不经意间中对StatPress做了些小修改后,me跌跌撞撞的进入了php空间。感觉还不错,确实简单易学,也很强大。很想在学习的过程中做点什么,最后还是选择了那这个statpress开刀,以它为基础进行扩展升级。

完美支持中文的搜索关键词统计

在后台浏览统计信息发现搜索关键词有不少是乱码,能正确识别的中文字符没几个。把鼠标放上去点到来源地址去看又是好的,看来是statpress对中文不太友好导致的。到作者主页反应了这个问题,好久没有回音,看来还是自己解决算了。检查源码,发现在处理referrer时仅仅使用了urldecode函数对url进行解码,这对utf-8编码的是非常有效的,但对于中国用户常用的gb2312就不行了。

解决办法时把几个中文的搜索引擎(如baidu和google.cn等)单独判断,识别出来后用iconv转换一道。OK,测试成功。

后来发现还是有中文乱码。再查看链接,发现有不少搜索引擎在url中直接定义了语言编码如gb2312或utf-8。这也好办,增加一层判断就行了。如果指明了编码,直接根据其定义分别处理,然后才是针对me定义的中文搜索引擎进行专项处理。于是天下太平,到目前为止所有的中文搜索关键词都正常显示了。

增加对本站直接订阅feed的统计功能

订阅数量统计中,me借用两个插件实现了网站订阅的总量统计。把玩statpress的时候me发现其实它对feed的订阅情况也有统计,既然这样,干嘛多装一个插件呢。说干就干,用sql语句把feed的总数读出并做一个专门的函数输出订阅信息方便外部直接调用。这个函数调用了Feed Count对feedburner订阅的统计信息,不过如果没有安装FC也无所谓,大不了不统计罢了,statpres还可以正常运行。增加了对时间区间的限制,只取近三个月的活跃订阅。

修正了热帖(TopPost)功能

原函数仅针对permalink是默认情况下有效,对于其他格式的permalink没法产生作用。me修改后支持了形如/month/day/postname.html格式的支持。

增加了文章热度的支持

用当前页面访问量和总访问量进行除操作后得出当前文章的热度或流行度。

注:使用dreamweaver做wordpress主题感觉还是很不错的。

——————————————————————————————————

下载wp-statpress(modified by heart5)

使用:解压后上传至wp-content下的plugins子目录下即可。

注意:请勿使用插件自动更新,否则升级功能全部自动消除。

——————————————————————————————————

订阅数量统计

昨天的聚合输出乱码把me的关注点吸引到feed、rss等相关的东东方面来。虽然输出乱码的问题已经暂时解决,但me对feedburner的价值认同大幅度降低,不能再完全依靠它,再次使用其feedflare功能发现超慢之后me就更是无法留恋了。

到WP后台停掉了FeedBurner FeedSmith插件,它的作用是把所有对原生聚合输出的存取都自动转向到feedburner去。这样与feed相关的插件就只剩下Feed CountFeed Statistics了。两个都是统计订阅数的,前者针对feedburner,把由其托管的订阅数提取出来,后者则针对原生输出的订阅进行统计。me从来没有用过feedsky等其他烧录服务,因此从理论上讲这两个的统计之和应该就是“天高云淡”的总订阅数。好,下面的任务就是把总订阅数动态显示在侧栏

Feed Count的官方网站这几天一直处于维护状态,没有更详细的资料,好像也不支持widget,只提供了一个函数供调用,如下:

< ?php if (function_exists('fc_feedcount')) fc_feedcount(); ?>

另外Feed Count在WP后台提供了个性化设置界面,可以对上面函数的输出做个性化配置,但是调用该函数后的输出像这样52 位订阅者,不但是字符串不是数值,还带有链接。查看feedcount.php在源码的fc_feedcount函数中发现有这么一部分:

        if (trim($map_fc_link)!='') {
$openlink = "";
$closelink="";
}
print "

$openlink\n"; if ($map_fc_before) { print " $map_fc_before\n"; } print "$number\n"; if ($map_fc_after) { print " $map_fc_after\n"; } print "$closelink
";

并且该函数返回值为空,因为它已经把结果print了。其实me只是需要那个$number而已。用一句

return $number;

替代上面代码就OK了。
再来看Feed Statistics,其调用函数feed_subscribers源码如下:

function feed_subscribers(){
$s = FEED_STATS::how_many_subscribers();
echo $s." feed subscriber";
if ($s != 1) echo "s";
}

我们需要的是那个$s,把它返回就行了。
很好,两个数值我们都可以通过调用函数得到了,下面我们来定制输出:
直接订阅

< ?php if (function_exists('feed_subscribers'))
$stat_or=feed_subscribers();
print $stat_or; ?>

人,通过feedburner订阅

< ?php if (function_exists('fc_feedcount'))
$stat_fb=fc_feedcount();
print $stat_fb ?>

人;本站共计有

< ?php print $stat_or+$stat_fb;?>

人订阅。不过这样好像不大美观,并且内容复杂,me去feedburner网站下了两个小图标上传至服务器,效果见页面左上角,最终代码如下:

	
  • 订阅统计

  • < ?php if (function_exists('feed_subscribers')) $stat_or=feed_subscribers(); print $stat_or; ?>人,
     
    < ?php if (function_exists('fc_feedcount')) $stat_fb=fc_feedcount();print $stat_fb ?>人;共计
    < ?php print $stat_or+$stat_fb;?>人订阅。

    至于进一步的美化就需要您自己设计css了,呵呵。

    twitter on 2008-04-12

    • 刚经醉乡子朋友提醒,me查看了feedburner的聚合输出果然是乱码。最近五天的文章中文无法正常显示,全部是问号,以前的倒是好的。登录feedburner发现原来默认的中文界面自动切换到英文了,可#
    • 后花园 http://garden.eoooo.com 终于恢复维护了。谢谢刀刀的空间和n多技术支持!不容易啊,已经办了八年了。#
    • 今天终于用FlashFXP登陆上了后花园,比那个AcexFtp可要好用多啦。呵呵!那个跳过列表功能很强,可定制。#
    • 终于搞定了feedburner烧录的输出乱码问题,更改原始feed为 http://heart5.com/feed/rss 就行了。 #
    • StatPress插件还是不错的,统计信息基本沟通,刚取消掉了对spider的跟踪,太浪费空间了,me看才不到一天数据库都有0.16兆了,所以要节省空间。#

    Powered by Twitter Tools.