刚刚升级完毕,一切都乱糟糟的:)
Spam模块的4.7版本终于发布了,在这个垃圾横飞的互联网星球上,方便人们交流的comment,trackback等功能很容易遭到垃圾信息的侵袭,一夜之间可能突然多了上千条色情网站广告的评论,让人不胜其烦。而 Drupal 的Spam 模块很好的解决了这个问题,在 4.6版本下使用起来的效果非常好,但是 4.7 版本的开发直道上周才完成,在这里可以下载,由于许可的问题,这个模块无法在Drupal的主站下载。注意安装以后需要运行 update.php 来升级旧的数据库。
另外一个今天有了新的更新的模块是 Trackback 模块。但是还没有 4.7 的正式版,我试了一下已经可以用了,但是需要自己写一个升级旧的数据库的脚本,我写了一个,如下,保存为 trackback.install 放入 trackback 的目录下即可。
前段时间为了过滤trackback spam而开启的新版spam模块不断的滤掉评论,所以只好把trackback和spam同时关掉了。昨天想到spam模块里其实是可以定义过滤那些内容的,然后看了一下,把spam模块中“Filter comments”这个选项给勾除了,以为这样“评论”的内容就不会受到影响了,但是刚才发现,“评论”还是被砍掉了,很是纳闷,再次研究了一下设定,发现除了“Filter Trackback"这个选项外,还有一个选项--Filter Spam Url 被启动了,这个选项的解释是:
Enabling this option will tell the spam filter to treat URLs embedded within comments and other contents as a special case. When URLs that were found within known spam are found in new content, the new content is automatically considered to be spam. When this option is enabled, a single spam URL found within an otherwise spam-free posting will cause the filter to mark the new content as spam.
暂时停掉了Trackback模块和Spam模块,停用前者是因为现在网络上的trackback垃圾太多;停用后者是因为虽然spam能杀死所有的trackback垃圾,它同时也误伤了很多有用的评论。Drupal就像一部自动运行的机器,Spam模块通过Beyesian Rule来更新它对spam的辨识,然后cron自动把spam删除,但是在spam变得越来越聪明的时候,它也变得越来越多疑,把一些有用的评论也一并删除了。因为现在的trackback基本上也闲置不用,为了它专门再开启一个Spam模块有些浪费了,况且这个spam模块还有副作用呢?所以一并停之,这个世界也清凉了许多
昨天又遭受了一次online poker的垃圾trackback袭击,8月2日经历过一次,那次Spam + Trackback 模块有效的阻止了垃圾trackback,而昨天, spam 和 trackback 去没有阻挡住瞬间上百条的垃圾trackback。因为Spam模块是Drupal核心模块设计的,所以它对组织垃圾留言和Blog内容非常有效,对于trackback,却一直都不支持。但是trackback的垃圾越来越严重,于是有用户更改了trackback,用一种比较笨拙的方式暂时防止了spam的袭击,后来trackback也作了更新,添加了对spam模块的支持。从逻辑上,这是一种颠倒,应该spam模块支持trackback模块才对,而不是颠倒过来,所以这种协作中存在着一个漏洞,而狡猾的垃圾trackback很快就知道该如何钻入这个漏洞,所以就出现了昨天的海量垃圾。
对Trackback模块最新版本的追求充分体现了“时髦”的代价。Drupal4.5.0推出的时候,Trackback 推出了与之匹配的v1.14,这个版本的问题多多,譬如把trackback和评论混同起来,在每篇blog文章里凭空添加一个多余的"trackback" tab等等,在被多人诟病之后,作者作出了升级,但是这次升级并未作为Drupal 4.5.0的正式版本,正式版本仍然是v 1.14,升级版只是可以从CVS那里下载到,这次升级的最大变动就是数据库结构的更改,因为作者没有把这次升级作为最终升级版,所以并没有提供升级数据库的脚本。当时我为了紧追潮流,立刻升级为CVS,但是由于前后两个数据库的差别非常之大,我就放弃了手动升级数据库(表),而是删除了旧的,直接使用新的,好在当时没有几条Trackback,所以也不是一个问题。
呵呵,等不及作者的升级了,我自己先土土的写一个block吧。再次说明一下,因为我没有钻研过Drupal的函数手册,所以这些block可能不是很in,不过咱们就实用主义吧,能用就行:)下面是代码,右边有一个范例,就是那个叫做“最新引用(trackback)”的区块,我还没有来得及用CSS美化那个list,所以没有缩进,看起来不是很美观,慢慢来,先实现了功能再说。另外,这是针对cvs版的trackback写的(ver 1.25),如果你使用的是4.5.x的trackback模块,需要根据数据库的结构作些调整。
$result = db_query_range('SELECT * FROM {trackback_received} ORDER BY created DESC', 0, 10);
//将trackback_received表格按时间降序排列,选举最新的10条。你可以按需要更改数目。
while ($trackback = db_fetch_object($result)) {
echo "
";
//这段土,不过没有办法啊,呵呵。
}?>
呵呵,这样就可以,其实挺简单的:)
成功的把数据库移植到了4.6.0版,只是作为一个测试,现在这个主版面还是4.5.2版本的,测试版本在这里。但是发现了一个问题,phptemplate.engine在4.6版下无法正常运行,在Sam这里看到他也遇到了这个问题,在Drupal的主站也有人讨论这个问题,解决的方式是下载一个CVS版的phptemplate,但是这个Drupal网站网站上至少有三个CVS版的phptemplate.engine,如果想升级成功只好一一试过了.
Recent comments
15 hours 40 min ago
1 day 4 hours ago
1 day 4 hours ago
1 day 4 hours ago
1 day 4 hours ago
2 days 6 hours ago
3 days 4 hours ago
3 days 18 hours ago
1 week 15 hours ago
1 week 2 days ago