开发日志

Typecho 0.8新特性介绍

在前些天提交的svn版本中,有一个功能的增加让用户比较困惑,也就是简化评论结构。现在的文章相关评论列表只需要执行以下语句即可

<?php $comments->listComments(); ?>

这样的结构实际上也是参考了wordpress的做法,很多人跟我说这样会让Typecho失去自定义评论结构的灵活性,我有三个理由可以说打消拥有这种想法的用户

  1. 标准结构可以大大简化皮肤的制作难度,记得嵌套评论功能刚刚出来的时候,很多用户都对前面还要增加一个函数定义相当不理解,但是现在没有这些烦恼了。而且通过css的控制,可以解决很多个性化的问题。
  2. 原有评论结构使用完全没有问题。
  3. 评论的自定义功能不是减弱而是增强了。

大家可能对最后一点难以理解,我如果要自定义评论结构怎么办。第一,基于上面的第二点原因,你可以用原来的方法来自定义评论结构。第二,你还可以通过以下方法来自定义评论结构结构。

<?php function threadedComments($comments, $options) {
    echo 'hello 这是我的自定义评论';
    $comments->content();
}
?>

<?php $comments->listComments(); ?>

以上将输出

<ol>
<li>hello 这是我的自定义评论.....</li>
<li>hello 这是我的自定义评论.....</li>
...
</ol>

因此,这次更新可以理解为,我们在没有删除任何原有特性的基础上,增加了一些简化功能。但是有一点需要提醒大家注意,那就是希望大家不要使用Helper::replyLink, Helper::cancleCommentReplyLink, Helper::threadedCommentsScript这三个函数了,因为它们已经过时了,虽然为了保证兼容性,你可以继续使用它们,但是可能再过两个发行版本,我们将去除它们。去除它们的另一个原因是,我把cancel这个单词拼错了。。。

它们的替代版本是,$comments->reply('回复评论'), $comments->cancelReply('点击取消回复')。而评论回复的脚本(Helper::threadedCommentsScript),大家不需要再调用了,系统会自动判断在header里调用js。需要注意的是,你需要把评论回复框的id由原来的respond改为

<?php $this->respondId(); ?>

Typecho 0.8版本还有很多有趣的功能更新,我们计划在下一次提交svn时,正式支持皮肤的后台自定义选项功能。更多新功能我们将在后续文章中向大家介绍。