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創建功能,比如我想自由組裝自己的內容頁面,我想有一個標題,有一個副標題,在副標題的下面的左可以創建視頻,右邊創建文本編輯器,我好想沒跟大家說清楚,說簡單一點吧,其實就是這樣。

 

 

 

  然后像這樣,可以選擇不同的類型。

然后最終就像這樣:

 

 

 

就是不同的內容類別 = = ,好像我描述復雜了。

內容可以綁定特定的內容類別。

 

然后我們可以在頁面里面把這個塊添加進來,就像這樣。

 

  里面會顯示內容類型,好了,今天我還是不介紹代碼了吧,以后有空的話介紹下代碼結構。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM