最近

Filed under: 生活感悟 | No Comments »
Posted on

1. E71已经入手,感觉很不错。首先,机器没有想象的那么大,估计也就比一般的直板机稍微宽一点点,机身也很薄;其次,待机时间比较长,以我的电话量充满电大约可以使用4-5天;第三,目前还在熟悉塞班系统,但至少和outlook同步是一点问题也没有。正在考虑是否要换一个联通18*的手机号。

2.lzcms打算放弃采用extjs做后台,后台界面哪怕一开始难看点都无所谓,只要好用就成。这个决定就意味着内核上大量的调整。

3.今年春节不回家了,老弟说票很难买到,搞不好他也不回家了。老妈上周已经抵达上海,这些天家里的伙食和卫生环境明显改善了许多,老爸也买了20号的火车票,21号一早抵达。

4.最近睡眠不太好,继梦见自己被蛇咬以后,今晨又做了一个多灾多难的梦——水灾、飞机失事、被鳄鱼咬……据说这两个梦都代表了吉兆,但愿如此吧,新年新气象。

LZCMS开发进度(一)

Filed under: 程序作品 | 1 Comment »
Posted on

这个部分我想谈谈LZCMS的核心思想,也就是我所理解的内容管理系统对于”内容“的定义。

网站一般会划分为几个频道,频道本身根据功能可以划分为信息资讯类、交易类、互动类。但是,网站的根本就是页面,一个又一个的页面,这些页面根据功能又人为的做了一些区分,比如频道首页、频道内页、专题页等等。而页面则是内容的载体。可以用下图来做一个抽象的表达:

换言之,内容组成页面,页面组成网站。而LZCMS就是对这些组成页面的基本内容的管理,在LZCMS,这些内容被称为”模块“。不同的模块组成页面所需要的内容,而XHTML+CSS的模板则提供页面呈现的样式。

传统CMS尤其是国内的CMS系统喜欢用频道的方式来划分网站内容,一般大频道下还会包含小分类,进而延续到网站前端呈现的频道划分。从信息的层次化角度来说,这样做无可厚非,对于网民的浏览也很有利。而在LZCMS里,没有这些频道的划分及管理,从功能角度来说,只有页面管理、模块管理、模板管理、插件管理及用户管理。

(非最终发布版LZCMS的后台管理界面,仅供参考)

作为组成页面内容的最小单位的“模块”,本身是有着不同的类型的,在LZCMS里,不同的模块类型是由插件来实现的,系统暂时内置三个模块类型插件:RSS文本模块、RSS图片模块、HTML内容模块。将这三个模块放到页面上,我试举例做一个对应:

  • 页面某个地方需要显示最新的十条新闻标题,LZCMS的做法是在这个地方新建一个RSS文本模块,输入最新十条新闻的RSS地址
  • 页面某个地方需要显示最新的八张相册图片,新建一个RSS图片模块,输入最新的八张相册图片的RSS地址
  • 页面上有一些手工块、无序的内容块等,则用HTML内容模块

当然,如果你觉得这些模块类型不够用,那么你完全可以独立自主的以插件的形式来开发新的模块类型。目前,LZCMS系统已经实现了三个钩子点:lz_getBlockTypeList、lz_setBlockEditForm、lz_getBlockContent。

模块是具备共用性的,建好模块后,你可以在任意一个页面中进行调用,这样在创建页面时,共用模块保证了工作效率的提高,不用对页面上的模块重复创建。

模块本身具备tag特性,用tag来做信息之间相互关联。

写到这里,不知道读者是否已经明白了我对“内容”在LZCMS中的定义。我先提出一个可能的疑问:“怎么去区分不同的频道?”

答:如果你有4个频道,每个频道有自己的频道首页、频道内页,在LZCMS中分别就是8个页面模板:4个频道首页的模板、4个频道内页的模板。

如果读者还有疑问,可留言回复,大家一起来探讨探讨。

Tags :

正式启动LZCMS开发

Filed under: 程序作品 | 5 Comments »
Posted on

由于某些原因,决定用PHP开发一套CMS系统。暂时定名为LZCMS,熟悉我的人应该知道这个暂定名的来历。待系统成型后,我会开源发布出来。以下是初拟的几个功能特性:

1.开发语言为PHP,数据库采用MySQL。第一个版本不支持多数据库类型。

2.前后台分离。国外大部分开源PHP的CMS基本都是前后台混合的,这样不太符合中国人的使用习惯。后台采用extjs来实现。

3.支持插件。准备采用wordpress的插件机制来实现LZCMS的插件功能。除核心功能外,几乎所有的功能都是采用插件来拓展。

4.支持模板。在模板中提供标签功能给高级开发人员使用,原则上不需要理解标签的使用方法。为了便于页面设计人员,在未来还会提供一个sandbox以预览模板样式。

5.可视化编辑。利用LZCMS进行内容发布时是可视化所见即所得编辑的。

6.多语言。po文件的多语言开发已经很成熟了。第一个版本暂不支持。

第一个版本的开发周期暂定为一个月,11.10-11.12出核心功能demo,剩下来的三周半时间用来完善。