歡迎光臨, 訪客. 請先 登入註冊一個帳號.
十一月 22, 2024, 10:00:19 下午
19595 文章 在 3865 主題 由 4579 會員
最新註冊會員: aa123aa1
LifeType 中文開發論壇  |  開發  |  手冊文件  |  LifeType英文wiki文件翻譯--模版篇 « 上篇主題 下篇主題 »
頁: [1]
作者 主題: LifeType英文wiki文件翻譯--模版篇  (閱讀 37029 次)
bibicall
LifeType 中文發展團隊
超級會員
*****
文章: 640


我是豬老大


檢視個人資料 個人網站
« 於: 十二月 04, 2005, 10:55:12 下午 »

以下是我簡單的編譯,不是全文照翻,
請各位幫我看看是否有誤,也請大家幫我補充疏漏之處吧
原文網址:http://wiki.lifetype.net/index.php/PLog_1.0/Templates




簡介

LifeType使用模版系統,來清楚的區分網頁內容與核心程式。這樣做的好處是:模版開發者僅需要動用到控制網頁內容的參數部分,不需要動用到核心程式碼。如此一來,就減低了搞壞核心程式碼的風險,即使在多人使用的情況下,管理者也不用擔心使用者修改模版時會破壞到LifeType的核心程式。

從開發者的角度來看,因為php語法與html語法可以並存,這會造成網站維護不易,且程式碼無法重複利用。因此,使用模版將網頁內容與程式分開,會易於管理網頁,且程式碼也能重複被利用。

LifeType是使用Smarty引擎來產生網頁,要學習Smarty,可以參考其官方網頁上的手冊文件:http://smarty.php.net/crashcourse.phphttp://smarty.php.net/manual/en/

在瞭解LifeType模版運作之前,使用者至少要先知道Smarty語法。基本上,Smarty語法需在「 { 」與「 } 」符號包圍之下才能運作,否則網頁呈現可能會出現錯誤。Smarty有許多內建的功能,但就LifeType來說,僅使用到php物件的部分,我們只需要在模版中呼叫LifeType使用到的物件,並給予屬性值即可。

模版如何運作?

前面提到過,LifeType使用Smarty引擎來產生網誌的網頁內容。也就意味著使用者可以輕易的在後台管理介面中,更換模版改變網頁的外觀。但,模版是如何運作?使用者又該如何製作屬於自己的模版呢?

開始之前必須先知道的是,所有的模版存放在LifeType架構中的哪一個位置。LifeType的模版是存放在*templates/*之下,在這個資料夾中,除了網誌可以使用的模版之外,還包含了後台頁面(admin)、摘要頁面(summary)、安裝精靈(wizard)、RSS feed頁面(rss)以及郵件通告(misc)等模版。

LifeType預設的網誌模版有三個,分別是standard、grey與blueish。以grey模版為例,在grey資料夾中,我們可以看到以下的*.template文件檔:

commentarticle.template
commentform.template
demosites.template
error.template
features.template
footer.template
header.template
main.template
post.template
postandcomments.template
posttrackbacks.template
samplerss.template
album.template
albums.template
resource.template
searchresults.template

在這16個*.template文件檔中,以粗體表示的是最基本的模版,也是必須存在的模版。這9個模版更是網誌運作與呈現不可缺少的。以下簡述9個檔案的基本功能:

main.template:這個檔案控制網誌的主頁面。
postandcomments.template:這個檔案控制網誌文章內容與迴響內容的呈現。
commentarticle.template:這個檔案主要用來顯示新增(或回覆)迴響時的表單。
posttrackbacks.template:用來顯示網誌文章的所有引用資訊。
error.template:顯示錯誤訊息用。
album.template:顯示資源中心資料夾下的檔案。
albums.template:與上述檔案不同之處,這個檔案室用來顯示資源中心裡所有最上層的資料夾。
resource.template:用來顯示檔案詳細資料。
searchresults.template:顧名思義,就是用來顯示網誌中搜尋結果。

看到這,或許有人會懷疑,既然只需要9個模版檔案即可,那為何又多出7個額外的檔案?這7個檔案或許不起眼,但卻是修改模版中不可缺的幫手,有了這7個檔案,讓模版的修改更加容易。

上述9個主要模版檔案中,每一個檔案都必須有完整的網頁結構,才能讓網誌正常運作。而這些網頁呈現所需的結構,有部分是一再重複的。在製作模版的過程中,如果要讓每個頁面有相同的頁首與頁尾,沒別的辦法,只能重複的執行「複製、貼上」的動作9次。若不幸中途做了點修改,那又得回頭去「複製、貼上」。

幸好,Smarty允許使用{include...}標籤在當案中匯入另一個檔案,只要在標籤中加上參數「file」,並設定好匯入檔案的路徑即可。有了這樣的功能,在製作或修改模版的時候,我們只需將會重複使用的部分寫成一個檔案,再利用{include...}標籤將其匯入LifeType的主要模版之中。

以頁首與頁尾為例子,若所有模版均使用相同的頁首(header)與頁尾(footer),那麼模版開發者只需將頁首頁尾的部分另外寫成header.template與footer.template兩個檔案,再用{include...}標籤匯入到主要的模版檔案中,方法如下:
引用
{include file="$blogtemplate/header.template"}
...
模版內容
...
{include file="$blogtemplate/footer.template"}

有一點須注意的是,{include...}標籤中使用的路徑是相對於templates/ 資料夾的。另外,也可以使用$blogtemplate變數來表示templates/底下各個模版資料夾的名稱,這樣一來就算模版資料夾更名或搬移,也不會影響模版的運作。

利用這樣的方式,當我們修改模版頁首的呈現時,只需針對header.template修改一次,即可達到全部修改的目的。也因此,才會出現commentform.template、post.template等檔案的出現。而這些模版中,我們已經知道header.template與footer.template,分別控制頁面的頁首與頁尾呈現,在此簡單敘述commentform.template與post.template這兩個檔案的作用:

commentform.template:這個檔案主要包含了提交迴響的表格,因為也具有可重複使用的特性,因此將其獨立出來,再以匯入的方式工其他檔案使用。一般來說,這個檔案常用在postandcomments.template之中。
post.template:這個檔案主要包含了網誌的文章內容,一般來說,這個檔案常用在main.template與postandcomments.template之中。

(以上摘譯改寫自 LifeType英文wiki文件,下方Smarty如何產生php頁面的圖解與說明,改寫自Mark Wu的0.32 版教學投影片。)

說完了LifeType模版的基本結構,那這些模版究竟是如何運作,成為最後呈現在網頁上面的樣子?以下借用Jace Ju的Smarty入門中的Smarty樣版引擎運作示意圖,來說明LifeType模版的運作流程。
« 最後編輯時間: 十二月 07, 2005, 11:21:05 下午 由 bibicall » 已記錄

我的虛擬主機基本資料如下
Operating system: Linux
Apache version: 1.3.37
PHP version: 4.4.4
MySQL version: 4.1.21-standard
Stud
初級會員
**
文章: 84


檢視個人資料 個人網站
« 回覆文章 #1 於: 十二月 05, 2005, 08:13:09 上午 »

「LifeType預設的網誌有三個,分別是standard、grey與blueish」
這句改成預設的模板,或內建提供的模板,會不會比較好理解?
已記錄

大都會聯播網 http://www.metro.com.tw (WinXP SP3下載中+女童受虐醒思)
james
LifeType 中文發展團隊
超級會員
*****
文章: 823


哼!!你不說,誰會知道你做過那些修改呢!? (丟滑鼠~~)


檢視個人資料 個人網站
« 回覆文章 #2 於: 十二月 05, 2005, 10:37:44 上午 »

Hi bibicall:
翻得很棒喔^_^  很棒

關於Stud提到的那句話,我想應該是bibicall筆誤吧!?
他應該是要寫成『預設的網誌模版...』才是 微笑

加油囉.

James.
已記錄

記得發問前,先使用搜尋功能找找看有沒相關的解答。
如果找不到,請依照如何在LifeType論壇發問來提問喔。
bibicall
LifeType 中文發展團隊
超級會員
*****
文章: 640


我是豬老大


檢視個人資料 個人網站
« 回覆文章 #3 於: 十二月 05, 2005, 01:52:48 下午 »

睡前翻譯腦袋不清楚、上班偷翻譯要躲老闆,所以初稿會比較多錯誤
完工後一定會好好來校對,哈哈!
已記錄

我的虛擬主機基本資料如下
Operating system: Linux
Apache version: 1.3.37
PHP version: 4.4.4
MySQL version: 4.1.21-standard
kastner
新手見習
*
文章: 45


檢視個人資料
« 回覆文章 #4 於: 二月 03, 2006, 09:12:44 下午 »

多谢 bibicall !!!
非常实用。
不过,既然album/albums是用来实现资料档的,如果不希望将资料夹放在页面而是只在后台管理的话,应该也不需要吧 吐舌頭
已記錄
james
LifeType 中文發展團隊
超級會員
*****
文章: 823


哼!!你不說,誰會知道你做過那些修改呢!? (丟滑鼠~~)


檢視個人資料 個人網站
« 回覆文章 #5 於: 二月 03, 2006, 10:43:57 下午 »

多谢 bibicall !!!
非常实用。
不过,既然album/albums是用来实现资料档的,如果不希望将资料夹放在页面而是只在后台管理的话,应该也不需要吧 吐舌頭
Hi kastner:
關於這兩個檔案,你可以讓內容是空白(如果你不想在前台秀出資源中心的檔案),但是檔案一定要存在才行喔 ^_^
不然上傳模版時是會產生錯誤的 微笑

James.
已記錄

記得發問前,先使用搜尋功能找找看有沒相關的解答。
如果找不到,請依照如何在LifeType論壇發問來提問喔。
bibicall
LifeType 中文發展團隊
超級會員
*****
文章: 640


我是豬老大


檢視個人資料 個人網站
« 回覆文章 #6 於: 二月 03, 2006, 11:54:54 下午 »

Hi, kastner:

官方文件中說道:
引用
在這16個*.template文件檔中,以粗體表示的是最基本的模版,也是必須存在的模版。這9個模版更是網誌運作與呈現不可缺少的。

所以還是聽James的建議,不要將檔案刪除,只將檔案裡的內容留白

已記錄

我的虛擬主機基本資料如下
Operating system: Linux
Apache version: 1.3.37
PHP version: 4.4.4
MySQL version: 4.1.21-standard
lss
我不是被~拉~~出來的,不要叫我大大!
總版主
超級會員
*****
文章: 1511



檢視個人資料 個人網站
« 回覆文章 #7 於: 二月 04, 2006, 12:02:41 上午 »

hi bibicall:

把你的翻譯心血搬到 wiki 上吧,大家要一起增修也比較方便。圖丟不上去就直接 call mark 處理。

lss
已記錄

沒找過 常見問題集或不知道 如何在 LifeType 中文開發論壇發問的人,恕不回答問題
lss
我不是被~拉~~出來的,不要叫我大大!
總版主
超級會員
*****
文章: 1511



檢視個人資料 個人網站
« 回覆文章 #8 於: 二月 04, 2006, 12:07:08 上午 »

多谢 bibicall !!!
非常实用。
不过,既然album/albums是用来实现资料档的,如果不希望将资料夹放在页面而是只在后台管理的话,应该也不需要吧 吐舌頭
這兩個樣版檔是否存在,並不影響你的網站顯示效能,充其量,多佔用你幾 k 的主機硬碟而已。不想讓他們在前台出現的話,把網站裡的資料夾連結拿掉就行了。另外,資料夾也可以在後台設定成不在前台顯示。

lss
« 最後編輯時間: 二月 04, 2006, 09:55:28 下午 由 lss » 已記錄

沒找過 常見問題集或不知道 如何在 LifeType 中文開發論壇發問的人,恕不回答問題
markwu
系統管理員
超級會員
*****
文章: 3928


Mark Wu


檢視個人資料 個人網站
« 回覆文章 #9 於: 二月 04, 2006, 12:19:06 上午 »

我會把 wiki upload 的功能打開,只是可能會加上權限管控,應該只讓版主可以upload。得來試試怎麼設定了!

Mark
已記錄

kastner
新手見習
*
文章: 45


檢視個人資料
« 回覆文章 #10 於: 二月 04, 2006, 02:49:51 下午 »

OK 谢谢各位的回复!
学到不少,再次感谢!
已記錄
頁: [1]
LifeType 中文開發論壇  |  開發  |  手冊文件  |  LifeType英文wiki文件翻譯--模版篇 « 上篇主題 下篇主題 »
    前往: