網站製作學習誌

記錄學習製作網站的一切

安裝問題 3

有讀者詢問了以下的問題:

「我把 Smarty 預設的 “{” 和 “}” 改成 " <{" 和 "}>",並依照依照您書上的方法修改光碟內的Dreamweaver 擴充套件,可是會發生問題…」 (我修飾了一下用詞)

如何讓 Dreamweaver 認得 "<{" 及 "}>" 呢?其實如果照書上的方法修改,肯定不能動。 (那為什麼要這樣寫呀?) 先別打我,看看以下的原因:

  1. 首先你必須先將原來的套件移除後,再安裝改過的套件,不然會有所衝突。

  2. 然後找到 smarty.xml ,改用 &lt;{ 及 }&gt; 來代替 { 及 },因為在 XML 中,角括號是特殊字元,不能直接寫在屬性中。所以絕不能直接用 <{ 及 }> 來代替 { 和 } 。

  3. 接著在 smarty_include.htm 找到以下程式:

    1
    
    transArray[4] = LDELIM + "[ \t]*include";

    改成:

    1
    
    transArray[4] = "\<\{[ \t]*include"; // 就是將 <{ 改成 \<\{

    再找到

    1
    
    smartyRegExp = new RegExp("(" + LDELIM + "[ \t]*include[ \t]+file[ \t]*=[ \t]*[\"|'][ \t]*([^\"^']*)[ \t]*[\"|'][ \t]*" + RDELIM + ")", "im");

    改成:

    1
    
    smartyRegExp = /(\<\{[ \t]*include[ \t]+file[ \t]*=[ \t]*[\"|'][ \t]*([^\"^']*)[ \t]*[\"|'][ \t]*\}\>)/im;

    會什麼要這樣改,是因為 Javascript 在正規表示式 (Regular Expression) 上對 < 及 { 連在一起有不同的解譯方式所造成的,深入的 Regular Expression 請自行找書參考吧。

  4. 剩下檔案的就直接替換吧。

我把改好的檔案放在這裡:下載注意這是給 <{ }> 用的版本,不要下載錯了。

註:還是可能會有一些小問題發生,但基本上應該沒什麼大礙。但是如果還是有問題的話,請拿掉 smarty_include.htm 的支援後,再重新包裝。

Comments