@shellex说:

HowTo:握着你的手本地化Sociable插件

写下这么温馨的一个标题是因为突然想起了03年某Hacker杂志上的一篇文章。当时老独说,多么温馨… :P 咳,真恶心

好了,Sociable是一个Wordpress插件。效果就是我的Blog每篇文章末尾的“ 喜欢这篇文章?点下面的按钮分享到:Google/豆瓣/鲜果/校内/饭否…”的图标条。方便我的读者们在看完我的文章后淫荡一笑,然后推荐到他们使用的社会化网络中去。

很好是不是?是啊,问题是Sociable一点都不了解我国的国情,所以我们常用的国内社会化网络服务站点都没有加入到Sociable里面去。很明显这是一个问题哈,因为我的读者大多数都是在中国的中国人种。

不过还好,Sociable提供了添加自定义站点的方法,下面我将以添加对豆瓣网的支持为例子,演示如何打造一个中国版的Sociable。

1. 提取豆瓣的推荐API

好了,现在我们打开这个页面。根据你的浏览器的类型,豆瓣会展示不同内容。它会提示你将一个按钮拖动到工具栏/收藏夹。这是豆瓣提供的“推荐到豆瓣”的方式,本质上就是为浏览器添加一个javascript伪协议书签。我的浏览器是Firefox,我得到的内容就像这样:

javascript:void(function(){var%20d=document,e=encodeURIComponent,s1=window.getSelection,s2=d.getSelection,s3=d.selection,s=s1?s1():s2?s2():s3?s3.createRange().text:'',r='http://www.douban.com/recommend/?url='+e(d.location.href)+'&title='+e(d.title)+'&sel='+e(s)+'&v=1',x=function(){if(!window.open(r,'douban','toolbar=0,resizable=1,scrollbars=yes,status=1,width=450,height=330'))location.href=r+'&r=1'};if(/Firefox/.test(navigator.userAgent)){setTimeout(x,0)}else{x()}})()

一团糟。不过还好,Shellex已经具备了阅读Javascript的基本能力,所以我翻译出了这段代码的内容就是把当前页面的URL和标题组合进豆瓣的推荐页面地址,然后打开这个地址:

http://www.douban.com/recommend/?url={你的文章地址}&title={标题}&sel={选择的文字,用作摘要}&v=1

好了,现在让我们先把这个地址记下来。

2. 编辑Sociable插件

现在的Wordpress版本已经支持直接编辑插件源文件。如果不支持也不要紧,我只需要你用任何一个文本编辑器打开sociable.php这个文件。搜索“$sociable_known_sites = Array(”,找到$sociable_known_sites这个数组。好了,这个数组就存放着所有支持的站点信息。

数组的每个元素由下面的域构成:

    {站点名称} => Array(
        'favicon' => '图标文件名',
        'url' => '推荐文章地址',
    ),

(注意!上面的”>”代表的是”>”,因为Wordpress的白痴语法插件没能防止它被转义)

非常简单对不对?好了,现在我们把第一步中得到的豆瓣推荐地址放进去。比如我是这么添加的:

    'douban' => Array(
        'favicon' => 'douban.png',
        'url' => 'http://www.douban.com/recommend/?url=PERMALINK&title=TITLE&sel=&v=1',
    ),

这里有几个变量,分别是PERMALINK和TITLE,是Sociable提供的,分别代表当前文章的地址和标题,只需要按照第一步中的说明填入就OK了。

3. 上传图标文件

在第二步中,我们站点数组的每个元素都需要一个图标。现在可以把图标上传到Sociable插件对应的images文件夹下咯。怎么获取图标呢?那就看各位的喜好了。比如我是把各站点的favicon直接拿过来了。

完成了这3步,就可以在Sociable的设置中找到豆瓣的支持了,打上勾勾让它显示,再刷新一次你的Blog,可以看到Sociable已经在文章末尾加入了豆瓣的按钮。试试单击这个按钮,应该会打开推荐到豆瓣的页面咯。

哗,好复杂。那么多站点的推荐地址怎么获取得到哦,比如鲜果校内等等。Shellex是用Firebug完成的,不过在此就把地址给各位同学好了,条件就是请多多将我的文章推荐到你的社会化网络去…呵呵..

不过如果有同学添加到更多地址的话,一定要送给我哦。

校内: http://share.xiaonei.com/share/ShareOperate.do?action=sharelink&weblink=PERMALINK
豆瓣: http://www.douban.com/recommend/?url=PERMALINK&title=TITLE&sel=&v=1
鲜果:http://www.xianguo.com/service/submitdigg/?link=PERMALINK&title=TITLE&feed=http://feed.feedsky.com/Shellex/
饭否:http://fanfou.com/sharer?u=PERMALINK&t=TITLE&d=&s=bm

  1. On November 29, 2008 at 7:33 pm

    ShelleX是个好同志 :)

    Notify
  2. On November 30, 2008 at 3:37 pm

    @blankyao,
    我也觉得

    Notify
  3. On February 7, 2009 at 9:11 pm

    非常好,就差豆瓣了。

    Notify
  4. On March 1, 2009 at 2:58 pm
    山猫 :

    @shellex, 我同意~

    Notify
  5. On March 31, 2009 at 7:29 am
  6. On June 9, 2009 at 5:04 am

    饿。。。我是直接firebug的你的。。。发现大家志趣相同哈哈,都爱linux都爱wordpress。。可惜我不会编程只好hack你的东西。。。把你主题hack掉了已经,准备hack你主题的CSS了。。。说正经的,hack好校内之后,url返回都一样,可是我的结果是“抱歉,你输入的网址可能不正确,或者该网页不存在。”。。。是校内的问题还是我域名的问题?

    Notify
  7. On June 9, 2009 at 12:47 pm

    @doublechou,
    随便Hack。GPL授权。
    我试试看,xiaonei的确实不可用。原因不名。

    Notify
  8. On June 9, 2009 at 12:48 pm

    @doublechou,
    呵呵,其实我更加喜欢python
    所以明年我会把blog转到django去哦

    Notify
  9. On June 9, 2009 at 4:21 pm

    @shellex, 恩,我也觉得原因不明,不过看上去校内似乎站外分享不会再开放了,所以估计过些日子我们这些blogger的share to xiaonei可以都删除了。

    Notify
  10. On June 9, 2009 at 4:23 pm

    @shellex, django对我来说就太难了,我只想找个能够自由说话的地方,业余搞点用户体验,其实写blog还是给自己看的比较多。

    Notify

Leave a Reply