上次寫了一篇博客 http://www.cnblogs.com/kmsfan/p/Kooboo_CMS_suibi.html 作為這個系列的開篇,簡單的介紹了一下Kooboo CMS的一些基本情況和界面。這一次我打算再寫一篇關於kooboo CMS的文章,不過我還是不打算講代碼,我還是要講一下使用方法,我只是覺得,如果一個人連這個東西都不會用,何談二次開發呢?好吧,廢話不多說,還是開始吧。
這一次我會講50%以上的用法,涉及了整個Kooboo CMS,另外50%以后再說,其實我是沒學到,哈哈哈哈,閑話不多說開始,Kooboo CMS最大的缺點就是走國際化路線,而且它的幫助文檔非常的陳舊和簡單,所以很多時候,只能靠自己摸索。
我們來分成幾個模塊來說吧。
網站集群
網站的導入導出
先來介紹一下網站的導入導出功能吧,這個是一個非常好的功能,可以方便的對網站的一切進行備份和還原。說白一點,當你導出數據的時候,其實就是導出了整套網站的模板。
導出
我們先來點一下導出按鈕,然后會有3個選項,可以導出數據庫,網站,或者網站數據庫都導入,這里我們為了一勞永逸,就選擇都導出。
如果你還有子站點的話,還可以同時導出子站點的數據,好了,下面我們來分析一下導出的ZIP文件。
- Files是網站的文件,比如你可以放圖片進去,然后用固定的方法去調用到這個文件夾下的文件。當然這屬於源碼范疇了。這里的文件對應開發->文件里面的東西。
- Lables 對應 開發->標簽 下的標簽。
- Pages其實簡單點說,就是一些config文件,下面是我隨便找的一個CONFIG文件,這個文件是根據你的設計自動生成的。
- Script其實就是一個單獨的文件夾存儲腳本文件的,也可以在開發->腳本 里面找到對應的文件。
- Template 文件夾里面有2個子文件夾,一個是Layout,另一個是View,里面的所有的單個的VIEW或者Layout都有一個template.cshtml和setting.config文件,我們不僅可以使用Kooboo CMS提供的編輯器,還可以把整個網站弄到Visual Studio里面來編輯測試,這樣可以大大提高工作效率。
- Theme 其實也是一個單獨的存放樣式的文件夾,也可以在開發底下找到。
- WebEvent底下都是日志文件,這個沒什么好說的,就是錯誤信息。
導入
下面介紹一下導入網站的功能,我們先來看一下導入界面,其實這里做一點說明,如果是下載網上的在線模板新建網站,其實和導入的思路一樣,只是換了個樣子。
父站:你可以把你導入的網站看成是一個子站點,如果留空的話,那么導入的站點是一個父站點。
內容數據庫和會員數據庫:上一篇已經做了說明,這里簡單說一下,就是你的導出里面的ContentDatabase.zip和Membership.zip文件。
這里如果你有站點的所有信息的話,我個人建議先在控制面板里面分別導入這2種數據庫,然后這里只需要選擇就行了,網站和數據庫2步導入。
系統設置
這里就簡單的說一下幾個難點。
- 域名:這里的域名就是你網站的域名,可以有多個,如果是本機就填寫2個,127.0.0.1 和 localhost 不需要填寫端口號。
- SMTP:Kooboo CMS里面提供了找回密碼的功能,需要用到此項,具體的可以百度一下,很多方法。
- 系統用戶,這里是很容易犯錯誤的地方,有些人點了創建按鈕,卻發現新建不了用戶,其實這里是給用戶分配角色,真正的創建用戶是在右上角。
- 自定義錯誤和URL重定向這個就不介紹了,網上一大堆解釋。
<?xml version="1.0" encoding="utf-8"?> <Page xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Kooboo.CMS.Sites.Models"> <LastUpdateDate>2015-04-10T12:42:08.6135235Z</LastUpdateDate> <CacheToDisk>false</CacheToDisk> <RequireHttps>false</RequireHttps> <IsDefault>true</IsDefault> <EnableTheming>true</EnableTheming> <EnableScript>true</EnableScript> <HtmlMeta> <Author>KMSFan</Author> <Keywords></Keywords> <Description></Description> <Customs xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" i:nil="true" /> <HtmlTitle>冒險島2中文社區</HtmlTitle> <Canonical></Canonical> </HtmlMeta> <Route> <Identifier></Identifier> <RoutePath></RoutePath> <Defaults xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" i:nil="true" /> <ExternalUrl></ExternalUrl> <LinkTarget i:nil="true" /> </Route> <Navigation> <Show>true</Show> <DisplayText>主頁</DisplayText> <Order>0</Order> <ShowInCrumb>true</ShowInCrumb> </Navigation> <Permission> <AllowGroups xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" i:nil="true" /> <AuthorizeMenu>false</AuthorizeMenu> <RequireMember>false</RequireMember> <UnauthorizedUrl></UnauthorizedUrl> </Permission> <Layout>test</Layout> <PagePositions> <PagePosition i:type="ViewPosition"> <PagePositionId>HYH3X</PagePositionId> <LayoutPositionId>top</LayoutPositionId> <Order>0</Order> <SkipError>false</SkipError> <ViewName>header2</ViewName> <Parameters i:nil="true" /> <OutputCache> <Duration>0</Duration> <EnableCaching>false</EnableCaching> <ExpirationPolicy>AbsoluteExpiration</ExpirationPolicy> </OutputCache> </PagePosition> <PagePosition i:type="ViewPosition"> <PagePositionId>2ZXDK</PagePositionId> <LayoutPositionId>main2</LayoutPositionId> <Order>0</Order> <SkipError>false</SkipError> <ViewName>main</ViewName> <Parameters i:nil="true" /> <OutputCache> <Duration>0</Duration> <EnableCaching>false</EnableCaching> <ExpirationPolicy>AbsoluteExpiration</ExpirationPolicy> </OutputCache> </PagePosition> </PagePositions> <DataRules /> <Plugins xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" i:nil="true" /> <PageType>Default</PageType> <OutputCache> <Duration>0</Duration> <EnableCaching>false</EnableCaching> <ExpirationPolicy>AbsoluteExpiration</ExpirationPolicy> </OutputCache> <CustomFields xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" /> <Published>true</Published> <UserName>admin</UserName> <ContentTitle>冒險島2中文社區</ContentTitle> <Searchable>false</Searchable> </Page>
開發
- 布局:上一篇已經做了簡單的介紹,布局其實就是網站的外框樣式,@Html.FrontHtml().Position("Main") 這個是Kooboo 里面自帶的方法,如果你的網站需要制定一套布局的話,那么就可以用@Html.FrontHtml().Position("要布局的DIV的ID"),你放了幾塊內容,你就可以設置幾塊內容。下面的是一些輔助功能,可以方便的調用已經寫好的其他頁面的代碼,具體的我就不說了,大家有興趣的可以自己去嘗試一下,還要注意一點,網站所有的動態頁面都是建立在布局頁面的基礎上的,如果你沒有布局頁面,是不可能建立網站的頁面的。
- 視圖:視圖不要我多介紹了,置於控制層的東西,Kooboo 已經幫我們想好了,我們在生產環節下不用考慮,這個源碼我以后會抽空講解。大家看到了代碼吧,就和我們寫普通的代碼一樣,由於Kooboo不是那種傻瓜式的,不像DZ一樣所有人都可以去建站,其實這個CMS還是需要一些.NET的基礎的,不適合小白站長。告訴大家一個小技巧,如果你想建立文件夾的話,在視圖列表里面,那么就可以用文件夾名.文件名,其中文件夾名可以多層嵌套。下面的代碼基本的意思就是從ViewBag里面去取數據,那么這個Article從哪里來的呢?
下面會告訴你一些秘密,這個要牽扯到后面說的知識點,就是這個內容底下的文件夾,這個文件夾里面有很多的文件,你先這么理解就OK了。
注意:這個是大家容易犯的錯誤,犯什么錯誤呢,當我寫了一個新的視圖,然后和網站的示例視圖一模一樣,但是具體報錯了,在使用的時候,百思不得其解。
上面的只是我的一個示例,大家如果不信的話可以把那個可以運行的VIEW復制一個新的,然后使用它,會發現也是報錯,其實問題的關鍵很難想到,原因我開始說了,Kooboo CMS的幫助文檔不僅是英文的,而且還很少,很多地方都沒寫,所以導致開發者走了很多彎路,其實真正的原因就在於我開始圖里畫的圓框。如果你新建了一個CMS,是不存在那個東西的,因為我們需要ViewBag不為空,就需要做一些設置,我這里打開示例網站已經寫好的。
數據名稱:就是你的ViewBag.XXX后面的東西,Kooboo CMS提供了2種方式去獲取數據,一種是從外部的HTTP返回的Json或者XML中獲取,另一種就是從已有的數據源里面獲取,你可以新建一個試試看,具體的我就不操作了,內容過濾什么的我自己都沒怎么試一試,不過大體都這樣,大家可以自己找些測試數據,多試幾遍就出來了。
頁面
我隨便打開一個給大家講解一下重點,這個地方不太難,開始說過那個導出功能的時候介紹了一下文件夾的作用,其中說到了這個頁面相關的都是config文件組成的,這里其實就是一個生成CONFIG文件的過程,哈哈。
- 設計器:大家發現了沒有,這些里面有一些塊,這些塊可以插入HTML,目錄,或者視圖。這些塊其實就是我們開始在Layout里面定義的塊,用那個,@Html.FrontHtml().Position("Main") 設計的塊。
- 這里面簡單的我就不說了,其他的難的我也沒研究到,所以也不說了,大家有興趣可以自己去理解一下。
內容
這里主要講一下內容類型和內容,這2塊聽名字都是息息相關的。
內容類型
我打開一個已經做好的內容類型,給大家講解一下
大家看看,這像什么,像不像一張表呢?里面有很多的字段?其實我告訴你,只要你建立了一個內容類型,對應的數據庫里就會生成一張表!
我們看看有哪些類型。
這么多類型,其實意思很簡單,這些東西就是控件,這里要牽扯到內容,說白一點,內容類型和內容是一對多的關系,我可以設置內容的類型,如果我這里有幾個控件的話,
那么當我新建內容的時候,就會顯示幾個控件讓我去添加具體的詳細內容。不信你看。
這些都是上面的那些字段信息,怎么樣,明白了吧?
內容
內容和內容類型要結合起來,這樣,不同的內容都是放在不同的類型的文件夾下面的,我們來新建一個文件夾。
我們這里選擇一個做好的Article
這里非常的重要。
- 類別目錄:其實這也是一種內容類型,但是只是一個分類而已,可以設置關聯一個或者多個目錄。
- 內嵌目錄:打個比方,你有一篇文章,文章里有評論,但是評論是單獨存在一張表里面的,和文章表只有一個ID的關聯,這個時候怎么辦,嵌進去就OK了,也可以嵌入一個或者多個,我們可以看看效果。
大家可以注意到上面的Comment是可以點擊的,點擊進去可以看到多條或一條評論。
會員
只有當你設置了會員數據庫的時候,那么才會有會員,這個不是強制的,一個網站也可能沒有會員,這一塊我也沒有多研究什么,大家自己有空看看,不難。
結尾
這篇就介紹完了,如果以后發現什么新東西會繼續介紹用法,不過從下篇隨筆開始,我就要介紹代碼了。我打算先從架構講起~~~~
PS:這篇文章是用博客園推薦的客戶端寫的,不過貌似效果沒那么好啊。。。。。o(╯□╰)o