Kooboo CMS 无聊随笔 (1)
因为公司的框架不开源,但是自己一直都有研究框架的兴趣,所以拿了一个开源的框架过来,而这个开源的框架就是Kooboo CMS.首先我无法用言语来形容我对这个CMS的赞美之词了,总之大家知道一点,这个CMS是一款非常棒的CMS,功能非常强大,代码也写得非常的好,很有研究价值。
由于不是所有的的人对Kooboo CMS有了解,我还是做一个简单的介绍吧,算作这个系列的开篇。
http://www.cnblogs.com/hjf1223/archive/2009/08/15/Kooboo_CMS.html 刚才随便在网上搜到了一篇文章,这个人很牛(其实我觉得一般的大牛都不屑于写博客吧),所以把自己的能力都给隐藏起来了,简单的说,KOOBOO CMS就是中国的一个团队开发的一款立志于走国际化路线的CMS系统,使用的是ASP.NET MVC4 为基础框架的CMS。这在国内是很少见的,因为大多数的CMS都是JAVA或者PHP的,或者.NET的CMS都是一些老掉牙的,只有Kooboo CMS,一直更新到现在,官网的话大家可以百度一下,不过都是全英文的。Kooboo CMS所有的代码都可以在http://kooboo.codeplex.com/ 下载得到,源代码都是托管到github上面的。
首先我觉得还是来介绍一下CMS的用法吧,然后再来说一下代码结构。CMS的安装方法很简单,就是在CodePlex下面下载源码,然后把源码解压缩,然后把文件夹挂载在本地或者远程IIS上面就OK了,具体的我就不多说了,我们还是来看看KOOBOO CMS的庐山真面目吧,下面以本机方式去运行。首先输入http://localhost:9012/admin ,就是进入管理界面,默认的账号和密码是admin/admin,我们进入Kooboo CMS的后台。
由于Kooboo CMS是一个面向国际化的CMS,所以大家其实可以更改语言,我甚至看到了阿拉伯语,好吧,话题扯远了。我们还是来大概了解一下它的整体功能吧。
1.网站集群:说得简单一点,一个CMS可以建立无数个站点,每一个站点的下面又可以有无数个子站点,这就是网站集群。
2.关系:下面的图就是所展示的关系,关系要把站点-内容数据库-会员结合起来,简单点说,他们之间的关系就是:1个站点只能有唯一的数据库和会员数据库,但是一个数据库或者会员列表可以由多个网站共享,不错吧(*^__^*) 嘻嘻……?!
3.内容:其实就是内容数据库,由于Kooboo CMS是一款非常强大的CMS,所以自然支持了市面上所有的数据库包括了XML(默认),但是同时只能支持一款,如果需要的话,可以在codeplex上面去下载相应的 Provider,具体的上面的链接已经写了,我就不多说了,自己去找。如果不用默认的存储方式的话(假设用的SQL SERVER),比如我用的SQL SERVER ,大家也许会问,我没有表怎么办,其实你只需要把数据库建立好了就行了,表它会自动帮你生成,如下图:
其实它的命名是有规范的,比如Kooboo_cms是内容数据库名称,后面的就相当于“表名”,一个数据库里能存在于多个内容数据库,他们以不同的前缀区分。
4.会员,类似于上面说的内容,就是存放会员表的那些表,当然这个属于Membership_Provider,这里我要做一点说明,有2个Provider类似,一个是Account_Provider,另一个是Membership_Provider,他们的区别在哪呢?account的是进入后台的用户,而Membership是某个网站的用户,account可以进入后台,并且有不同的角色的角色有不同权限,可以看到不同的东西,而Membership不能进入后台,至今我还没有发现前台用户和后台用户通用的方法。我们前台注册的用户是Membership类型的用户,而Account类型用户只能在后台由系统管理员去添加,我个人感觉这点还是没有DZ好,不过话说回来了,DZ是TX支持的,这个能比?
5.网站模板:这个我没深入研究,不过简单一点说吧,模板就是一套做好的网站,你用了模板的话,所有的页面都已经做好了,当然,你可以去Kooboo CMS 的官网去下载模板,不过都是英文的,谁叫这个CMS走的是国际化的路线呢?
6,和7我暂时还没有研究,所以暂时不说。
我们随便点进去一个网站吧(怎么新建网站什么的就不说了,这个实在是太简单了)。出现如下界面:
我们可以很清楚的看到这个网站的“组织结构图”,这些Home,About等等的东西,其实都是显示在导航条的“动态页面”,其实我个人觉得这些不能理解为分类,应该理解为不同的视图页面,其中我们可以进行开发工作,KOOBOO CMS很方便的提供了页面的修改功能,我们点进去看看:
大家看到了吗,上面的地方,有工具栏,具体的我就不多说了,如果对这款CMS有兴趣的,可以自己去研究一下,都是很清晰的(毕竟不要自己写代码,直接拿来用),下面的地方可以添加块,这些块并不是自由添加的,而是在我们的Layout里面规定的位置。KOOBOO CMS作为一款功能强大的CMS,对网站的功能做了巨大的扩展,就比如有自己的方法去写代码,有自己的编辑器,如下图,我给大家先展示一下LAYOUT布局的设计编辑器。
有点像DW的编辑器吧?其实唯一美中不足的,我个人觉得,就是这个编辑器没有自动提示代码的功能,如果有的话,那就太强大了,右边的还可以插入事先写好的辅助代码,怎么样牛X吧。我们可以充分的利用KOOBOO CMS现成的一些方法,比如上面的@Url.FrontUrl()...就是CMS里面自带的方法,我们可以定位到特定的文件夹下面去。不过这个最重要的,大家最关心的,我觉得还是怎么定位具体的内容框架,就像上上图说的那个地方,其实很简单,就是用 @Html.FrontHtml().Position("main2")外面带一层DIV给一个DIV叫main2就行了。这个才是布局的精华部分。
下面我们看一下VIEW,其实这里的视图都是部分视图,你可以把它理解成一个一个的小的layout,放张图,其实和LAYOUT的写法也没什么不同。
具体的代码怎么写,看子集的需求,还要多多看看源码,这样才知道有哪些方法可以用,用得比较好,至于帮助文档,我个人不推荐官方的,写得太笼统了,不过有兴趣的可以去codeplex上面下载,是一个CHM文档,不过是全英文的。我们可以在网站内部添加文件,或者进入物理文件夹,不过这个添加文件要有讲究的,具体可以参看sample site(KOOBOO CMS自带了一个示例网站)。
另外KOOBOO CMS还自带了标签系统,标签可以表示一段文字,只要用到了这个标签的地方,就可以显示特定的文字,方便改动,一劳永逸。我们可以新建页面,而页面是建立在Layout布局页面的基础上的,每一个页面对应一个CSHTML VIEW层。
其实我觉得这个CMS最强大的地方还是在于自定义类型,就比如你有一个类型,这个类型可以实现不同的功能,说简单一点,你就是可以DIY创建功能,比如我想自由组装自己的内容页面,我想有一个标题,有一个副标题,在副标题的下面的左可以创建视频,右边创建文本编辑器,我好想没跟大家说清楚,说简单一点吧,其实就是这样。
然后像这样,可以选择不同的类型。
然后最终就像这样:
就是不同的内容类别 = = ,好像我描述复杂了。
内容可以绑定特定的内容类别。
然后我们可以在页面里面把这个块添加进来,就像这样。
里面会显示内容类型,好了,今天我还是不介绍代码了吧,以后有空的话介绍下代码结构。
Kooboo CMS 无聊随笔 (1)的更多相关文章
- Kooboo CMS 无聊随笔(2)
上次写了一篇博客 http://www.cnblogs.com/kmsfan/p/Kooboo_CMS_suibi.html 作为这个系列的开篇,简单的介绍了一下Kooboo CMS的一些基本情况和界 ...
- Kooboo CMS技术文档之五:站点配置管理
站点关系 管理站点间的关系,站点可以有子站点,子站点继承父站点的部分配置数据,同时子站点还可以根据需要,本地化由父站点继承而来的数据.通过继承和本地化,可以让子站点在用最小的改动代价,来完成一个与父站 ...
- Kooboo CMS技术文档之二:Kooboo CMS的安装步骤
在IIS上安装Kooboo CMS Kooboo CMS安装之后 安装的常见问题 1. 在IIS上安装Kooboo CMS Kooboo CMS部署到正式环境相当简单,安装过程是一个普通MVC站点在I ...
- Kooboo CMS技术文档之一:Kooboo CMS技术背景
语言平台 依赖注入方案 存储模型 1. 语言平台 Kooboo CMS基于.NET Framework 4.x,.NET Framework 4.x的一些技术特性成为站点开发人员使用Kooboo CM ...
- Kooboo CMS技术文档之四:Kooboo CMS的站点组成部分
Kooboo CMS本着功能独立分离的原则,将站点分为三部分组成:用户管理,站点管理和内容数据库管理.各个功能之间既可独立使用,也可以容易组成在一起形成一个完整的系统. 用户管理 管理整个系统内的用户 ...
- Kooboo CMS技术文档之三:切换数据存储方式
切换数据存储方式包括以下几种: 将文本内容存储在SqlServer.MySQL.MongoDB等数据库中 将站点配置信息存储在数据库中 将后台用户信息存储在数据库中 将会员信息存储在数据库中 将图片. ...
- Kooboo CMS 之TextContent详解
TextCotent 在Kooboo.CMS.Content下面,在View中有使用到这个模型层. TextContent继承了ContentBase,而ContentBase是由2个部分类组成的,一 ...
- Kooboo CMS - 之后台注册用户流程方法。
今天决定写一篇好一点的文章,吼吼!首先我们必须找到这个文件,这个文件是UsersController.cs,我们找到和添加新用户有关的方法,如下代码: public virtual ActionRes ...
- Kooboo CMS - @Html.FrontHtml().Meta()详解。
下面是代码: public virtual IHtmlString Meta() { AggregateHtmlString htmlStrings = new AggregateHtmlString ...
随机推荐
- Java json串生成及转bean
package com; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import j ...
- iOS程序模块化设计
一.模块化设计的概述: 模块化设计(Block-based design):对一定范围内的不同功能或相同功能的不同性能.不同规格的产品进行功能分析的基础上,划分并设计出一系列功能模块,通过模块的选择和 ...
- js原生代码实现轮播图案例
一.轮播图是现在网站网页上最常见的效果之一,对于轮播图的功能,要求不同,效果也不同! 我们见过很多通过不同的方式,实现这一效果,但是有很多比较麻烦,而且不容易理解,兼容性也不好. 在这里分享一下,用j ...
- angularjs provider 供应商服务
今天学习了angularjs的provider的供应商服务,写了个例子(自定义供应商服务,也可使用angularjs内部提供的服务) var starterApp = angular.module(' ...
- java学习笔记(2)
上篇讲了一些概念之类的知识点,现在继续总结知识点: 1.用户自己在控制面板输入内容是如何实现的:java中有一个类可实现这个功能 类Scanner: import java.util.Scanner; ...
- .NET中操作IPicture、IPictureDisp的小随笔
[题外话] 最近在做一个调用某实验仪器的程序,这个仪器提供了Windows上COM的接口.调用仪器的时候需要传输图片,提供的接口里使用了IPicture这个接口,由于以前没接触过,所以查找了一些资料, ...
- Tomcat搭建
标签:Tomcat 概述 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选. ...
- [Unity3D]自己动手重制坦克舰队ArmadaTank(2)从碰撞说起
[Unity3D]自己动手重制坦克舰队ArmadaTank(2)从碰撞说起 在上一篇里我给出了重制的坦克舰队效果图和试玩程序.本篇介绍一下玩家坦克和敌方坦克碰撞问题. +BIT祝威+悄悄在此留下版了个 ...
- 如何创建一个AJAX-Enabled WCF Service
原创地址:http://www.cnblogs.com/jfzhu/p/4041638.html 转载请注明出处 前面的文章中介绍过<Step by Step 创建一个WCF Servi ...
- How.To.Process.Image.Infomation.Of.Rotate.And.Flip.From.Server
需求说明 客户端接收到服务器传送过来的图像数据,客户端通过对图像进行旋转和反转操作. 然后把这个旋转和反转的数据上传到服务器. 客户端在接收图像的时候, 也会下载以前的旋转和反转参数, 然后客户端根据 ...