其实慢慢数下来,在过去的一段时间里我接触过很多blog程序。不过由于从起初就定位在LAMP上,所以关注过的基本上都是以php和mysql为基础,也有少部分使用txt和sqlite做为数据库。昨天晚上回忆了下,发现留有印象的程序也就那么几款。

  首当其冲的自然是wordpress,没有太多的原因,只是他太出名了。其实我一直觉得wordpress是新手们最好的入门程序,完善的文档,数不清的模板,无比活跃的社区,关键是还有无数正在使用wordpress的牛人。所以如果在使用wordpress的过程中遇到任何问题,都不再成为问题。蝈蝈说不喜欢用wordpress的模板,这也不是问题,完全可以把大巴的主题扒下来再穿上。

  bo-blog是我接触得比较早的一款php博客程序,比wordpress还早,所以对于这款土生土长的中文博客程序也有些莫名其妙的好感。昨天想想觉得这种好感估计是来源于bo-blog的一款flash主题,不记得名字了,反正很漂亮就是了。今天又跑到bo-blog主题站上去溜达了一圈,依然有很多漂亮的主题,比如这款叫着night的小众主题。不过bo-blog的主题没有wordpress那般专业就是,但是我觉得很个性。

  typecho这款程序估计大家也听我提的比较多了。不记得从哪里听来的,但是第一次接触到就很喜欢,特别是她的名字。不过typecho相对于wordpress和bo-blog来说还太年轻了,虽然也是土生土长的,但是使用的人还不是很多,程序和文档都很不完善,不过已经可以胜任个人博客了。比较囧的是到目前为止,我只知道有一个女生在使用typecho,看来女生和男生的看法差别很大来着,所以这个揭过。

  lifetype也是我比较喜欢的一个,不过我只是在本机上安装测试过lifetype,没有实际使用过。所以对于lifetype的关注和喜欢和wordpress那种是很不一样的,很大程度上这样的好感是在印象上的,很感性的那种。lifetype前身叫做plog,后来名字让个了西雅图的巨头公司亚马逊。lifetype目前没有什么更新,这让我想到了另一个由国人发起的程序F2blog(已夭折)。

  现在想说一下textpattern,我对于这个程序上基本上是一无所知,不过我知道她没有可视化编辑器就是了。至于这里要把她放到这里一个来说是因为有很多人对她无比爱护。textpattern很早就已经存在,历史比MT和wordpress更加悠久,她无疑是现在blog程序最有思想的一个,从开始到现在的4.0版本都简洁无比,这也她能有那么多忠实用户的原因。

  嗯,最后添加一个,snews。这个是我前不久刚发现的一个程序,第一次接触到的时候我那叫一个兴奋那,这家伙连50k都不到,是我接触的最小的一个CMS程序了,不过也完全可以当做blog来使用。这么小的程序,备份起来可真方便。不过由于程序的简洁,明显很不适合对于功能要过比较高的人使用。

  我印象比较深刻的程序都介绍得差不多了,但是对于国外的joomla和Drupal之类没有提及,我觉得他们更适合大型应用。说到头来如果要我说刚开始要选择哪种程序的话,我依然坚持wordpress。其实大部分程序的架构或者运行模式都是差不多的,如果熟悉了wordpress那么其他的也就更加容易上手了。还有很关键的一点是wordpress可以很方便的转换到其他程序。然后bo-blog也不错。对于asp程序我有印象的只有PJblog,虽然优秀,但是我仍然觉得PHP更加适合。

没有评论

  这是以前根据闹ps的模板改的wordpress主题,当时只是按照她的想法把需要的部分实现了,但是除了考虑浏览器的兼容性之外就没有考虑到其他更多的因素。大致的框架是基于我以前使用的单栏绿色主题,额外增加了侧边栏的输出。  禾落左岸
  Messages是页面部分,也是最大的问题,如果建立多个页面的话就会严重影响到整个主题的布局。虽然开始就知道这个问题的存在,但是一直没有改动,以至于闹只有建立新文章来取代页面功能。自从这个简单的主题完成以来闹就没有换过主题,每次我想到闹给兔子做模板那件事情的时候,总会把自己代入进去然后深感愧疚。

  之前规划了一个日志程序,也就是现在这个程序的第二个版本。准备在过年回家期间完成前台部分,其中就包括主题的设计。主题估计依旧会采用之前的绿色单栏样式,也会有一个两栏的版本,大致和闹现在使用的布局差不多。所以到时候不管闹是否还在使用现在的主题,都会把她更新到新的版本。

没有评论

  其实要了解某个程序不应该只是停留在运用阶段,还要知道她运行的过程是怎样的。阅读程序的源代码无疑是最快最根本的办法。为了更好的了解typecho,我觉得有必要去看下她的源代码,顺便把阅读笔记写出来存档,方便以后查阅。先从安装前的index.php文件看起,index.php中的代码很简洁,安装前最重要的是一个if判断:if (!@include_once 'config.inc.php') {
    file_exists('./install.php') ? header('Location: install.php') : print('Missing Config File');
    exit;
}
  如果没有config.inc.php文件可供调用,就执行后面的三元运算,location到install.php。也就是说我们第一次运行index.php时还没有生成配置文件,就会跳出index.php,定位到install.php进行typecho安装。再跟着运行流程去看看install.php的源代码,install.php中的代码就要复杂得多。/** 定义根目录 */
define('__TYPECHO_ROOT_DIR__', dirname(__FILE__));
/** 定义插件目录(相对路径) */
define('__TYPECHO_PLUGIN_DIR__', '/usr/plugins');
/** 定义模板目录(相对路径) */
define('__TYPECHO_THEME_DIR__', '/usr/themes');
/** 后台路径(相对路径) */
define('__TYPECHO_ADMIN_DIR__', '/admin/');
/** 设置包含路径 */
@set_include_path(get_include_path() . PATH_SEPARATOR .
__TYPECHO_ROOT_DIR__ . '/var' . PATH_SEPARATOR .
__TYPECHO_ROOT_DIR__ . __TYPECHO_PLUGIN_DIR__);
  首先定义了typecho的根目录,插件目录,模板目录和后台目录。然后设置了typecho的include包含路径(get_include_path()是取得当前已有的环境变量,PATH_SEPARATOR是路径分隔符)。在定义了必要的常量之后typecho使用require_once调用了一系列文件,有得看了。

没有评论