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;

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

Feb 052008
 

WordPress MU
歲未年終大掃除,順便更新系統。

很早之前就很想要像 wordpress.com 那樣多使用者多 blog 的功能了,只是說覺得更新系統會很麻煩,而且要處理 LDAP 相關的問題,又要重新 patch 一次 (因為有稍微改了點code,要抓出來一個一個測), 一忙起來就懶得動這個了。

為了避免影響到原來的資料庫,在昇級前先把資料庫複製出一份,在新的這個資料庫上工作,這樣子就算升級失敗也不需要擔心。然後就重頭再裝一次 WordPress MU,並指到新的那個資料庫,接著將舊的 themes 通通倒一份到新的地方,結果居然就可以動了,而且版型內容都還在!當然,這個可以動並不代表更新就完成了,之前的一些小 plugin 和最重要的 WPMU LDAP Plugin 都還沒弄好,所以一般使用者是沒辦法登入的。

把 LDAP Plugin 設好之後,就可以正常登入了,接著再把其他比較重要的 plugin 丟進來,發現都可以正常運作,其實沒有想像中的那麼複雜嘛。新版的 WordPress MU可以設定成只有登入的使用者才能建立新的 blog (而且可以很多個,這就是本次更新的動機),所以也不需要特別修改程式來擋匿名使用者建立帳號及 blog;另外頁面不存在時的自動導向也可以在設定檔中直接指定,所以也不再需要直接修改程式了,那就沒啥好改的了啊。

早知道就早一點升級了。

update: chyang 反應 ldap 使用者沒辦法直接獲得新帳號,這部份還需要處理。