Menu

Umbraco 基礎 – 甚麼是Document Types

December 29, 2014 - 網站開發

首先,Document Types是Umbraco裡面最重要的基礎元素,這也是大部分人在開始接觸的時候最常碰到挫折的地方,我必須說我也花了一些時間才完全領悟精隨。

在當你安裝完成Umbraco,依據版本跟你選擇的package,可能會些許不一樣,V6之前預設是完全沒有任何Content 跟Document Type。

image

V6之前預設是完全沒有內容

 

image

V7預設會給幾個基本的網頁

 

如果你想建立第一個專屬自己個內容或網頁,你必須先建立Document Type

 

每個網站所看到的外觀跟內容,本質上就不會一樣,Document Type 是專門用來定義你網站內容的資料結構。換句話說,每個網站擁有自己專屬的內容,所以我們會設計出獨一無二的Document Type來儲存這些內容,而實際透過資料結構產出的東西我們稱作內容。

舉例來說:

如果你想建立一個部落格,直覺的會想到每一篇文章,一定要有標題文章內容,複雜一點,你可能會想要儲存每篇文章的作者建立日期,這裡可以知道,我們至少有四種資料結構需要被儲存。

再一個例子:

再像如果你要設計一個拍賣網站,每個拍賣網頁一定也會需要標題拍賣產品描述拍賣產品圖片拍賣開始跟結束日期產品分類直購價…等等,當然,實際情況一定想要儲存的資料一定會更多。

從上面兩個例子來看,我們已經知道需要,有哪些資料型態必須儲存,以一般網站開發來解釋,就是當需求分析完成後,我們要開始設計資料表(Table)建立資料庫(DB)來儲存資料,同理,再Umbraco就是建立Document Type來儲存資料。

 

再開始建立Document Type之前先想想下面幾個問題:

  1. 有甚麼東西要被儲存或有需要變動版本紀錄?
    像是部落格的文章內容要可以被復原成前一個版本,拍賣的產品網頁要把產品資訊詳細的儲存起來
  2. 是不是有相似或是同質的內容要儲存?
    建議是不同的網頁類型就需要一個專屬的Document Type,舉例來說部落格可能會被設計成可以發表兩種類型的文章:純文字文章跟影音文章,兩個可能需要被儲存的資料結構非常相似(想是標題跟作者),但影音文章需要多儲存影片或圖片網址,所以建議把結構會不一樣的拆成兩種Document Type。
  3. 是不是有不同類型的網頁?
    舉例來說,大部分的公司網頁,都會有首頁、跟公司簡介,這兩個網頁分別需要儲存的資料型態一定不一樣,首頁可能會需要有精美的動畫公告資訊,而公司簡介可能會有聯絡電話地圖資訊,這兩種網頁類型也應該被分成兩種Document Type。

不過,第一次建立Document Type,通常都不知道如何著手,除非有好的範本網站可以參考,下面幾點建議讓你可以從這些面向,嘗試著手開始,只要觀念搞懂,一定會慢慢上手:

  1. 如果真的有資料必須儲存起來,請直接建立一個Document Type
    從上面部落格的例子來看,你就必須建立一個Document Type,並把文章所需要的資料儲存起來,
  2. 如果你的網頁外觀會跟其他網頁不一樣,通常也會建立一個樣板(template),跟建立的一個對應的Document Type給這個樣板使用
    現實世界的網頁開發,常常會有專屬的設計師會把網頁外觀做成HTML給你,或是可能只有圖片。你其實就可以從外觀開始著手來設計Document Type,像是剛剛的部落格例子,你可能會設計一個Document Type來決定要顯示幾筆文章摘要放在首頁,而每篇文章顯示的方式通常會一致,所以我也會幫純文字文章跟影音文章個別設計一種Document Type。
  3. 根據你網站的複雜程度,你可能會產生幾個(公司網站)或幾百個(購物網站)Document Type來符合你網站的需求,這完全取決你要如何設計的網站
    Umbraco本身沒有限制產生Document Type的限制,如果一開始設計結構沒有很好或是使用者需求改來改去,你還是有機會重新修改跟增加資料型態,而且Document Type甚至有繼承的觀念,有些可以直接被重複使用。舉個實際的例子,想像使用者忽然說要在首頁多加一個可以管理內容的跑馬燈,以前沒有CMS你可能要去DB再開新欄位來接資料,現在你就是去修改Document Type,使用者就可以在後台管理跑馬燈的文字。

 

總結一下幾個觀念:

  1. 一定要有Document Type,才有辦法產生內容/網頁
  2. Document Type是專門用來定義資料結構給content使用
  3. 不同類型內容/網頁,會有自己專屬的Document Type

 

從上面介紹,我們可以知道Umbraco不是一個現成的網站,但是你可以把它設計成任何類型的網站。因為Document Type非常有彈性可以符合各種需求。

 

Leave a Reply