[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 的文章來說明具備何種條件的樣板引擎是好的,什麼樣算是差勁的

2 comments On [PHP] WYSIWYG 樣板引擎大搜查

  • template power….適合小型專案

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

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

Leave a reply:

Your email address will not be published.

Site Footer

Sliding Sidebar