石锅拌饭

Tag: wordpress

WordCamp Beijing 2007

by on Sep.03, 2007, under Uncategorized

昨天参加了WordCamp Beijing 2007 – 中国 WordPress 用户聚会,说实话,和wordpress直接有关的话题不多,而且我敢说台上做演讲的人使用wordpress的也在半数以下。72pines的开场演讲,对wordpress做了个相当泛泛介绍,台下提问者寥寥。倒是后面吕欣欣关于blog挣钱的问题引起了一个小高潮。

整个活动更象是一个blog圈子的聚会,转来转去就是那些人。中国的blogger太孤独了,生来就因原罪要带着枷锁,头上又被Google Adsense压的没有脾气,实在需要多些机会聚一聚,互相温暖一下。过些日子好像就要中文网志大会了,争取再参加。

下午和饭否的穆荣均聊了一会儿。说起来,当年还是看到他把blog换成wordpress,自己才开始用的。现在他已经在microblog了。

1 Comment :, , more...

共享我的奥里奥blog主题

by on Jul.08, 2006, under Uncategorized

看到有人模仿这个主题,干脆共享出来。
主题截图如下:
Newpage
该主题可以使用于wordpress 2.0.x版本。
安装方式,下载主题包,解压后将整个oreo目录放置于:
[wordpress安装目录]/wp-content/themes
目录下。然后在wordpress的theme管理下选择Oreo主题。
配合Ultimate Tag Warrior插件使用可以在页面中显示相关标签内容。如果没有该插件,只能显示文章分类。其它footbar中的内容可以自行添加在sidebar.php中。
主题的代码和设计使用GPL协议。使用时希望能够保留页尾作者的名字和链接,如果实在想删除,也无所谓。
下载地址:
oreo.0.1.tar.gz
如果碰到什么问题,欢迎报告。抛砖引玉,希望和大家交流theme设计。
更新:Wayne很勤劳的为oreo主题修改了不少bug,添加了不少功能,欢迎大家去看看他的成果

11 Comments :, , more...

FBO wordpress plugin 0.3

by on Apr.09, 2006, under Uncategorized

因为本职工作太忙,搁置了一端时间,最近抽空把它搞出来了。
花了一些时间重构,把opml的解析和生成彻底分成独立模块,把view的部分也独立出来,从目前结构上讲,不但可以很容易加入新的provider,新的view也可以以插件形式加入了。目前支持的view有两个,一个是可以放在sidebar里的fbo_list_show(),我的sidebar就是一个例子,还有就是可以放在page template里的fbo_show(),就象这里
这次最大的改变是采用了异步触发FBO的生成和搜集过程。在无需后台cron的支持下,FBO的生成和搜集仍然由用户浏览页面触发,但触发通过XMLHttpRequest转化成一个不阻塞的后台异步过程,用户不会感到任何的延迟。也因为这个原因,在刚安装完这个版本后,最好在Option中先强制搜集一次朋友的FBO信息。
另外就是改善了缓存机制。
下载在这里:
fbo.0.3.tar.gz
安装方式仍然是在wp-content/plugins下解开,在plugin页面中enable,然后在Option下的FBO里配制。

18 Comments :, , , more...

How to make ecto work with Ultimate Tag Warrior – Part II

by on Mar.19, 2006, under Uncategorized

[update: I have updated downloadable xmlrpc.php example for wordpress 2.1. It also fixes the wordpress 2.1 bug when getting category via xmlrpc. Check the end of the post. 2007-02-20]

I once wrote about “How to make ecto work with Ultimate Tag Warrior”. In that article, I discussed how to make the wordpress with UTW plugin recognize tag information sent by ecto. It works well except that some friends reported after the post is published, the tag information can not be stored in ecto. It means you lose track of all the tag information in ecto. When you edit a post, you have to set the tags again, which is very inconvenient.

From a post in the ecto forum, I knew that ecto recognizes mt_keywords. After some more hacking of xmlrpc.php, I fixed the problem. Now, you can not only use ecto to publish your post with tag information but also get tag information from your post. Here’s how (UPDATE: be sure to follow the steps in Part I before applying following steps. Thank Bruce for your reminding and all the helps):

First, you need to add one function in xmlrpc.php before the class wp_xmlrpc_server is defined:

/* ROBIN LU HACK get keywords */
function ecto_get_keywords($postid) {
$utw = new UltimateTagWarriorCore();
$tags = $utw->GetTagsForPost($postid);
$postkeywords = '';
if (is_array($tags)) {
foreach($tags as $data) {
if(!empty($data) &&
!empty($postkeywords))
$postkeywords .= ", ";
$postkeywords .= $data->tag;
}
}
return ($postkeywords);
}

Then, add this line

'mt_keywords' => ecto_get_keywords($postdata['ID']),

in function mw_getPost at where $resp is set:

$resp = array(
'dateCreated' => new IXR_Date($post_date),
'userid' => $postdata['post_author'],
'postid' => $postdata['ID'],
'description' => $post['main'],
'title' => $postdata['post_title'],
'link' => $link,
'permaLink' => $link,
// commented out because no other tool seems to use this
//	      'content' => $entry['post_content'],
'categories' => $categories,
'mt_excerpt' => $postdata['post_excerpt'],
'mt_text_more' => $post['extended'],
'mt_allow_comments' => $allow_comments,
//ROBIN LU HACK
'mt_keywords' => ecto_get_keywords($postdata['ID']),
'mt_allow_pings' => $allow_pings
);

Then add this line:

'mt_keywords' => ecto_get_keywords($entry['ID']),

in function mw_getRecentPosts() at where $struct[] is assigned like this:

$struct[] = array(
'dateCreated' => new IXR_Date($post_date),
'userid' => $entry['post_author'],
'postid' => $entry['ID'],
'description' => $post['main'],
'title' => $entry['post_title'],
'link' => $link,
'permaLink' => $link,
// commented out because no other tool seems to use this
//	      'content' => $entry['post_content'],
'categories' => $categories,
'mt_excerpt' => $entry['post_excerpt'],
'mt_text_more' => $post['extended'],
'mt_allow_comments' => $allow_comments,
//ROBIN LU HACK
'mt_keywords' => ecto_get_keywords($entry['ID']),
'mt_allow_pings' => $allow_pings
);

Save your xmlrpc.php and refresh in ecto. You will get all the tag information back to you.
There are xmlrpc.php files for different wordpress version:

53 Comments :, , , , , , more...

Friends By Outline – 一个开放式社会化网络的尝试

by on Jan.14, 2006, under Uncategorized

english

开放式社会化网络的尝试有不少,比如XFN和FOAF,这两种技术都着眼于建立网络,我以前分析过,一个社会化网络应用,只有网络是不够的,至少不够有趣。
blog天然具备一些社会化网络的要素,个人提供内容,blogroll提供网络框架。个人作为互联网中的节点,除了blog,大多还会提供图片、网摘等等内容。为什么不能将这些元素组合起来,建立一个完整的开放式社会化网络呢?
第一个能想到的是把RSS作为切入点。但RSS倾向于“内容”,缺乏把节点连接成网络所需的信息。另一方面,RSS提供的语义也不够丰富。RDF也是一个 可能的选择,很容易提供资源到url的联系,语义也非常丰富,唯一的问题是结构相对复杂,当年在xml sync这一功能上RDF远早于RSS,最后RSS胜出,就败在复杂上。
再来看一下OPML。目前OPML在互联网上被广泛应用于表示RSS聚合集。其实OPML定义了语法,但并没有限制语义,用它来outline的东西几乎可以是无限的。mac上的OmniOutline就可以以opml作为文件格式之一。
以outline的方式来组织互联网中的个人节点是一个很自然的过程:

写成OPML就是这样:

<outline title=”me”>
<outline title=”blog” type=”blog”>
<outline title=”test” type=”link” htmlURL=”http://…” dateCreate=”2005-12-29 13:51″/>
<outline title=”Hello world!” type=”link” htmlURL=”http://…” dateCreate=”2005-12-29 13:48″/>

</outline>
<outline title=”bookmark” type=”bookmark”>
<outline title=”Max Design” type=”link” dateCreate=”2006-01-14 03:15″ subject=”css reference webdesign” htmlURL=”http://www….”/>

</outline>
<outline title=”photo” type=”photo”>

每个互联网上的个人节点都可以生成这样一个outline文件,在网页的head里加入一个rel是outline的<link>:

通过这个outline文件,很容易得到关于这个个人节点的内容信息,更重要的是,outline中提供了延伸的可能性,通过friend部分的链接,可 以探测朋友的outline文件,再到朋友的朋友。保证了可延伸,可被探知,并提供内容,一个Friends By Outline的开放式社会化网络就自然形成了。
outline中的内容可以不限于blog、图片和网摘。加入图书、电影和唱片,就可能产生一个开放式的豆瓣。加入To Do List,就可能产生一个开放式的43things。加入你要卖的二手货,就可能产生一个开放式的ebay。
为了实践这个这个想法,我做了一个wordpress插件,这个插件可以帮我做下面几件事:

  • 根据我提供的内容生成一个outline文件。
  • 在页面的head里加入outline文件的link。
  • 探测我的朋友的outline文件。

安装了这个插件以后,在Option中可以做如下设置:

插件可以通过这些信息和blog的内容生成一个fbo.opml文件,我的fbo.opml在这里。通常情况下,这个文件是自动生成的,不需要Force rebuild。
如果你的朋友也有这样的outline文件,你可以去Dashboard下的Friends里查看插件自动帮你搜集来的内容:

也可以通过template做一个这样的页面。这些页面也都是自动更新的。
如果你也想加入实践Friends By Outline的行列,并且在使用wordpress1.5.2以上的版本,可以在这里下载这个插件。 在plugin目录下展开。这个插件会在blog根目录下写outline文件,在plugin/fbo目录下写入搜集来的outline文件,所以你需 要赋予这两个目录的写权限。通常不需要做额外设置。同时,如果你愿意,可以要我把你加入我的Friends By Outline的Link List中,你的outline就会被包含在我的Friends页面中了。

Update: Friends By Outline wordpress v0.2

20 Comments :, , , , , , more...

Search

Archives

Browse by tags

agile apple blog book design ecto extension firefox git google hack ichm iphone keyword life mac madfox movie nonsense opensource plugin pm ruby rubyonrails sns software startup wordpress work 财帮子