Plone系統預設的網頁呈現效果,著重在功能上,而且緊扣著內容管理的動線邏輯,這在Intranet的場合,可能已經足夠,但在對外服務的網站場合,通常需要調整頁面。在本文裡,將介紹佈景主題、視覺元件、動態網頁的相關技巧。
在編輯頁面,可以看到預設的程式碼內容,點選〔Save Changes〕將程式碼儲存生效後,就可以切換到〔Test〕活頁標籤,檢視程式碼的執行結果,如圖18所示。
|
▲圖18 Page Template編輯頁面。 |
預設的執行結果,只出現的簡單畫面,包括title和id這兩個動態產生的變數值。回到瀏覽器的前一頁後,可以繼續編輯Page Template的程式碼內容(圖19)。
|
▲圖19 預設的Page Template執行畫面。 |
試著在圖4的Title欄位內填上內容,按下〔Save Changes〕後,再次測試時,會看見剛才填上的Title內容。
那麼,該如何套上佈景主題,或是讓網頁看起來更豐富呢?
METAL巨集語法
套用佈景主題的方法,是在〈html〉裡使用metal:use-macro="context/main_template/macros/master",並在〈body〉裡使用〈metal〉〈/metal〉標籤語法。
其簡化的程式碼範例如圖20所示。
|
▲圖20 使用METAL語法的Page Template。 |
利用METAL(Macro Expansion for TAL)語法,快速引用原本的佈景主題設計成果。上述程式碼範例的顯示結果,如圖21所示。
|
▲圖21 套用佈景主題的Page Template執行結果。 |
巨集(Macro)的功能是為了讓特定的HTML段落能夠重複被使用。METAL是搭配TAL的巨集語法語法以metal:開頭,先要有個define-macro的內容,後來的Page Template才可以用use-macro引入巨集內容。
範例內的use-macro="context/main_template/macros/master",表示在main_template裡有定義一個名稱為master的巨集,如圖22所示。
|
▲圖22 main_template定義的master巨集。 |
結語
利用TAL和METAL,Page Template可以把Viewlet和Viewlet Manager串連起來,利用Skin Layer,則可以在ZODB裡存取檔案系統裡的資源檔案,這些工具和方法,是建立Plone視覺元件的入門基礎。即使還未介紹Browser View的細節,也能完成不少佈景主題的調整,透過ZMI就能搞定,未必要在檔案系統裡進行。
關於佈景主題和視覺元件,仍有許多技巧值得介紹,例如結合AJAX功能,在檔案系統裡註冊資源檔案的方法,將在後續的篇幅裡示範。對於TAL感到意猶未盡的朋友,可以上網尋找更多範例。最後,值得一提的是,TAL並不是Zope獨有的語法工具,PHP環境也可以使用,例如PHPTAL,這是跨語言技術擴散的另一例。