如果您覺得文章對您有點用,麻煩在您閱讀、收藏、轉(zhuǎn)發(fā)的時候,順手幫忙點個贊、留個言、加關(guān)注,這是我繼續(xù)寫下去的絕佳動力。
一、內(nèi)容模型的作用
從SiteServer CMS 源碼來解讀的話,內(nèi)容模型是銜接欄目和輔助表的橋梁。利用SiteServer CMS進行內(nèi)容管理的話,內(nèi)容一定是要附屬于某個欄目(也即發(fā)內(nèi)容時必須選擇一個具體的欄目)。但具體到每個欄目的內(nèi)容到底存在哪個輔助表里呢?SiteServer CMS是通過為每個欄目設(shè)置一個內(nèi)容模型,每個內(nèi)容模型對應(yīng)一張輔助表,從而間接實現(xiàn)了每個欄目的內(nèi)容存儲在哪張輔助表的目的。

從上圖可以看到,每個內(nèi)容模型需要選擇一張輔助表。然后為每個欄目設(shè)置一個數(shù)據(jù)模型,如下圖所示:

通過以上兩步的操作之后,發(fā)布在此欄目下的內(nèi)容就會自動存儲在此欄目的內(nèi)容模型對應(yīng)的輔助表中了。
思考一下:欄目、內(nèi)容模型、輔助表的對應(yīng)關(guān)系
為什么需要數(shù)據(jù)模型在欄目和輔助表中間做橋梁呢?為什么不直接讓欄目對應(yīng)輔助表呢?個人認為沒有必要引進內(nèi)容模型這個概念,大家可以發(fā)表自己的看法。**
二、再談輔助表類型
通過前面文章的講解我們知道,SiteServer CMS系統(tǒng)的輔助表類型有:內(nèi)容、投票、招聘、信息公開、互動交流、自定義,而在創(chuàng)建數(shù)據(jù)模型的界面里,輔助表類型只能選擇內(nèi)容和自定義。這說明什么問題呢?
這表示創(chuàng)建內(nèi)容模型時不能選擇投票、招聘、信息公開、互動交流四種類型的輔助表來存儲數(shù)據(jù),系統(tǒng)會自動為這四種類型輔助表分別創(chuàng)建一個內(nèi)容模型,如下圖所示是系統(tǒng)為通用站點自動創(chuàng)建的投票、招聘兩個數(shù)據(jù)模型:

那如果需要為這些系統(tǒng)自動創(chuàng)建的數(shù)據(jù)模型設(shè)置自己創(chuàng)建的輔助表,怎么操作呢?其實在前面的文章深入講解SiteServer CMS:輔助表也有講到,就是在創(chuàng)建站點時需要統(tǒng)一為每種輔助表類型設(shè)置一個默認的輔助表,如下圖:

從上圖可以看到,投票、招聘、信息公開、互動交流四種類型輔助表的默認表設(shè)置好了之后,創(chuàng)建站點時系統(tǒng)為這四張輔助表分別創(chuàng)建一個內(nèi)容模型,然后整個站點欄目如果需要使用這四種內(nèi)容模型的話只能選擇系統(tǒng)默認創(chuàng)建的,管理員不能為這四種類型的輔助表再創(chuàng)建內(nèi)容模型了。
相比之下,除子系統(tǒng)會為默認的內(nèi)容輔助表創(chuàng)建叫 “內(nèi)容”、“圖片” 的兩個內(nèi)容模型之外,管理員還可以:
- 為默認的內(nèi)容輔助表創(chuàng)建內(nèi)容模型;
- 為非默認的內(nèi)容輔助表創(chuàng)建內(nèi)容模型;
- 為自定義類型的輔助表創(chuàng)建內(nèi)容模型;
這三種操作有什么區(qū)別嗎?當然有,只有第一種操作,為默認的內(nèi)容輔助表創(chuàng)建內(nèi)容模型,這種內(nèi)容模型的輔助表和系統(tǒng)自動創(chuàng)建的名為 “內(nèi)容” 的內(nèi)容模型是同一張輔助表,都是站點默認的內(nèi)容輔助表。這又意味著什么呢?在前面的文章深入講解SiteServer CMS:輔助表提到,成為站點的默認內(nèi)容輔助表這樣有兩個好處:
- 站點創(chuàng)建欄目時數(shù)據(jù)默認存儲在此表中,除非手動修改成其他表;
- 全站搜索默認只搜索站點默認內(nèi)容輔助表里的內(nèi)容;
三、內(nèi)容字段管理
嚴格來說,內(nèi)容字段管理和內(nèi)容模型是沒有關(guān)系的,這里的內(nèi)容字段是指每一個欄目所存儲的內(nèi)容具有哪些字段,真正決定有哪些字段的是存儲這些內(nèi)容的輔助表。為什么會把這個菜單放在內(nèi)容模型設(shè)置下面呢?大概是因為欄目不是直接對應(yīng)輔助表,而是欄目對應(yīng)內(nèi)容模型再通過內(nèi)容模型對應(yīng)輔助這種關(guān)系吧。

從上圖可以看到,可以為每一個欄目進行內(nèi)容字段管理操作。那到底內(nèi)容字段管理能進行哪些管理呢?而且從圖上看起來,和輔助表的字段管理界面幾乎就是一模一樣,兩者之間到底又是什么關(guān)系呢?
先來說說內(nèi)容字段管理能進行的管理吧:
- 使用輔助表字段的默認顯示樣式:這意味著此欄目的內(nèi)容字段管理什么都不用操作,直接忽略。這也是大部分欄目大部分情況下的選項;要不然干嘛要選擇這個輔助表對應(yīng)的內(nèi)容模型呢?
- 修改部分字段的默認顯示樣式:比如某個欄目雖然使用這個輔助表來存儲數(shù)據(jù),但是有兩個字段不需要,這時可以通過對不需要的字段進行添加顯示樣式操作:把是否啟用設(shè)置成否即可;
- 增加虛擬字段:比如某個欄目在使用這個輔助表全部字段后,還缺少一個字段,這個字段只有這一個欄目或少數(shù)幾個欄目需要,通過前面對于輔助表內(nèi)容的講解知道這不能在輔助表層面去操作。所以只能在這個欄目的內(nèi)容字段管理進行添加虛擬字段操作;
對于后面兩種操作,有一個共同點那就是不使用輔助表字段的默認顯示樣式,也即欄目重新定義了自己的字段顯示樣式。那使用和不使用輔助表字段的默認顯示樣式這兩種情況不同之處:
如果使用輔助表字段的默認顯示樣式,則以后輔助表進行字段的任何操作(增加和刪除字段,以及修改字段和調(diào)整字段顯示樣式)都能反應(yīng)的所有使用此輔助表默認樣式的欄目中;
如果欄目重新定義了自己的字段顯示樣式,那么除了刪除輔助表字段外,其他輔助表字段任何操作都不會影響到當前欄目的顯示樣式。
理想很豐滿,現(xiàn)實卻很骨感。從SiteServer CMS源碼來看,官方設(shè)計的本意使用和不使用輔助表字段的默認顯示樣式這兩種情況不同之處應(yīng)該是上面這樣的結(jié)論。但事實上卻有Bug,刪除輔助表中一個真實字段,所有使用默認顯示樣式的欄目卻還能顯示出此字段來。不能不說這是一個系統(tǒng)Bug。
現(xiàn)在再來回答一下剛才說的第二個問題:內(nèi)容字段管理和輔助表的字段管理界面幾乎就是一模一樣,兩者之間到底又是什么關(guān)系呢?在回答這個問題之前,我們需要明白SiteServer CMS系統(tǒng)所有功能和數(shù)據(jù)的可見范圍有三個級別:
- 欄目級別:功能和數(shù)據(jù)只能在本欄目可見,相應(yīng)設(shè)置也只能在本欄目起作用;
- 站點級別:功能和數(shù)據(jù)只能在本站點可見,相應(yīng)設(shè)置也只能在本站點起作用;
- 系統(tǒng)級別:也叫平臺級別,功能和數(shù)據(jù)在全系統(tǒng)可見和起使用;
有了上面的三個級別,很好判斷出內(nèi)容字段管理是欄目別級的功能,只能針對本欄目起作用,對于其他欄目或站點不可見。比如你在某個欄目下面創(chuàng)建了一個虛擬字段或者關(guān)閉了一個字段,但不會影響到其他欄目的內(nèi)容字段。
同理,輔助表的字段管理就是系統(tǒng)級別的了,給輔助表添加了一個字段(不管真實字段還是虛擬字段),只要使用這個輔助表的站點,都能看到此字段。
內(nèi)容模型里的內(nèi)容字段管理講完了,下一篇接著講欄目字段管理和聯(lián)動字段管理……
開心一笑
有一美女同事,孩子三歲左右,身材依舊火辣,那天她帶兒子來單位,我陪他玩,小孩子問我,叔叔你最喜歡什么動物啊,我想了想很猥瑣的告訴他,叔叔最喜歡羊駝,事后他媽追了我三條街……