使用MT的GetXML插件调用VBB论坛最新帖子

这几天修改Thinkjam.org的首页,一个头疼的问题就是如何调用论坛的最新帖子。由于本站最终的输出都是HTML,并没有采用动态的PHP,因此只能采取Javascript调用这个途径,但此种方法无形中会增加服务器的负担,Javascript的毛病又很多,因此我很不愿意采用。那么,是否可以对VBB 3.0.3中提供的XML输出功能做文章,用Movable Type的GetXML插件来实现静态输出呢?经过摸索,此种方法最终成功。

首先从http://mt-plugins.org/archives/entry/getxml.php得到GetXML的最新版本并安装,然后按照其需要的格式修改VBB论坛中的external.php文件。最好按照我的方式将external.php另存为mtbbs.php文件进行修改,这样不会破坏原有系统的正常工作。

修改完毕后,就可以在模板中你需要的位置加入以下代码:

<ul>
<MTGetXML location="http://bbs.thinkjam.org/mtbbs.php?type=xml">
<MTGetXMLElement name="item">
<li><a href="<$MTGetXMLValue name="link"$>" target="_blank"><$MTGetXMLValue name="title"$></a> (<$MTGetXMLValue name="date"$>)</li>
</MTGetXMLElement>
</MTGetXML></ul>

其中http://bbs.thinkjam.org/mtbbs.php为你修改的external.php文件路径。

你也可以创建一个新的索引模板(如xml.html),其主要内容就是上述代码,根据需要设定好此模板的样式表以及其它你需要的东东,最后用iframe标签插入主模板中,这样可以解决使用UTF-8编码的中文Blog系统上的乱码问题。

这样每次刷新时,论坛新帖就会作为HTML输出到你需要的地方,虽然相比动态的Javascript调用时效性较差,但却节省了大量资源,可谓各有利弊吧。

Update:
2006-2-2:
此文已过时,另有更好的方法