Neo's Blog

首頁 相本 討論 書籤

分類目錄
本站日誌 (51)
碎碎唸啦 (173)
網站架設 (84)
程式設計 (161)
軟體使用 (69)
電子商務 (126)
經營奇想 (48)
基金理財 (11)
聰明消費 (87)
電影心得 (47)
開放原碼 (16)
工作記錄 (2)
毛毛小記 (9)
就是不同 (2)




歷史資料
 




November 12, 2005
[PHP] WYSIWYG 樣板引擎大搜查

Smarty 功能強大眾所皆知,目前仍是我在高度客製化畫面的好幫手,只是笨重的程度也跟它的功能成正比。後來雖然出現了 Smarty-Light,但是很多 Smarty 好用的功能都沒了,那還不如找其它的樣板引擎。

本來有考慮 Savant ,但是看到 HTML 裡面嵌 PHP 碼的樣子,就是說不上哪裡不對勁,感覺就是怪怪的。

不過也託 Savant 的福,無意間在 Sitepoit 看到了具備 WYSIWYG 功能的 Tinybutstrong。果然出來的畫面真是漂亮呀,所見即所得真的不是蓋的。只是....語法非常不人性化,連程式設計師都不容易記起來的語法要教給美工實在不容易,好在指令也不多,不然為美麗付出的代價可真不小。

Tinybutstrong 在一般的專案使用是綽綽有餘,許多貼心的小功能諸如 comm 都是畫面美觀的好幫手。但是如果是屬於需要經常客製化畫面的專案,Tinybutstrong 在遇到複雜的畫面時反而會牽制到專案及程式開發的速度,而且愈複雜的畫面美工愈不可能做的出來,有時還是得要程式設計師動手。

不過這也是樣板引擎的通病,但是同樣的畫面交給程式設計師來做, Smarty 強大的功能相較之下就方便了許多,很多狀況不用額外撰寫或修改程式,單靠 Smarty 就能完成複雜的頁面。因此遇到大型專案或常需要配合客製化畫面的時候,或許考慮 Smarty 或 Smarty-lite 是比較聰明的選擇。

而我當然也不會這樣就滿足,說不定還有更好的樣板引擎可以使用,趁著今天有點空就來找找看看,首要條件必須是 WYSIWYG ,而且可以在無 PEAR 狀態下執行 (註1)。

翻了 Sitepoint 的舊文,雖然看到了一個簡易型的 MiniTemplator ,名符其實的功能陽春,適合小型的專案使用。另外還看到一個出來搞笑的 Simple Turtle Template ,都是小型的 WYSIWYG 樣板引擎。

一直看到 PHPTAL 感覺就相當不錯,這個引擎是承襲 ZPT (Zope Page Template) 而來,因此本身就支援多國語言,而且最大的特點是直接拿 XML/XHTML 標籤作為套版工具,完全不需要 {} 或 [] 之類的辨別字元。

<table>
<tr tal:repeat="myitem myarray">
<td tal:content="myitem">
text replaced by the item value
</td>
<td tal:replace="">sample 1</td>
<td tal:replace="">sample 2</td>
<td tal:replace="">sample 3</td>
</tr>
</table>

(用 XHTML 就能完成一個樣板,可謂純天然的 WYSIWYG)

不過既然是靠 XHTML 完成的畫面,可能就要考慮到 Well-formatted,否則出來的樣子可能就不是大家想看的了。而且要解譯整份 XHTML 再轉成 HTML 可能也比較耗費 CPU 的時間,這些都是美麗的代價呀。

今天就找到這裡,收工睡覺去了,等之後有看到好東西再來介紹了。^^

註1:
若需要 PEAR 的 WYSIWYG 樣板引擎,可以參考 ITSigmaFlexy

註2:
PHPTAL 目前只支援 PHP 5 。(官方請大家把 PHP 4 版給忘了吧)

註3:
在 Google 找 PHPTAL 資訊時發現 Template View Pattern 這篇文章,裡面針對幾個非 Smarty 的樣板引擎做比較,也引用了 WACT 的文章來說明具備何種條件的樣板引擎是好的,什麼樣算是差勁的

收進你的MyShare個人書籤  


template power....適合小型專案


sharbui 發表於 November 24, 2005 06:53 PM

我自己寫過XML Parser,效率上會卡在正規表示式的字串切割上...

另外一件事情,TBS很可惜的是沒有辦法把某一個BLOCK的結果傳回來(我是指類似Sigma中呼叫get函數的效果)


tokimeki 發表於 February 14, 2006 04:21 PM
發表迴響  
(*星號開頭為必填欄位)











(請輸入您看到的數字,看不到請按右鍵->顯示圖片)


記住我的資訊?







Copyright 2005 Neo's Blog All rights reserved.