IT文艺男评cms系列一:东风夜放花千树
写东西有时候爱应景,比如心里高兴就写上“舌尖上的cms”,但是自己看完也觉得肉麻。可是,再这么平铺的写下去,没有点新鲜感,估计自己都不愿意看了。手里有一套《诗词曲赋文》集,从高中一直读到现在,就用宋词里的章句,作为每一篇的标题吧。
什么是cms
内容管理系统,缩写cms。这是本系列文章里要讨论的主角。它有很多面孔,每个cms都有各自的功能,各自的卖点。
作为网站的内容管理系统,cms要担当起多种管理任务。最简单和常见的,是它要管理文章,和文章内的图片等。再多一些要求,cms要管理管理员和其他角色权限。再多一些要求,它还要管理网站的模版,注册用户,评论信息等等。
这就是cms,一个网站的管理核心。
有了cms做核心,我们再为它换上不同的壳,去扮演不同的网站,学校,企业,购物,博客,社区,等等等等。
国内的cms
目前国内的cms,从百度的结果看,有6个比较靠谱(不点名)。我个人常用的是dedecms,大大小小做了几十个网站,虽然不懂php,但是dede 做网站也不用懂php,只要会用dede的各种功能,会html,css,jquery这几个基本技能,就可以搞定一个普通的企业站了。当然,还需要美工配合。剩下的,就是教客户如何使用他们。
“客户的要求,就是cms要达到的目的。”
cms要以客户为中心,以项目为中心,所以一套cms定天下是不科学的。每个cms有自身的发展史,有自身的界面特点,使用特点。为了满足各种客户需求,开发人员需要不断的调整自己的思路和代码实现。一个小小的文字改变,比如“广告管理”改成“内容块管理”,就让一些企业网站用户使用起来不那么意外了。
国外的cms
国外的cms中,有一些是博客类型的。在众多外包站点里,博客建站的成交量很大,也有着众多的专业团队来制作博客型的网站。一套博客程序完全可以承担企业网站,新闻网站,团队网站,产品网站的制作。wordpress,就是个典型。本系列将重点讨论的是Rails cms,但是也要学习其他各种类型的cms,做一个笔记总结。
有一篇文章,详细的列举了国外的12款rails cms,点击这里查看,中文翻译在这里。
国内cms特点
不敢大肆的讲自己的观点,我只是讲讲自己看到的特点,至于不周和不对的地方,请大家在留言里指出。
特点一:整站可静态化html
特点二:“友情链接”,“广告管理”等字样明显,对cms有很大的误导
特点三:适合国人操作,尤其适合企业用户。我关注的不是站长的想法。
特点四:可以抓取
上几个截图:
315时刻:百度某cms的产品时,发现其公司软件开发资质证书是假的,各位留神。
特点五、国产的cms,在布局上都使用了frame嵌套,左右两部分,上方导航和左侧导航。整体框架无刷新,即可实现各种管理界面的切换。
好了,接下来,逐个看看国外的Rails cms。
zena
Zena是一个基于Rails框架开发的CMS内容管理系统,支持多语言,版本控制,基于组的权限控制,图片剪裁和大小调整,对开发者非常友好。
zena的安装很简单,直接用gem安装,github上有器代码,非常有学习价值。http://zenadmin.org/en/features 这里讲了它的几个特性,吸引我的是它后台编辑的能力,一个数据库支持多个站点管理,在线模版编辑和模版预定义。
zena非常适合Rails的学习和教学,遗憾的是,它可怜的后台界面...和它只能在ruby 1.8.7上运行。它的运行命令是 zena init。
好了,今天介绍了第12位的rails cms,明天按照上面提到的文章,介绍其他的cms。
最后送上一首宋词,给大家欣赏:
破阵子·为陈同甫赋壮词以寄之
醉里挑灯看剑,梦回吹角连营。八百里分麾下炙,五十弦翻塞外声。沙场秋点兵。
马作的卢飞快,弓如霹雳弦惊。了却君王天下事,赢得生前身后名。可怜白发生!
作者:辛弃疾,出生的时候,金已经占了北方,处在南宋和金对抗的时代。有郭靖那种人的性格特点,正统思想严重,一生都在战斗状态。
IT文艺男评cms系列二:塞下秋来风景异
写在前面:
标题来自范仲淹的《渔家傲》。古人的诗词里经常写到银河,可是现在的居住环境,连星星也只能看到最亮的那几颗了。
12款rails cms,点击这里查看,中文翻译在这里。继续按照它的罗列,来详细的分析下这些cms。当然,我不是个太规矩的人。
webiva
"Webiva是一个基于Rails开发的Web 2.0的开源网站构建系统,提供可扩展模块系统,允许轻松对功能进行扩展。"
每一款cms,都有它出生的来由,都有它服务的客户,这是它继续发展的动力。所以每个cms不是来解决cms面临的一切问题的。webiva就是这样,它界面很清新,或者叫卡通,管理上有比较清楚的按钮,这第一感觉,让它看起来更适合做学校,幼儿园的网站。
但是人家的目的不那么小家子气。它的几个特点,可视化编辑网站模版,快速的调整网站栏目结构和页面,支持更多的module,并且可以内建多个站点,并绑定各自的域名。按照它介绍里的说法,webiva是快速建站系统,而不是传统的cms。
webiva的作者是典型的技术流家庭,老婆做设计,老公做代码,webiva的想法来自2006年的micro-cms,项目1.0使用的是Rails2.3.5,2.0或许已经迁移到了Rails3上。
如果各位想深入的使用webiva,可以到它的开发论坛上,跟作者交流下
好,开始介绍下一个。
typo
typo是一个强大的博客系统,从2005年至今,它可以算作是最古老的rails博客系统,它有自己的引擎,有很好的SEO优化,支持theme和插件扩展。
typo是很正统的博客系统,现在看上去就像是Rails里的wordpress,当然,wp越走越快。type 6.0使用的是Rails3.0.10,type6.1使用的是ruby1.9,并且是Rails3.0系列的最后一个。
typo的代码也是很值得仔细研究的,讲到这,想到了当时的另一套博客程序,mephistoblog,它的代码也值得研究。但是现在看了一下它,还是停留在2011年的版本上,一年来没有什么改变,相比其他cms的活跃程度,mephisto真的是“长烟落日孤城闭”了。可能改叫大菠萝,或许会火吧。
typo和mephisto当时都提供了转移wp到自己平台的方法,也有很多Rails博客,至于用他们来制作企业级项目,我没有找到。可能他们只适合博客群体和Rails的Geek吧。
typo的demo在这里
本篇介绍了两套cms,下一篇会有重量级Rails cms登场了。来,再为各位送上一首宋词:
姜夔,《扬州慢》
淳熙丙申正日,予过维扬。夜雪初霁,荠麦弥望。入其城则四壁萧条,寒水自碧,暮色渐起,戍角悲吟。予怀怆然,感慨今昔,因自度此曲。千岩老人以为有“黍离”之悲也。
淮左名都,竹西佳处,解鞍少驻初程。过春风十里,尽荠麦青青。自胡马窥江去后,废池乔木,犹厌言兵。渐黄昏,清角吹寒,都在空城。
杜郎俊赏,算而今重到须惊。纵豆蔻词工,青楼梦好,难赋深情。二十四桥仍在,波心荡冷月无声。念桥边红药,年年知为谁生?
评:
《白石道人歌曲》收词八十首,其中十七首带有曲谱。《扬州慢》、《杏花天影》、《姜凉犯》、《暗香》《疏影》、《徵招》、《角招》等十四首是他自创的词调和乐曲;三首是填词配曲的,内有一首填的是范成大的《玉梅令》。这十七首,每首定有宫调,并以宋代工尺字谱(与今流行的工尺谱有所不同)斜行注节,扣于字旁。
白石创制的词调《扬州慢》,是他成熟时期的代表作。孝宗淳熙三年(1176)冬,他二十二岁,自汉阳出游,途经金人两次蹂躏、惨遭兵燹的扬州,看到昔日繁华的商业都城,已是“市尘尽荠麦,号角吹宵寒”,更显得空荡凄凉。眼前的景象和爱国的情思,激起他强烈的感情,用警辟对比的词藻度成此曲,传为佳作。
姜白石一生困蹇,怀才不遇,他在饱经颠沛转徙的困顾生活后,嘉定元年(1208)病卒于临安(今杭州)水磨方氏馆旅邸。幸得友人捐助,始获就近安葬。
IT文艺男评cms系列三:长安古道马迟迟
写在前面:
柳永的百科里,讲了很多故事,有兴趣的朋友可以一看,“奉旨填词”一段,不知是真是假。
12款rails cms,点击这里查看,中文翻译在这里。
前两篇文章里,写了zena,webiva,type,内容有点少,今天多写一些吧。
Slate
Slate不能直接下载代码,需要WVU的开发者向官方申请,并且要说明使用的目的。slate的目标是快速的建立传统类型网站,这可能和它的团队背景,西弗吉尼亚大学有关,当然,这是臆测,说传统类型网站,我第一个想到的是要给40-60岁客户使用的网站,并且要面临无数的要求。当然,客户要求的就是合理的,关键在于我们在开始的时候,如何做出选择,来应对这种改变,和改变带来的风险。
slate的fixtures,看上去很适合企业应用,依照它的功能列表开发,省却很多功能思考的时间。
Skyline cms
这是一个让我有点失望的cms,不是它不好,是它不适合我的审美。它进入后台,是可视化编辑所有页面。
来自荷兰的cms,点击这里进入它的演示入口。
skyline cms 符合seo优化要求,提供了外部数据接口,和基于solr的全文检索,所有的页面,内容和文件,都可以加入到索引中。缺点是,它不支持多站点。
接下来是三个经常被提到的cms了。
Refinery cms 和 Radiant cms
介绍上讲的“模块化、可扩展、设计灵活、支持多语言”,已经是众多cms的共同特点了,相比其他支持多站点的cms,refinery只支持单站点。
refinery的管理后台界面是亮点。
radiant和refinery有太多的相似,而且同样不支持多站点。radiant的特性里,自定义模版语言是其亮点所在。
两者相比,refinery更老一些,也展示了更多的客户案例,radiant就保守很多,2010年7月发布了0.9版本,目前的版本是1.0.0。官网上提供了一些扩展,但是跟refinery比起来,缺少showcase的支持,显得底气不足。
Rails本身是个优秀的产品,基于它的cms,无论是新人旧者,都是很好的学习对象,每一款都有自己的生存空间,驾驭好一款,都是对Rails的深 造。所以各位看客,我只是从一个不客观的角度去看他们,因为,我要找一款合适的cms,为之投入我大量的时间和经历,为客户提供有质量的开发。仅此而已。
locomotive cms
这是一款cms大作,使用MongoDB作为自己的数据库,支持快速部署到Heroku和Amazon ec2上,使用Liqid模版引擎。
打开locomotive的页面时间痛苦的事情,这里是它的github页面。
能够使用Rails与Heroku的组合是无比幸福的,cms为企业站服务的时候,最重要的是要让客户先看到,先用到,节省一切可以节省的时间。
如果你打算用loco来开发一系列的企业站,就做好加入他们团队的准备吧。这是一个运营时间不长的项目,如果碰到致命的bug,就只能求救与开发团队了,如果他们有时间的话。
它的后台页面还是挺精致的
可以在前台自主编辑
表单很漂亮,都是外在美
感谢朋友的信息,这里是locomotive的演示站点,可以申请自己的站点。看得出来,locomotive是在朝着heroku的商用开发前进的,有了很好的hosting解决方案,locomotive需要做的就是为客户提供便捷的建站服务。
写到这里,先做一个小结。cms不是万能的,每个cms都有自己设立时候的初衷,由此,而产生出它独特的特点。
最后,继续分享给大家一首柳永的词《蝶恋花》
伫倚危楼风细细,望极春愁,黯黯生天际。
草色烟光残照里,无言谁会凭阑意。
拟把疏狂图一醉,对酒当歌,强乐还无味。
衣带渐宽终不悔,为伊消得人憔悴。
IT文艺男评cms系列四:输赢成败,又争由人算
写在前面:
今天的标题语,出自金庸《天龙八部》的《洞仙歌》。词的主旨是纠结,
12款rails cms,点击这里查看,中文翻译在这里。继续最后四个cms的介绍。
Flagship Docs
这是一个文档管理系统,有搜索功能,我并未调试它的代码,不多做评价。从github的记录看,2011年至今,它为更新过。
Casein
Casein是个干净的系统,按照Install说明安装之后,可以看到它比较清新的后台界面。
Casein的用法也很简单,自己scaffold一个资源,然后在后台去管理,至于其他的设计,还是自己按照Rails的要求去设计,总体的看,Casein适合做一些典型企业站。
点击看大图,网上没有例子,大家自己调试吧,会发现一个错误。哎。
Browser CMS
Browser CMS是为团队写作设计的,它使用了最新的Rails3.2运行环境,可以设置各种写作控制权限,按照workflow控制编写发布流程。
遗憾的是我gem没有安装成功它,提示连接错误,也没有google到它的demo。
Adva cms
Adva的特点没有多写,只有一个,它安装在vender里。这是一个不影响主体开发的设计,如果急需一个管理工具,可以试试Adva cms。
到此,12款cms的介绍就结束了,可是我心中cms的设想还没结束。下一篇将继续讨论,我心中的cms。
最后,把《洞仙歌》的全文贴一下:
输赢成败,又争由人算?且自逍遥没人管。IT文艺男评cms系列五:一饮东坡醒复醉里面涉及的cms来自《12个基于Rails框架的CMS系统推荐》,中文翻译在这里 。奈天昏地暗、斗转星移。风骤紧、缥缈峰头云乱。
红颜弹指老、刹那芳华。
梦里真真语真幻。同一笑,到头万事俱空。
胡涂醉、情长计短。解不了、名缰系嗔贪。
却试问、几时把痴心断?
之前有个Q友问过我cms的事情,还发给过我他设计的cms结构。我看完之后只有2点意见,一是把“友情链接”改成“连接管理”,一是"广告管理"改成“展示单元管理”。
原因很简单,cms不能把功能写固定了。“友情链接”仅限于连接交换等,这个概念存在于至少十年以上,在很多人的概念里根深蒂固。但是,他不是cms的组成部分。“广告”也是如此,cms不是为友情和广告服务的。
cms是管理网站资源的。
网站的资源有哪些?A:文章,B:用户,C:图片,D:文件,E:评论,F:页面,这是到多选题,你选哪些作为cms的资源呢?
- A:文章,入选。只要它有内容,即便没有标题,也是当做文章,进入Article表,作为管理的第一内容。 B:用户,不选。用户系统是单独的系统,不是吗?尤其加上OpenID之后,用户的管理更加的独立于cms。 C:图片,入选。 D:文件,入选。 E:评论,不选。它虽然附属到其他资源上,但是由于评论的审核,显示,性能等原因,它也应该独立出去。 F:页面,入选。 对于Rails cms,该如何管理所有的资源呢?plugin更适合去做B和E的管理。cms做好A,C,D,F的组织。
上面的描述,适合做小型网站,如果是一个大型站点,该如何进一步设计呢?
问题一:目前的项目是一个综合门户网站,含有大量新闻资讯,文章,图片,视频(含连接)等。该如何用cms管理这个门户网站?
问题二:如果cms支持多站点,又该如何设计呢?
我的考虑:
1、全站html静态化。这个特点来自dede的长期使用,静态化的优点不用多说。
2、独立的评论模块。其实只要一个唯一的url,就可以显示它的评论了。评论的ajax加载,审核,添加,显示等要求,没必要交给cms去处理。评论的独立,也减少了垃圾评论攻击导致cms的性能下降。
3、独立的用户模块。sns热起来之后,很多人更加关注人与人,人与资源之间的互动。对于资源,用户需要做的是分享,对于人,用户需要关注。(关注后,用户需要得到关注资源的动态。)
4、plugin支持。最近研究redmine,现在研究cms,对plugin的使用更加有体会。
5、多站点与单站点。cms应该支持多站点,但是具体实现方案,如编辑器,图文混排,文件上传,模版编辑等,还可以作为单站点使用方案。
6、云平台部署。这是最深刻的一点,如何快速的利用云平台资源,如盛大云,将站点快速的让客户看到,使用到,是cms应该解决的。很多cms只卖代码,但是像locomotive cms,即卖代码,又提供hosting解决方案,是我个人倾向的模式。
7、私有代码库。我认为,对于一个服务型的项目,私有的代码库可以最大程度避免误操作,可以让代码人员不必关心业务部分,而直接升级主体代码,还可以让整体开发流程更易于控制。
8、开发者社区。开发者是容易孤独的群体,围绕cms,拥有一个活跃的开发者社区,会让参与的人快乐一点,不是吗?
9、开发者在线交易平台。作为开发者,任何一个开发出来的作品,只要符合开发标准,就可以在开放平台交易。这里需要解决的是,标准的制定。
10、教学平台。4月份的北京之行,让我更坚信这个教学平台的意义。
声明:以上观点,出于个人承接的项目对cms的需求,以及个人在工作中的经验思考,总结而来。仅作参考。
写到这里,对cms的想法差不多写完了。这5篇系列的文章,属于李玮个人原创,如有转载,请注明出处为“里克的自习室”。感谢您对Rails的支持。
最后再送给大家一首词,以供消遣。
秦观,《如梦令 》
莺嘴啄花红溜,燕尾点波绿皱。指冷玉笙寒,吹彻小梅春透。依旧,依旧,人与绿杨俱瘦。李清照的《如梦令 》大家都熟悉,时间上,秦观去世的时候,李清照刚刚16岁。