Plone 動態網頁 網站

用自由軟體Plone來架設網站(6)

2012-05-08
Plone系統預設的網頁呈現效果,著重在功能上,而且緊扣著內容管理的動線邏輯,這在Intranet的場合,可能已經足夠,但在對外服務的網站場合,通常需要調整頁面。在本文裡,將介紹佈景主題、視覺元件、動態網頁的相關技巧。
Skin Layer

練習操作後,接著檢視Skin Layer的運作原理。以Sunburst Theme為例,Plone會由上而下尋找資源檔案,也就是custom、sunburst_images、sunburst_templates之類的順序,尋找資源檔案,如圖13所示。


▲圖13 Sunburst Theme的Layer順序設定值。

每個Layer裡包含數個資源檔案,好比圖檔、CSS、Page Template檔案,例如sunburst_images裡找得到許多圖檔,sunburst_styles裡找得到許多CSS檔案。

數個Layer可以組成一個Theme Skin,以Plone Default為例,這個Skin最上層的Layer是custom,如果custom目錄裡有個logo.jpg圖檔,它會蓋掉plone_image目錄裡的logo.jpg(圖14)。


▲圖14 custom目錄的資源檔案優先被讀取。

圖檔logo.jpg的來源,可以透過進入某個Layer點擊〔Custom〕按鈕來獲得,也可以直接在custom目錄內,從項目下拉選單新增Image獲得。此處沒有示範CSS或其他資源檔案的例子,但它們的運作原理與操作方式完全相同。

Skin Layer雖然是舊的方式,但由於設定方式簡單,目前還是經常被使用,像是換logo套CSS的場合,特別適合用這種方式。

Page Template

如前所述,不管用哪一種視覺元件的處理方式,都會牽涉Page Template,接著把焦點放在這個資源檔案上。

Page Template有時也稱為Zope Page Template(ZPT),在檔案系統裡,它的副檔名是.pt,以XHTML為基礎,也就是相容於XML標準的HTML語法,XHTML要求程式碼符合well formed格式,例如使用〈img /〉、〈span〉〈/span〉這樣的格式,還有正確的巢狀結構,並使用小寫英文的標籤格式。

Page Template使用Template Attribute Language動態網頁語法,簡稱為TAL。

在TAL裡,包含了描述屬性資訊的標籤語法,最簡化的TAL語法範例,參考圖15所示。


▲圖15 TAL標籤語法示意。

其中〈title〉...〈/title〉是原本HTML語法的部分,tal:content="here/title"的部分則是XML namespace,TAL語法統一以tal:為首,content=部分用來指明要設定的內容,而"here/title"是TAL的expression內容,這類的expression被規定在TAL Expression Syntax(TALES)裡。

當網頁版面人員使用Dreamweaver之類的工具時,讀取上述XHTML原始碼時,並不會造成無法解讀的困擾,畫面上會順利出現「Page Title」的標題字樣。

當這樣的Page Template檔案存放在Zope系統內,它會搭配物件的屬性值與物件方法,動態產生網頁內容,包括執行邏輯判斷和錯誤處理等。

不過,Page Template不應該拿來處理subroutine或class,這類的程式功能,應該寫在Python Script裡,再由Page Template呼叫取值和顯示。

接著,為了方便讀者入門練習的用途,這裡直接在ZMI內搭配Plone系統來建立最簡單的Page Template。

練習Page Template的建立

為了練習用途,先在ZMI的Plone Site裡,從新增物件項目的下拉選單中選擇【Page Template】,如圖16所示。


▲圖16 在ZMI裡新增Page Template。

在新增頁面的Id欄位填寫識別碼,以mypage為例,它會成為URL的一部分,按下〔Add and Edit〕按鈕,如圖17所示。


▲圖17 Page Template新增頁面。


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!