Archive for the 'doulog' Category

论文完工

Wednesday, June 9th, 2004

Doulog功能简介

Friday, May 14th, 2004

我从这学期刚开学就“叫嚣”着的要拿出来自己的Blog程序,现在她终于浮出水面了!^_^ Doulog~~ 当当当!
[这一“当”想起一笑话来:大象放一屁,打一歌名——古巨鸡的《好想好想》;乌龟放一屁,打一歌名——动力火车的《当》 :P ]

具备所有Blog的基本功能: 写日志, 添加评论, Trackback, RSS
RSS目前已经实现的是RSS 2, 不过最终版应该会加上RSS 0.9和ATOM的支持的
Trackback严格按照Trackback规范,用POST方式发送(参考了Nucleus的代码)
为评论增加了 作者回复 功能,可以针对每条进行针对性的答复
支持友情链接管理
多语言支持,不光像Nucleus那样仅仅程序支持多语言,而且当更改语言时Skin也会更改语言。现在已经制作了中文和英文的语言包,准备以此基础实现GB2312, BIG5, UTF-8, ISO-8859-1等多种编码的支持,最终程序推荐使用UTF-8格式编码
日历功能当然不能少,而且针对中国国情,制作了PHP版的农历函数库,可以查询从1970.1.1 – 2049.12.31间任一天的农历日期,所以也就具备了独特的农历日期显示。(参考了网上盛传的那个Javascript万年历的代码,目前我在网上还没有看到之前有PHP代码实现,所以我这可是独创哦!最近会放出这个函数库的源码)
可更换Skin设计:使用了优秀的PHP Smarty模版引擎。
可生成静态HTML页面:方便搜索引擎搜索,另外也方便备份和搬迁服务器:)
WYSIWYG 所见即所得的编辑器:得益于优秀的
JavaScript HTMLAREA库
程序完全用面向对象的方法实现,对我来说是一次新的挑战。虽然目前PHP 4的对象功能不是很好,这样也可能造成效率的少许下降,不过我相信随着PHP 5的到来,我的选择没错的:)
全站的访问计数功能,不过比较简单
采用W3C推荐的 XHTML + CSS 方式制作全站Skin,完全兼容新版IE和Mozilla Firefox,另外在很多方面也遵循了网站的易用性规则。

下面是下一步计划实现的功能:

后台功能尚未完备,颇待加强。
中文Blog目前通过Trackback沟通的一个难点在于编码不通。GB2312, BIG5, UTF-8, 三强相遇必定乱码。我已经有自己制作的中文编码转换函数库,效率较网上流传的原有的转换库有所提升,准备用于Trackback发送的转码,从而解决这一难题。
本Blog程序是多用户,多Blog程序。虽然现在还没有完全实现,不过在数据库结构等方面已经打好了基础,下一步待但用户功能完善后就加上。
简单易用的安装程序
整站搜索功能(虽然我觉得Google就不错啦^_^)
其他Blog如Nucleus的转换程序

呵呵,说了这么一大堆…最重要的一点:程序当然是Open Source的,不过目前仍在ALPHA阶段,不会放出源码…见谅:) (主要是怕大家笑话)。同时这个程序也是我大学本科阶段的毕业课程设计题目,希望能拿一个好成绩:)

Blog建站程序大比拼(安装篇)

Wednesday, March 10th, 2004

“没有实践就没有发言权!”
为了毕业课程设计,我找来了四款PHP制作的优秀Blog系统(b2evolution, nucleus, drupal, pMachine),安装上挨个试用一下,找找他们的优点和不足。
这是第一部分,安装。
先说说我的环境配置
服务器 http://new.douzi.org (该服务器是我内网中的一台运行在VMWare中的Linux,外界访问不到)
网站文件根目录 /new/
下面的安装配置都基于此
[b2evolution]
http://www.b2evolution.net
版本:b2evolution 0.8.6.2
解开安装包,将b2evolution/blogs目录上传至服务器/new/b2
建立一个新数据库或使用已有数据库
编辑/new/b2/blogs/_config.php,设定数据库配置
运行http://new.douzi.org/b2/install/install.php进行安装
然后你会得到admin密码,登录,发第一帖
Now you can log in with the login “admin” and password “17106b”.
http://new.douzi.org/b2/admin/b2edit.php
[pMachine]
http://www.pmachine.com
版本:pMachine Free 2.3
解开安装包,将pMachineFree2.3目录上传至服务器/new/pm
因为我们是全新安装,按照安装说明 pMachineFree2.3/pm/docs/installation.html,首先删除/new/pm/pm/updates目录
建立一个新数据库或使用已有数据库
编辑/new/pm/pm/config.php,设定数据库配置
[可选]修改/new/pm/pm目录名,保证安全,若执行此步,还要修改pm_inc.php文件(位于多处,参考安装文档)。
设置RSS文件权限,将/new/pm下的index.xml权限设置为666
运行 http://new.douzi.org/pm/pm/install.php (注意: 我刚才没给pm目录改名)
安装好后删除install.php
Your weblog is located at:
http://new.douzi.org/pm/weblog.php
Your control panel is located in the “pm” directory:
http://new.douzi.org/pm/pm/index.php
[drupal]
http://www.drupal.org
版本:drupal-4.4.0-rc
解开安装包,将drupal-cvs目录上传至服务器/new/drupal
安装说明为 drupal-cvs/INSTALL.txt
建立一个新数据库或使用已有数据库
编辑/new/drupal/includes/conf.php,设定数据库配置
将drupal-cvs/database/database.mysql文件通过PHPMyAdmin等方式导入MySQL数据库
运行 http://new.douzi.org/drupal 就可以看到主界面了
[nucleus]
http://www.nucleuscms.org
版本:nucleus cms 2.5-cvs
(当前正式版为2.0,最新版为2.5beta,这个是我从CVS上拿到的)
解开安装包,将nucleus_cvs目录上传至服务器/new/nucleus
安装文档为 nucleus_cvs/nucleus/documentation/index.html#installation
建立一个新数据库或使用已有数据库
修改/new/nucleus/media权限为777,修改/new/nucleus/config.php权限为666(要有的话)
执行 http://new.douzi.org/nucleus/install.php
(注意:如果你和我一样,不是安装在/下,一定要注意修改默认路径)
当提示Installation Almost Complete!时,将它给出的内容存成 /new/nucleus/config.php。同时要注意,它已经将数据库密码显示为了’xxxxxxxxxxxxxxx’,你要改成正确的
删除掉/new/nucleus/install.php和install.sql
删除掉/new/nucleus/nucleus/upgrades目录和/new/nucleus/nucleus/convert目录(要是有的话)
Login to the admin area to configure [...]

我的课程设计计划书

Saturday, February 28th, 2004

已经基本上定下来了,就是开发一个PHP的Blog系统。
老师极力推荐用Java技术,但是我出于普及性的考虑还是最终选择了PHP,虽然前者看起来更有“技术含量”,更“拿得出手”,但是也许这个作品就永远是一个毕业课程设计了…
PHP有什么不好,我现在还直接把它作为Linux下的脚本语言使用,像perl一样,也很好用(CLI: Command Line Interface)。它还是一个很好的Web services的client(我可没说不能做server),而且又这么普及,干嘛在很多只需要鸟枪的地方非要用大炮?
下面是计划书的文本。

毕业设计题目:
多用户内容发布管理系统(网志)
Multiuser Content Management System (Weblog)
课题简介:
Weblog(网志),简称Blog,是个人CMS(Content Management System,内容管理系统)的一种。很多人利用Blog系统像写日记一样记录每天的收获、所得,Blog系统将其整理、归档,其他人则可以自由地发表留言、评论,交流信息、思想。在国外,一些人甚至将其作为一种出版方式,还可以申请ISSN(国际出版物期号)来出版发行。
Blog是新技术的弄潮儿。基于XML的RSS Feeds / ATOM Feeds等是Blog的信息发布的重要形式之一。通过这种形式,不用去Blog网站,只要通过“聚合器”软件便可将众多Blog的内容收集起来(“聚合”),达到共享的目的。Blog也不是孤立的,通过基于XML-RPC方式的Ping/Trackback,各个Blog之间可以自动交换信息。另外Blog还通过提供Web Services接口支持远程更新和查询。
本项目的目标就是实现一个支持多用户的,多语言的Blog系统,后台使用数据库系统做为信息存储方式。编码方面通过模板引擎做到代码/界面分离。
本项目作为一个试验性的实践项目,是对GPL协议、极限编程等新型软件工程方法的一次积极尝试,也是对XML,XHTML/CSS,Web services(SOAP/XML-RPC),RSS/ATOM,Unicode等技术、标准的一次有益实践,为以后的软件开发积累经验。
本项目使用新软件工程方法极限编程(eXtreme Programming, XP)的思想,以测试驱动开发,以每两周为一个周期,每个周期结束都要拿出一个可供公开测试的原型产品,发布到网上进行公开测试,根据测试用户反馈制定下一周期的开发计划。每个新的周期都要对代码进行重构。
本项目采用开放源码的GPL协议,开发过程中的源码管理使用开放的CVS系统,并建立专门网站对项目进行管理,积极听取用户反馈。项目发布初始版本后,每天都要在CVS上进行每日构建(Daily Build) ,发布Nightly CVS Build版本。