添加了对Bazaar的支持等

最近,为Devchange添加了对Bazaar的支持,这是一个比较流行的分布式的版本控制系统。下一步计划增加对Git的支持。这样差不多可以覆盖大多数版本控制系统了。

前些天收到benky兄的Google Friend Connect的邀请,玩了一下这个新东西,虽然非常有意思,但加载速度上真是很难恭维,如果要加载多个gadgets那真是要疯了。从界面上来看,应该本地化的工作还没有完成,如果完成了也许加载速度会有所好转。

对博客那边也做了部分更新,增加了程序的自由度。

Discuz!6.1和jquery的冲突

由于需要在Discuz!6.1中使用jquery库,但后来发现用不了,也找不到原因,之后去网上一找,原来是因为Discuz!6.1的common.js修改Array对象的prototype方法,造成的问题。解决方法是:

if(typeof Array.prototype.push === 'undefined') {
 Array.prototype.push = function(value) {
        this[this.length] = value;
        return this.length;
 }
}

对这个方法进行判断。这解决这个问题的过程中,算是理解了一些奇怪写法的js代码。比如:

(function($){

…….

}){jQuery}

这种写法使用了闭包的一些特性。通过一个匿名函数来隐藏变更的作用域,这样在这个函数体内还是使用$为jQuery对象的引用,呵呵,原来写的代码在有冲突的页面中就不需要修改了。

在其它程序中调用Discuz!的搜索功能

最近,有个项目需要整合Discuz!论坛,有一个主搜索导航,可以直接搜索论坛相关内容。但经过分析源代码后,Discuz!的搜索不是简单的提问查询词,Discuz!中会自己生成一个查询索引,通过那个索引id来做定位查询词。

整体思路是模拟搜索表单的提交,但在模拟时发现一个问题,Discuz!会根据用户生产hash值,当提交后,当然会判断这个hash值,这会非常麻烦,因为这个hash值需要一些Discuz!初始化的变量才能产生。所以先在程序去掉这个验证。程序在:

include/global.func.php文件中的submitcheck函数,在889行开始,有一个条件判断:$GLOBALS[‘formhash’] == formhash(),只要把这个去就可以,但这样会对论坛的安全性造成一些问题。

注意:Discuz!和整合的程序必须是在一个域内才行。

让foobar2000显示歌词

我一直使用foobar2000作为我的音乐播放器,反正一直就这么用。突然,这几天我对歌词有点需要,所以我想要找个歌词的插件。于是,一款名叫乐辞的软件被我找到,而且支持多种音乐播放器。下之,装之。

如果你要使用歌词功能,需要安装Columns UI这个插件,并且作为默认使用的UI,将下载的文件放到foobar的安装目录中的components文件夹中,然后重启,正常情况下有弹出一个对话栏让你选,中文名称是“分栏用户界面”。

然后安装乐辞,重启foobar,如果顺利加载foo_uie_lyricist.dll,则会在Components里面显示。最后,要做的是把添加歌词栏。这个操作在Columns UI(分栏用户界面)的Layout(布局)栏里,中间的那个大栏,就是设置地方,你可以在Horizontal splitter上面试着点击右键看看。选择insert panel(插入面版)->面版->乐辞歌词,这样就OK了。

乐辞会自动网上取词。 

截图如下: