Skip to main content

Drupal 8 教學 - 新增第一篇文章

Submitted by admin on Wed, 12/04/2019 - 11:56

這篇教學會告訴大家如何在Drupal中新增第一筆內容,以及介紹Drupal管理員選單中Content以及Structure的分頁要如何使用。

 

當我們登入一個剛部署好的Drupal網站時,看到的是全新沒有內容的頁面。但如果使用是擁有管理員權限的帳號登入網站,我們可以在螢幕的最上方看到一條黑色的選單。這個黑色的選單是只會出現在擁有管理員權限的使用者面前的工具選單。

這時候請點擊黑色選單中的Manage字樣,選單所出現的位置應該會在整個螢幕的左上角,如下圖所示。

點擊後會在下面出現一排管理列表。這個管理列表可以讓我們透過螢幕的圖形化界面來設定我們的網站,不需要見到一行一行的程式碼。

這篇文章著重在介紹其中的Content與Structure,並透過發表第一篇文章的形式來逐步介紹Drupal中的資料架構。

 

Content: 紀錄Drupal所持有的內容

drupal "content" label content

顧名思義,這個頁面提供網站所有的『內容』管理。

在這個頁面中,我們可以找到預設的三個內容標籤,分別是Content、Commit與Files。在Content底下我們可以看到這個網站的所有文章內容。Commit標籤底下我們可以看到這個網站所有的評論,有人可能會喜歡稱之為討論串留言或推文。Files標籤底下則可以找到所有上傳至這個網站的檔案。

標籤頁的數目是有可能隨著我們日後安裝的模組而增加的。當我們點進任意一個標籤頁時,會看到每個內容、評論,或是檔案的列表(儘管現在應該是空的),這些列表內容內容其實都是一個叫做views的Drupal模組所提供,views是Drupal中具有強大檢索-顯示功能的核心模組,這部分我們之後會在寫專門的文章介紹。

下面提供一個已經充滿內容的列表範例,裡面的部分欄位有經過設定,可能跟剛部屬好網站時的預設欄位不太一樣。

drupal content views example

 

如同這個頁面中第一張圖片的內容,在管理員選單中Content項目的Content標籤頁底下,我們可以找到「+ Add content」字樣的藍色按鈕,點擊後即可準備發布我們的第一筆內容。

但別著急,因為點下「+ Add content」按鈕後Drupal會做的第一件事情就是詢問我們要增加「哪一種」內容,下面我們會介紹預設的兩種內容類別,分別是articles與Basic page。

內容類別可以透過管理員列表中的Structure新增或是編輯,下面會介紹這是如何運作的。

 

Structure: Drupal所持有的內容的分類

點擊管理員列表Structure欄位後,我們可以看到有非常多的欄位可以設定,現在我們先注重在Content type。

druapl click content type label

進入Content type的管理頁面後,我們可以看到Drupal預設已經幫我們定義了兩種內容類別,分別是article與basic page。在Drupal中,每一種內容類別都由更基本的元素所組成,這些元素稱之為field。field可以是字串、整數、圖片、連結等等物件。

在Drupal的架構中,我們可以根據實際需求,選擇我們所需要的field來構成一個Content type,也可以微調一個已經存在的Content type內所包含的Field。可以自由定義/變更Content type的內容是Druapl自由度相當高的原因之一。

為了瞭解不同的Content type所造成的內容差異,我們來看一下預設的article與basic page兩種類容類別裡面有哪些不同。

 

在我們進入管理員列表Structure > Content type頁面的時候,可以看到下圖的畫面。

shows drupal default content type

這個畫面的描述寫著:要發布時間性較強的文章應該用article。basic page則適合作為內容不隨時間改變的靜態頁面,例如「關於我們」。

 

現在讓我們點擊右邊的Manage Field按鈕來看看這兩種類容類別所包含的Field為何,以及這些Field為什麼會使這兩種content type會適合用在不同的地方。

content type:: article中的field包含

drupal default field in article structure

content type:: basic page中的field包含

drupal default field in basic page structure

在上面兩張圖中,我們可以看到article相較於basic page裡面多了圖片、留言以及tag欄位。

這代表我們在新增或是瀏覽每一筆article內容時,都可以輸入或是觀看圖片、留言以及tag這三個項目。多出的這三個項目使得article適合作為討論串或是部落格的文章類別,而僅有文章內容的basic page則適合作為互動性沒這麼高的頁面使用。例如一般公司網頁常見的「關於我們」。

可以試著想像看看,假設我們要建立一個活動網頁,我們不會希望在正經的介紹文案下面有留言功能,但可能會希望在消費者專區裡面與瀏覽網頁的客戶有些互動。因此在設計的時候,按照需求來定義合適的Content type是規劃網頁的考量點之一。

 

 

Add content: 填寫Drupal表單

現在,我們可以回到管理員列表Content選項>Conetnt分頁> 「+ Add content」的按鈕了。

drupal add content button

按下新增內容的按鈕後,Drupal會詢問要新增何種內容,並顯示出各種內容對應的表單。這時候可以依照自己的需要進行選擇,下圖以新增一個頁面較單純的basic page作為展示。

在這裡提醒一個觀念,這個在點下按紐後出現的頁面是一個表單

表單(form)在Drupal的運作中扮演一個非常重要的角色,任何有欄位可以填寫並繳交結果的頁面幾乎都是表單。例如新增一篇文章是透過表單,使用者要登入網站也是透過欄位包含帳號及密碼的表單,以後看到各種模組的設定頁面也都是表單。

在新增內容的時候,Drupal預設會讓使用者填入每個field的內容。以下面這張圖作為例子,我們剛才已經看到basic page的field定義僅有body(text)這一項,因此我們在建立basic page內容的時候並不會有欄位上我們上傳圖片、附加tag或是設定是否允許留言的選項。有興趣的話建議點開create new article content的頁面看看兩者的差異。

drupal form for creating basic page

儘管上圖頁面可以填寫的項目不若article多,但仍有相當多的選項並不包含在basic page的field定義。這是因為有部分比較基本的屬性並不會讓使用者透過增減fields欄位來改動,例如左上角的標題(title)以及左下角的是否要對訪客發布(publish)等等,這些欄位都會固定出現在每一個內容類別,要透過一些比較深入的手段才能變更的。

如果您有一些資工底子,上面這段用比較程式語言的說法是因為:content type繼承Drupal節點(node)的基本屬性。

要是我們在日後安裝了一些模組,這份表單的內容也可能隨著我們新安裝的模組而改變。因為有些模組可以把自己需要蒐集的資訊附加在表單上,例如下圖右半部的URL alias即是pathauto模組加上的內容。

pathauto模組的功用是建立網址別名。在全新部署的Drupal網站上發表第一篇文章後,我們會注意到這個第一篇文章的預設頁面網址會是/node/1。這個模組可以將頁面網址改成其他有意義的字串呈現。

 

Manage Form display: 管理表單的顯示

如果我們不希望在表單上呈現如此詳細的元素,可能是為了版面乾淨或是資訊需要保密的考量。例如,建立了一個拍賣網站,我們不希望賣家可以在透過表單刊登商品時可以透過右下角的sticky at top of lists把自己的商品置頂。這時候我們可以編輯管理員列表Structure > Content type > basic page (選自己需要的) > Manage fields > Manage Form display來調整需要隱藏的欄位。

drupal manage form display

我們可以透過拖曳左邊的十字箭頭符號來改變表單元素的先後排列,或者是拖曳至Disable區域來隱藏表單上的元件。請注意,如果需要隱藏Title之類擁有『必須填入』屬性的欄位(在表單上有一顆小紅星記號*),最好可以透過其他方式填入一個預設值,以免後續的處理流程出錯。

除了Manage Form Display標籤頁以外,右手邊的Manage Display也有相似的運作模式。如果我們在建立內容後對內容呈現頁面的排列方式不太滿意,可以在這裡面做一些微調。

 

 

總結

我們可以根據自己的需求來編輯或是創造新的Content type,Drupal的使用彈性很大一部份來自可以自己定義所需要的內容類別。

假設今天我們要做一個購物網站需要儲存商品內容,我們可以定義一個商品類別,裡面包含商品名稱、商品圖片、賣家、價格、留言串、支付方式等field,而賣家要刊登商品的方式就是填寫「建立『商品』這個類別」所需要的表單。

表單內元素的排列方式可以在Manage Form Display變更及隱藏,內容呈現頁面的順序調整則在Manage Display標籤頁。