Feb 212008
 

Drupal 從 5.0 開始的預設版型是 garland,當初在 Drupal 5.0 推出前 wordpress 就偷跑還引發了一些風波,不過在 Drupal 5.0 正式推出之後,大家就可以大方用了。

這邊可以下載。

之前在更新完 wordpress 之後,想順便整理一下 theme,閒閒沒事跑去測一下,結果發現過不了 XHTMl 1.0 Strict,大致上看一下發現主要的錯誤訊息是這樣子的:

Entity references start with an ampersand (&) and end with a semicolon (;). If you want to use a literal ampersand in your document you must encode it as “&” (even inside URLs!).

嗯?原來是在抱怨 “&” 的啊,看了一下原始碼發現問題是在傳參數給產生圖形的程式 (image.php) 的這邊產生的問題,長得有點像是這樣子:

image.php?src=body.png&base=83ceaa&top=23c293&bottom=35c047

那好吧,就照說明把 “&” 改成 “&” 好了。 產生這段程式的是 functions.php,所以就把裡面的 php 程式和 java script 都改一改吧。

在修改完之後整個版面有圖的地方全黑,顯然這樣傳參數會有問題,無法設定正確的顏色。 再進去看一下程式發現其實還蠻單純的,因為前面加了 “amp;”,所以本來叫 “top” 的變數會被解讀成 “amp;top” 了,而處理圖形的程式要找的是 “top” 而不是 “amp;top”,那當然會出問題了。 所以接下來就是要修改讓處理圖形的程式知道要去找 “amp;top”,試了一下發現這個也蠻簡單的,只要在 images-base/image-data.php 的 sanitize_color() 函數的開頭加上這段程式,就一切正常了

$get = "amp;" . $get;

啊其實不改的話在一般的瀏覽器上顯示也是完全正常,所以不改其實也沒啥問題就是了。

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)