Kooboo CMS 無聊隨筆(2)


上次寫了一篇博客 http://www.cnblogs.com/kmsfan/p/Kooboo_CMS_suibi.html 作為這個系列的開篇,簡單的介紹了一下Kooboo CMS的一些基本情況和界面。這一次我打算再寫一篇關於kooboo CMS的文章,不過我還是不打算講代碼,我還是要講一下使用方法,我只是覺得,如果一個人連這個東西都不會用,何談二次開發呢?好吧,廢話不多說,還是開始吧。

這一次我會講50%以上的用法,涉及了整個Kooboo CMS,另外50%以后再說,其實我是沒學到,哈哈哈哈,閑話不多說開始,Kooboo CMS最大的缺點就是走國際化路線,而且它的幫助文檔非常的陳舊和簡單,所以很多時候,只能靠自己摸索。

我們來分成幾個模塊來說吧。

網站集群

網站的導入導出

先來介紹一下網站的導入導出功能吧,這個是一個非常好的功能,可以方便的對網站的一切進行備份和還原。說白一點,當你導出數據的時候,其實就是導出了整套網站的模板。

 

導出

我們先來點一下導出按鈕,然后會有3個選項,可以導出數據庫,網站,或者網站數據庫都導入,這里我們為了一勞永逸,就選擇都導出。

1

如果你還有子站點的話,還可以同時導出子站點的數據,好了,下面我們來分析一下導出的ZIP文件。

1

  • Files是網站的文件,比如你可以放圖片進去,然后用固定的方法去調用到這個文件夾下的文件。當然這屬於源碼范疇了。這里的文件對應開發->文件里面的東西。
  • Lables 對應 開發->標簽 下的標簽。
  • Pages其實簡單點說,就是一些config文件,下面是我隨便找的一個CONFIG文件,這個文件是根據你的設計自動生成的。
  • Script其實就是一個單獨的文件夾存儲腳本文件的,也可以在開發->腳本 里面找到對應的文件。
  • Template 文件夾里面有2個子文件夾,一個是Layout,另一個是View,里面的所有的單個的VIEW或者Layout都有一個template.cshtml和setting.config文件,我們不僅可以使用Kooboo CMS提供的編輯器,還可以把整個網站弄到Visual Studio里面來編輯測試,這樣可以大大提高工作效率。
  • Theme 其實也是一個單獨的存放樣式的文件夾,也可以在開發底下找到。
  • WebEvent底下都是日志文件,這個沒什么好說的,就是錯誤信息。

導入

下面介紹一下導入網站的功能,我們先來看一下導入界面,其實這里做一點說明,如果是下載網上的在線模板新建網站,其實和導入的思路一樣,只是換了個樣子。

1

父站:你可以把你導入的網站看成是一個子站點,如果留空的話,那么導入的站點是一個父站點。

內容數據庫和會員數據庫:上一篇已經做了說明,這里簡單說一下,就是你的導出里面的ContentDatabase.zip和Membership.zip文件。

這里如果你有站點的所有信息的話,我個人建議先在控制面板里面分別導入這2種數據庫,然后這里只需要選擇就行了,網站和數據庫2步導入。

系統設置

這里就簡單的說一下幾個難點。

  • 域名:這里的域名就是你網站的域名,可以有多個,如果是本機就填寫2個,127.0.0.1 和 localhost 不需要填寫端口號。
  • SMTP:Kooboo CMS里面提供了找回密碼的功能,需要用到此項,具體的可以百度一下,很多方法。
  • 系統用戶,這里是很容易犯錯誤的地方,有些人點了創建按鈕,卻發現新建不了用戶,其實這里是給用戶分配角色,真正的創建用戶是在右上角。

1

  • 自定義錯誤和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"),你放了幾塊內容,你就可以設置幾塊內容。下面的是一些輔助功能,可以方便的調用已經寫好的其他頁面的代碼,具體的我就不說了,大家有興趣的可以自己去嘗試一下,還要注意一點,網站所有的動態頁面都是建立在布局頁面的基礎上的,如果你沒有布局頁面,是不可能建立網站的頁面的。

1

  • 視圖:視圖不要我多介紹了,置於控制層的東西,Kooboo 已經幫我們想好了,我們在生產環節下不用考慮,這個源碼我以后會抽空講解。大家看到了代碼吧,就和我們寫普通的代碼一樣,由於Kooboo不是那種傻瓜式的,不像DZ一樣所有人都可以去建站,其實這個CMS還是需要一些.NET的基礎的,不適合小白站長。告訴大家一個小技巧,如果你想建立文件夾的話,在視圖列表里面,那么就可以用文件夾名.文件名,其中文件夾名可以多層嵌套。下面的代碼基本的意思就是從ViewBag里面去取數據,那么這個Article從哪里來的呢?

1

下面會告訴你一些秘密,這個要牽扯到后面說的知識點,就是這個內容底下的文件夾,這個文件夾里面有很多的文件,你先這么理解就OK了。

1

注意:這個是大家容易犯的錯誤,犯什么錯誤呢,當我寫了一個新的視圖,然后和網站的示例視圖一模一樣,但是具體報錯了,在使用的時候,百思不得其解。

1

上面的只是我的一個示例,大家如果不信的話可以把那個可以運行的VIEW復制一個新的,然后使用它,會發現也是報錯,其實問題的關鍵很難想到,原因我開始說了,Kooboo CMS的幫助文檔不僅是英文的,而且還很少,很多地方都沒寫,所以導致開發者走了很多彎路,其實真正的原因就在於我開始圖里畫的圓框。如果你新建了一個CMS,是不存在那個東西的,因為我們需要ViewBag不為空,就需要做一些設置,我這里打開示例網站已經寫好的。

1

數據名稱:就是你的ViewBag.XXX后面的東西,Kooboo CMS提供了2種方式去獲取數據,一種是從外部的HTTP返回的Json或者XML中獲取,另一種就是從已有的數據源里面獲取,你可以新建一個試試看,具體的我就不操作了,內容過濾什么的我自己都沒怎么試一試,不過大體都這樣,大家可以自己找些測試數據,多試幾遍就出來了。

 

頁面

我隨便打開一個給大家講解一下重點,這個地方不太難,開始說過那個導出功能的時候介紹了一下文件夾的作用,其中說到了這個頁面相關的都是config文件組成的,這里其實就是一個生成CONFIG文件的過程,哈哈。

1

  • 設計器:大家發現了沒有,這些里面有一些塊,這些塊可以插入HTML,目錄,或者視圖。這些塊其實就是我們開始在Layout里面定義的塊,用那個,@Html.FrontHtml().Position("Main") 設計的塊。
  • 這里面簡單的我就不說了,其他的難的我也沒研究到,所以也不說了,大家有興趣可以自己去理解一下。

 

 

內容

這里主要講一下內容類型和內容,這2塊聽名字都是息息相關的。

內容類型

我打開一個已經做好的內容類型,給大家講解一下

1

大家看看,這像什么,像不像一張表呢?里面有很多的字段?其實我告訴你,只要你建立了一個內容類型,對應的數據庫里就會生成一張表!

我們看看有哪些類型。

1

這么多類型,其實意思很簡單,這些東西就是控件,這里要牽扯到內容,說白一點,內容類型和內容是一對多的關系,我可以設置內容的類型,如果我這里有幾個控件的話,

那么當我新建內容的時候,就會顯示幾個控件讓我去添加具體的詳細內容。不信你看。

1

這些都是上面的那些字段信息,怎么樣,明白了吧?

 

內容

內容和內容類型要結合起來,這樣,不同的內容都是放在不同的類型的文件夾下面的,我們來新建一個文件夾。

1

我們這里選擇一個做好的Article

1

這里非常的重要。

  1. 類別目錄:其實這也是一種內容類型,但是只是一個分類而已,可以設置關聯一個或者多個目錄。
  2. 內嵌目錄:打個比方,你有一篇文章,文章里有評論,但是評論是單獨存在一張表里面的,和文章表只有一個ID的關聯,這個時候怎么辦,嵌進去就OK了,也可以嵌入一個或者多個,我們可以看看效果。

1

大家可以注意到上面的Comment是可以點擊的,點擊進去可以看到多條或一條評論。

會員

只有當你設置了會員數據庫的時候,那么才會有會員,這個不是強制的,一個網站也可能沒有會員,這一塊我也沒有多研究什么,大家自己有空看看,不難。

結尾

這篇就介紹完了,如果以后發現什么新東西會繼續介紹用法,不過從下篇隨筆開始,我就要介紹代碼了。我打算先從架構講起~~~~

PS:這篇文章是用博客園推薦的客戶端寫的,不過貌似效果沒那么好啊。。。。。o(╯□╰)o

 


免責聲明!

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



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