因为公司的框架不开源,但是自己一直都有研究框架的兴趣,所以拿了一个开源的框架过来,而这个开源的框架就是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)的更多相关文章

  1. Kooboo CMS 无聊随笔(2)

    上次写了一篇博客 http://www.cnblogs.com/kmsfan/p/Kooboo_CMS_suibi.html 作为这个系列的开篇,简单的介绍了一下Kooboo CMS的一些基本情况和界 ...

  2. Kooboo CMS技术文档之五:站点配置管理

    站点关系 管理站点间的关系,站点可以有子站点,子站点继承父站点的部分配置数据,同时子站点还可以根据需要,本地化由父站点继承而来的数据.通过继承和本地化,可以让子站点在用最小的改动代价,来完成一个与父站 ...

  3. Kooboo CMS技术文档之二:Kooboo CMS的安装步骤

    在IIS上安装Kooboo CMS Kooboo CMS安装之后 安装的常见问题 1. 在IIS上安装Kooboo CMS Kooboo CMS部署到正式环境相当简单,安装过程是一个普通MVC站点在I ...

  4. Kooboo CMS技术文档之一:Kooboo CMS技术背景

    语言平台 依赖注入方案 存储模型 1. 语言平台 Kooboo CMS基于.NET Framework 4.x,.NET Framework 4.x的一些技术特性成为站点开发人员使用Kooboo CM ...

  5. Kooboo CMS技术文档之四:Kooboo CMS的站点组成部分

    Kooboo CMS本着功能独立分离的原则,将站点分为三部分组成:用户管理,站点管理和内容数据库管理.各个功能之间既可独立使用,也可以容易组成在一起形成一个完整的系统. 用户管理 管理整个系统内的用户 ...

  6. Kooboo CMS技术文档之三:切换数据存储方式

    切换数据存储方式包括以下几种: 将文本内容存储在SqlServer.MySQL.MongoDB等数据库中 将站点配置信息存储在数据库中 将后台用户信息存储在数据库中 将会员信息存储在数据库中 将图片. ...

  7. Kooboo CMS 之TextContent详解

    TextCotent 在Kooboo.CMS.Content下面,在View中有使用到这个模型层. TextContent继承了ContentBase,而ContentBase是由2个部分类组成的,一 ...

  8. Kooboo CMS - 之后台注册用户流程方法。

    今天决定写一篇好一点的文章,吼吼!首先我们必须找到这个文件,这个文件是UsersController.cs,我们找到和添加新用户有关的方法,如下代码: public virtual ActionRes ...

  9. Kooboo CMS - @Html.FrontHtml().Meta()详解。

    下面是代码: public virtual IHtmlString Meta() { AggregateHtmlString htmlStrings = new AggregateHtmlString ...

随机推荐

  1. 对Java初学者的忠告

    1) 适合自己的图书才是最好的,最好的书并不一定适合你,看自己的情况. 如果你是一个Java初学者一上手就捧一本Thinking in Java在手里,我想你的日子是不会好过的,那样的书给有一定基础的 ...

  2. C语言系统时间读取

    1 读出系统时间(每隔一秒)#include#includeint main(){  while(1) {    time_t t;    t= time(0); struct tm *p;     ...

  3. qt5.5 qtcreator中文乱码

    MSVC2010默认保存GBK编码.如果不转换成utf-8编码,对GBK编码的文件,中文可以直接用QStringLiteral()宏,如:QMessageBox msgBox;msgBox.setTe ...

  4. 在Android上使用qemu-user运行可执行文件

    在Android上使用qemu-user运行可执行文件 作者:寻禹@阿里聚安全 前言 QEMU简要介绍: QEMU可以解释执行可执行程序.既然QEMU可以解释执行可执行程序,那么QEMU就能够知道执行 ...

  5. 纯命令行的编辑利器:用好 awk 与 sed

    awk 的基本语法 awk 是模式查找与处理语言,是文本处理的利器.使用 awk 可以只用一条简单的命令完成复杂的文本数据处理. awk 命令的基本结构为: awk '模式 {处理}' 文件 比如,打 ...

  6. logistic回归

    logistic回归 回归就是对已知公式的未知参数进行估计.比如已知公式是$y = a*x + b$,未知参数是a和b,利用多真实的(x,y)训练数据对a和b的取值去自动估计.估计的方法是在给定训练样 ...

  7. JavaScript面试时候的坑洼沟洄——表达式与运算符

    上篇博客JavaScript面试时候的坑洼沟洄--数据类型总结了一下JavaScript数据类型几转换的相关知识,很多朋友可能和我一样,买了书后对数据类型啊.运算符啊.语句啊都是扫两眼或直接略过的,自 ...

  8. Java,extends,继承

    1. 继承的概念: 继承在本职上是特殊--一般的关系.子类继承父类,表明子类是一种特殊的父类,并且具有父类所不具有的一些属性或方法. 2. 继承中的初始化顺序: 从类的结构上而言,其内部可以有如下四种 ...

  9. edit

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. 应用Web.Config配置网站

    1.配置数据库连接 在ASP.NET中配置数据库连接的两种方式: appSettings和connectionStrings 命名空间: using System.Configuration; 1)a ...