2006年1月24日 星期二

升級至 LifeType 1.0.3

翻譯完官方的 LifeType 1.0.3 released ,並發佈在中文網站上發佈中文的 LifeType 1.0.3 發佈 之後,早上學校網路無預警的連不上,估計是無預警停電造成的。下午去忙了,直到現在才有空做 LifeType 1.0.3 的升級和寫這篇文章。

既然官方有提供 lifetype-1.0.2-upgrade-1.0.3.zip 升級包,加上上回在論壇有人對升級包存有意見,這回就讓我試試升級包吧!

升級之前,先回憶一下,自己的 LT 曾做過那些官方還沒列入的 hack ,免得升級後要重做時痛苦萬分。還有,既然使用升級包,當然要先看看升級包裡面的東西與我加在網站上的 hack 有沒有重複?若沒有重複,直接使用便完成升級了,豈不美哉?!

2006年1月20日 星期五

More Raw Request Mode Hack v0.5

謝謝 3gboke 兄,他又抓到 bug 了

這回是一般簡潔網址模式下,資料夾的檔案無法下載,我另外再查一下一般自訂網址模式果然也有相同的問題,而且更慘的是,連小型/中型縮圖也看不到。

這回問題出在 Oscar 把 ResourceServer 的 op 寫死在 resserver.php 裡面。為了不循環做 include 動作,網址的分析我全交給 index.php 處理,不再 include resserver.php 和 blog.php ,結果就少了 ResourceServer 的 op 而自動使用 default op ,回到 blog 的首頁了。

為了解決這個問題,多修改了 prettyrequestparser.class.php 和 customurlhandler.class.php ,在分析下載檔案的網址時,直接加上 ResourceServer op 便可以解決這個問題了。

changelog:

  1. 同時包含一般簡潔網址模式(pretty raw request mode)和一般自訂網址模式(custom raw request mode)的修正檔,分別放在兩個資料夾裡。
  2. 修正一般簡潔網址模式不能下載資料夾裡檔案的錯誤。
  3. 修正一般自訂網址模式不能顯示小型/中型預覽圖和下載資料夾裡檔案的錯誤。
  4. 在 hack 包裡加上中英文的 readme 和 changelog 。

2006年1月15日 星期日

More_Raw_Request_Mode_v0.4a

這個 hack v0.4a 並不是因為 hack v0.4 有 bug ,不同於 hack v0.4 使用一般簡潔網址模式,而是用一般自訂網址模式來取代一般網址模式。

會再出這個版本,主要是覺得自訂網址模式好像比一般網址模式受歡迎,而 Oscar 只說 LT v1.1 會考慮使用兩者之一取代一般網址模式,並沒有說要用那一種。 hack v0.4 使用一般簡潔網址模式純粹是我個人的喜好,不能代表大家的喜好吧!所以覺得還是把他做出來,讓開發小組去做選擇吧!

我偏好簡潔網址模式的原因,最主要是自訂網址模式不支援中文。其實網址上使用中文本來就有很大的問題,但是自訂網址其實可以處理,像文章就有「短標題」部份可以輸入文章的英文標題當網址用;而作者可以使用 id。為德不卒的是,只有文章和作者可以用,其它的像網誌名稱、文章分類名稱、資料夾名稱…都還沒有。所幸 LT v1.1 據說將全面支援這些「短名稱」,那自訂網址的實用性便大增了。但是,那也得作者不嫌麻煩地加另一個標題

另一個問題是效能。簡潔網址和自訂網址都需要一個 RequestParser 的類別做網址的分析。簡潔網址因為有一定的格式,所以他的 parer 就比較單純;自訂網址因為「自訂」的彈性,他的 parser 就寫的複雜多了。流量不大的小站或許沒什麼問題,若是用戶萬人,一天幾萬到幾十萬擊點數的大站,理論上效能是有差的。有興趣的人可以比較 class/net 目錄下的 prettyrequestparser.class.php 和 customurlhandler.class.php 兩個檔案就知道了。

不廢話了,有興趣測試的人,請由此下載: more_raw_request_mode_hack_v0.4a.zip (更新!搬家到 blogger ,這又是舊版用檔案,不再提供了。)

測試方法跟 hack v0.4 相同,就不廢話了,請自行參考之前的文章吧!

路過的人,願意留下意見,說說看你喜歡那個網址模式嗎?

2006年1月12日 星期四

More Raw Request Mode hack v0.4

新功能還是得要大家幫忙測試的, hack v0.3 果然有一個 bug ,如下的 blog 網址無法正常被解析:

http://your.server/lifetype/index.php?action=/blog/{blogId}

造成所有的 blog 首頁網址會一律跳到預設的 blog 。

謝謝 3gboke 發現這個 bug,要解決這個問題,必需要多修改一個檔案。

另外, Oscar 在英文官方論壇有這樣的回應

I need to take a look at these changes. We might integrate them in 1.1

所以,在 1.1 版時,這個可能會取代一般網址模式囉,請大家期待 LifeType 1.1 吧!

回歸正題,hack v0.4 出爐了。

2006年1月8日 星期日

More Raw Request Mode hack v0.3

這個 hack 發表後,有興趣的人似乎不多?!倒是 Oscar 有這樣的回應

Isn't 6 request generators a bit too many? We could replace the current "raw" one with one of these two. After all, current "raw" urls will always work no matter what method is currently being used...

也就是這,這兩種模式的其中之一未來可能會取代目前的一般網址模式,還有,目前的一般網址模式也要能夠正常運作。當然,這是向下相容的必要做法。

所以,依據 Oscar 的要求, hack v0.3 版出爐了。

2006年1月4日 星期三

如何預設啟用外掛程式?

2006/04/18 更新:

maomaode 在論壇裡提到了本文所列出的程式碼不夠完善,並提出了他修改後的程式碼跟大家分享。我想,這就是自由軟體的好處吧!大家都有使用軟體的自由,也因此,讓軟體進步的更快快去看看吧!

很多人都在想安裝了一些防圾垃干擾外掛後讓每個 blog 都預設啟用它們。但是大部份的 plugin 都沒有把這個寫進去。今天 maomaode 又在論壇問起,基於因一時記錯,給錯資訊的罪惡感,於是拿 authimage 來試試。

其實做法非常簡單,每個 plugin 都會有一個 Plugin{pluginname} 的類別,裡面有一個 register() 方法。在 api 文件裡面這樣說

This function is called only once when the plugin is registered. Please use this method in case your plugin needs to perform some initializations before it is used, specially if the initialization process requires access to the plugin/blog settings......

More Raw Request Mode hack V0.2

安裝 LifeType 時,經常看到的問題是,想使用簡潔網址ModRewrite 網址模式、或自訂網址模式時,因為 WWW 主機沒有開放修改 .htaccess 的權限,或是使用了 IIS 主機而缺乏必要的支援,結果只能使用一般網址模式。

一般網址模式也沒什麼不好啦,就是網址經常又臭又長,不易記,不易用,不利搜尋引擎搜尋。這裡提供兩種新的網址模式,讓你的一般網址也能像簡潔網址般簡單,或是擁有自訂網址模式般的靈活運用。這兩種新的網址模式為:

  • 一般簡潔網址模式 ( Pretty Raw Request Mode ) 網址範例: http://your.server/lilfetype/index.php?action=/get/1/1
  • 一般自訂網址模式 ( Custom Raw Request Mode ) 網址範例: http://your.server/llifetype/index.php?action=/yourblog/1/2006/01/01/73

從上面的範例網址,你應該看出來了。沒錯,它跟一般網址不同的地方在於,都只用了一個 request 變數,而變數的內容為 blog 的相關網址,他們完全相容於簡潔網址模式和自訂網址模式,甚至,一般自訂網址模式使用與自訂網址模式完全相同的網址設定

有興趣嗎?請繼續往下看。

2006年1月2日 星期一

Pretty Raw Request Mode 試作

2006/01/04 補充說明:

因為我已經改過網址的格式,所以文章裡的下載連結取消,新版 hack 請參閱另一篇文章「More Raw Request Mode hack V0.2」。

LifeType 目前有四種網址模式如下:

  • 一般網址模式 ( NORMAL_REQUEST_MODE ) 所有的網址以 request 變數的方式放在網址中,主要是以各種 Id 組成。
  • 簡潔網址模式 ( SEARCH_ENGINE_FRIENDLY_MODE ) 將 request 變數裡的各種 Id 組合成 Path Info ,讓網址成為搜尋引擎易於搜尋的模樣。這必需要 WWW 主機有支援並開啟 Path InfoErrorDocument 重導向的功能。
  • 網址重寫模式 ( MODREWRITE_MODE ) 其實這個模式很少看到有中譯名。這種模式利用 apache 的 rewrite url module 將易讀的網址重寫回一般網址的型式後,再以一般網址模式處理。這必需要使用 apache server ,並且支援及啟用 rewrite url module 才行
  • 自訂網址模式 ( CUSTOM_REQUEST_MODE ) 網站管理者可以依特訂的方式自訂各種網址,必需要 WWW 主機支援 ErrorDocument 重導向才能使用。

以上四種網址模式,除了一般網址模式之外,都需要 WWW 主機額外的一些支援。這些支援對租用虛擬主機架設 LT 的人來說,經常會受到限制,尤其是對不支援自訂 .htaccess 設定的虛擬主機而言,一般網址模式成為唯一的選擇。

一般網址模式並不是不好,但是過多的 request 變數,讓網址不易記,不易看,也不易用( 例如論壇裡 3gboke 關於 flash mp3 player 的討論 ),也較不利搜尋引擎搜尋。於是我想提出第五種網址模式,他只需要一般網址模式的環境,而且網址裡面只有一個 request 變數,希望能夠讓一般網址更易記易用

目前已有初步的成果,只要修改兩個檔案,新增一個檔案,並修改一個資料庫設定值就可以啟用了。若有興趣,請往下看。