PHPEye开源社区 » PHP项目运营与系统管理 » 如何打造一个优秀的CMS
《Programming PHP》第二版上市
2007-6-23 08:59 Haohappy
如何打造一个优秀的CMS

打算过段时间自己写个CMS,正在研究CMS的需求和特性。

怎样才算一个优秀的CMS呢? 我觉得这篇文章介绍得比较全面。
[url]http://opensourcecommunity.org/2007/06/21/what-do-you-think-makes-good-cms[/url]

总结如下:

[b]前台:[/b]
[code]   
    * 支持IE, Firefox, Safari, Opera
    * 干净、标准、语义化的HTML
    * CSS 控制布局
    * 标准的 CSS
    * 没有JS错误
    * 没有CSS和JS也可以正常访问
    * JS/CSS经过优化
    * 干净的url,适合于SEO[/code]

[b]后台:[/b]
     [code]
    * 可以在虚拟主机上很方便地安装
    * 系统需求低,普通的机子即可安装
    * 易于配置
    * 可改变皮肤
    * 自带很多皮肤
    * 可以让用户自己创建皮肤,设计模板,使界面多样化
    * 使用数据库抽象层
    * 易于扩展模块和插件
    * 有很多可用的模块和插件
    * 用户可以很简单地自己开发插件
    * 容易升级和更改配置[/code]

[b]文档及开发:[/b]
    [code]
    * 完善的用户使用手册
    * API 文档
    * 有配套的支持社区,用户遇到难题时,可以从中找到相关的解决方案
    * 积极的维护
    * 公开的bugtracker
    * 单元测试[/code]

[b]特性:[/b]
       [code]
    * 支持多国语言
    * “静态”文章 时间不敏感型文章(time insensitive)
    * 新闻和Blog  时间敏感型文章(time sensitive)
    * 灵活的分类功能
    * 容易在文章中引用图像
    * 支持用户注册,注册表单可扩展
    * accepts paid user registrations (subscriptions) 支持商业版用户注册(订购)
    * 可以导入RSS
    * 可以灵活地发布RSS
    * 社区:用户可发布评论
    * 防止垃圾评论
    * 评论易于管理(可批量管理)
    * 可以与论坛程序集成
    * can use some affiliate program (Amazon) 
    * 可以插入banner或Google ads
    * can sell stuff 可以买卖东西
    * 新闻邮件订阅
    * supports document versions 文档版本
    * collaborative editing 协同编辑
    * granular control over what goes to the homepage 首页可分块控制
    * flexible contact form, multiple contact forms, e.g. job application 灵活的联系表单,多样化,如工作申请表单
    * 网站地图
    * SEO sitemap生成功能
    * 所见即所得的编辑器
    * flexible sidebar areas for different widgets 不同的部件有灵活的工具条[/code]

[b]安全:[/b]

    [code]
    * 防止跨站脚本XSS
    * 防止SQL注入
    * 无法越权访问[/code]

[b]访问控制:[/b]
  [code]   
    * 用户权限分级,如可以对每个具体用户或者某个用户组的所有用户进行权限控制
    * 功能权限分级,如设定某个功能的权限,如blog的权限与普通页面不同
    * 可自定义用户组
    * 支持一些常用的功能,如验证码
    * 管理员分类,有的有完全的管理员权限,有的只有部份权限[/code]

[b]其它零碎想法:[/b]

[code]1. 强大的分类系统,例如Tag系统。
2. 更强大的内容定位系统,即“相关文章”的功能。可通过关键词让用户找到可能更适合的文章。
3. 只提供内容和结构,而表现层方式可选,用户可以自己选择如何呈现数据。即采用XML+XSLT。
4. 给管理员提供一些实用的管理工具。比如Discuz!那样的SQL工具、备份工具等等。[/code]

[[i] 本帖最后由 Haohappy 于 2007-6-23 09:04 编辑 [/i]]

2007-7-29 22:49 伊达明勋
* 防止跨站脚本XSS
    * 防止SQL注入
    * 无法越权访问

版主有没有这方面的资料拿来共享一下吗?

2007-7-30 11:30 diogin
《Essential PHP Security》
《PHP Architects' Guide to PHP Security》

2007-8-27 01:10 Yimin
偶最近也正在潜心专研drupal cms的代码。:)

2007-9-18 21:14 Matt
[quote]原帖由 [i]diogin[/i] 于 2007-7-30 11:30 发表 [url=http://www.phpeye.com/bbs/redirect.php?goto=findpost&pid=508&ptid=70][img]http://www.phpeye.com/bbs/images/common/back.gif[/img][/url]
《Essential PHP Security》
《PHP Architects' Guide to PHP Security》 [/quote]


偶想学英语。。。

2007-9-22 11:13 skyplace
最好能支持不同格式(其他cms)的数据导入。

2008-2-26 18:04 古树
前台的用户体验也很重要:loveliness:

2008-2-26 18:04 古树
功能多,还得易用

2008-4-27 05:54 stewen
很好很强大!

2008-6-4 15:36 yhl_amerry
总结得好,学习了

2008-11-7 17:44 Deman
LZ写得很详细,最近也正在研究CMS,打算做一个

页: [1]
查看完整版本: 如何打造一个优秀的CMS


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.