Typecho,轻击键盘,静候回音

基于PHP5开发,支持多种数据库,是一款内核强健、扩展方便、体验友好、运行流畅的轻量级开源博客程序。选用Typecho,搭建独一无二个人网络日志发布平台,享受创作的快乐。

Getting Start with Typecho Version 0.7 (9.10.31)

Typecho 0.8新特性介绍

Publish: March 4, 2010 Category: 开发相关 Author: 混蛋70 68 Comments

在前些天提交的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时,正式支持皮肤的后台自定义选项功能。更多新功能我们将在后续文章中向大家介绍。

typecho 0.7正式版发布

Publish: November 12, 2009 Category: 新版发布 Author: 混蛋70 41 Comments

经过长时间的测试和改进,typecho 0.7版本终于与大家正式见面了。与前几个版本大刀阔斧的改进相比,这个版本的改动更加内敛,我们在尊重原有用户使用习惯的基础上,对系统进行调整,优化了效率,修正了若干bug。大家看得见的改进有以下几点

  1. 系统默认皮肤改进,现在的默认皮肤是不是顺眼多了
  2. 增加评论分页功能,我们会在以后介绍这一新功能,评论多的朋友有福了
  3. 增加附件替换功能,如果你的附件需要更新,不需要删除后再重新上传了,只需要点击替换按钮重新上传即可
  4. 增加评论修改功能
  5. 改进附件列表,更加直观
  6. 增加用户注册功能
  7. 修正静态链接启用方法,启用失败后仍然方便地禁用它,并且可以再非apache机器上强制激活
  8. 增加插件版本依赖检测
  9. 增加按作者归档
  10. 增加自动保存功能
  11. 后台内容管理页面链接调整,归档更加方便

所有老版本用户在后台首页应该已经收到更新提示,下载地址为
http://code.google.com/p/typecho/downloads/detail?name=0.7(9.10.31)-release.tar.gz&can=2&q=#makechanges

再次提醒各位升级方法在这里,不要把东西全删了,一定要留下usr目录,很多朋友不能评论就是这个原因

Typecho0.7beta发布

Publish: September 22, 2009 Category: 新版发布 Author: sluke 94 Comments

Typecho0.7的开发基本结束,下一阶段是修正bug,现在发布一个beta,欢迎大家帮助测试。

http://typecho.googlecode.com/files/0.7(9.9.15)-beta.tar.gz(此版本0.6升级有问题,请升级出现问题的用户直接升级至9.9.22版即可)
http://typecho.googlecode.com/files/0.7(9.9.22)-beta.tar.gz

这个版本比预计发布时间晚了一些,因为开发团队在进行新官方网站的制作,包括论坛和WIKI的更新,所以工程比较大,近期就会发布。

因为是测试版,所以不建议正式使用。

关于Typecho后台菜单设计的一些思路

Publish: August 4, 2009 Category: 开发相关 Author: sluke 67 Comments

typecho新版还在开发之中,很多关键的改进都在进行,其中就包括后台菜单的修改,我们希望通过这些努力,为大家提供一个更加友好的blog程序。
typecho0.6的后台主菜单设计如下,
typecho0.6后台

这是一个二级结构,把各项功能放在不同的分类里,结构清楚,我们常见的应用软件,比如wps系列,都采用了这种菜单设计,类似下图:
wps菜单

在实际的使用中,我们发现这样的设计虽然方便理解,但是还存在一些问题,就是用户要找到一个功能,鼠标需要移动多次(即使我们在第一级菜单也是可点击的链接,可以进入最常用的创建文章等页面)。在新版设计的开发团队内部讨论中,70提出来使用一级菜单的设想,其中在导航栏上直接列出的是最常用的(后台自动统计)几个链接,而点击箭头后就可以展开后续菜单,这样可以更快地定位用户所需要的功能。示意图如下:
typecho新版菜单设计示意图

这样结构就更简单了,只是后续菜单可能会比较长,用户选中某一个功能鼠标需要移动很长,所以菜单项的排序需要更优秀,常用的功能要放在鼠标更容易点击到的位置,非常考验设计功力。
在开发团队内部的讨论中,我还提出来另外一种菜单设计的方式,首先要看Edraw Mind Map采用的新设计(跟微软的office2007是一样的):
Edraw Mind Map菜单设计

左上角的圆圈可以展开长长的菜单项,繁多的功能也是通过分类的方式分布,typecho作为一个轻量级的blog程序,没有这么多功能,但是这种设计却给了一种新的思路,看一下最熟悉的菜单之一:
windows开始菜单

不管有多少内容,都被收进了“开始”里,常用的功能用快速启动的方式放在“开始”的旁边,可以由用户自由调整,于是,就有以下的设计原型:
ytpcho新版后台菜单设计原型

typecho新版的细节还在磨合,菜单设计也是,除了程序本身,官方网站和论坛的建设也在进行,过完这个孕育的夏天,我们会带给大家一个更优秀的typecho。

如何使你的typecho更加精彩之一

Publish: July 13, 2009 Category: 性能优化 Author: 混蛋70 38 Comments

随着typecho用户越来越多,大家对个性化的需求也越来越强,其实typecho自身有很多自定义的功能,受于文档缺乏的限制一直不为大家发现,现在我在这里给大家略说一二

我在哪?

这是一个非常常用的功能,简单来说就是告诉模板现在是哪个页面,这样我们在模板里就可以用简单的判断语句来实现特殊效果。typecho已经内置了强大的is方法来供大家判断当前页面。

比如,我想在进入文章页面时,在右侧边栏中显示一段广告代码,我们就可以这么写

<?php if ($this->is('post')): ?>
我的广告来了
<?php endif; ?>

如果我想在某一则页面,比如说about页面显示时,让它显示一段广告代码,那么可以这么写

<?php if ($this->is('page', 'about')): ?>
我的广告来了
<?php endif; ?>

那么,有哪些页面是可以供判断的呢,答案是所有的页面,他们的参数如下

  1. index:第一个参数设为index,可以判断当前页是否为主页
  2. archive:第一个参数设为archive,可以判断当前页是否为文章归档页,比主页,分类文章页,标签文章页,日期归档文章页
  3. category:第一个参数设为category,可以判断当前页是否为分类文章页,第二个参数传入具体分类slug name,比如default等等,就可以判断具体是哪个分类
  4. tag:第一个参数设为tag,可以判断当前页是否为标签文章页,第二个参数传入具体标签slug name,比如typecho等等,就可以判断具体是哪个标签
  5. date:第一个参数设为date,可以判断当前页是否为日期归档文章页,第二个参数传入year,month或者day,就可以判断是否为按年,按月还是按日归档
  6. single:第一个参数设为single,可以判断当前页是否为内容页,比如文章页,独立页面,附件显示页
  7. post:第一个参数设为post,可以判断当前页是否为内容页,第二个参数传入文章id,就可以判断具体是哪篇文章
  8. page:第一个参数设为page,可以判断当前页是否为独立页面,第二个参数传入页面slug name比如about,就可以判断具体是哪则独立页面
  9. attachment:第一个参数设为attachment,可以判断当前页是否为附件,第二个参数传入附件id,就可以判断具体是哪个附件

细心的朋友可能已经看出,上面的判断有明显的层次之分,他们从上到下互相包含,这样做有什么作用呢,下一次继续与大家分享typecho强大的模板结构.