下午由於網友安裝插件的問題, 我試著更新 tt 的版本至最新的 1.1.1 , 如同之前的安裝方式, 先用 mysql 備份資料庫, 再將 tt 1.0.6.1 目錄整個備份下來 (雖然有排每日備份, 但在升級前還是做一下最新的備份, 以防不時之需), 接下來就是將 1.1.1 整個目錄以覆蓋的方式蓋上原來的 tt 1.0.6.1 目錄.
接下來登入後台, 如以往一般, 會出現系統檢查, 完成後就順利地更新至 1.1.1 的版本, 繁中化的部分就直接用原來 languages 目錄下的 zh-CN.php 利用 convertz 建一個 zh-TW.php 出來即可順利完成, 很快地就能測試網友安裝本站插件的問題, 不過看起來似乎也沒有什麼大問題, 一切都很正常, 看起來都還 ok, 我也將後台的插件畫面抓下來給網友 Chieh 參考:
另外整理一下 1.1.1 和我之前用的 1.0.6.1 的差異處:
整體來說仍維持原來的相容性, 這個是我一直覺得 tattertools 做得還不錯的地方, 不過程式碼的彙整仍沒有進行, 也就是一個程式碼分散在多支程式的狀況仍沒有改變. skin 也都相容, 後台介面美化了不少, 接下來為分項描述:
1. 插件細分許多分類, 區分為側欄, 日誌, 一般, 管理, 信息, 插件等, 另外也提供了插件自訂參數功能(也就是設定欄), 這對於插件的客製化有很大的幫助. 還有插件使用的資料表也會在後台的插件資料表中出現, 方便用戶了解該資料表是系統表或是插件使用的資料表, 像是本站開發的 ViewCounter [顯示觀賞文章計數]就使用了一個資料表, {$database[‘prefix’]}entryreadcount, 就會在後台出現哦, 不過看起來沒有被關連到, 我再來看要做些什麼設定才會相關連.
2. 訪客不見了, 通常在 check 使用者透過哪些來源來到本站, 都是透過訪客中的逆向連結來查得, 不過 1.1.1 中並沒有看到這個功能, 不知是否要整合到信息中心去, 但裡面並沒有插件在做這件事, 所以這樣將會麻煩不少, 這個功能是很重要的功能耶. [17:15] 正在我準備著手撰寫信息中心插件用來做 referlog 列表時, 發現後台插件功能中有個
這個 referer log 管理插件, 原來躲在這裡啊, 在管理類型的插件下, 在上方會出現一個 tab, 就是這個插件的功能:
終於找到囉, 這樣我著手寫一半的插件就可以刪掉囉, 不過在撰寫插件的過程也研究完成自訂參數功能的寫法囉, 看來 tattertools 的功能是愈來愈強大了咧!
3. 信息中心, 將後台管理做一單純入口, 也提供插件開發功能, 方便用戶在後台管理時, 能一目了然, 方便管理. 其中也有 tattertools 的公告事項, 不過都是韓文的, 也都看不懂啦!
4. 後台編輯文章功能介面 loading 變重了, 有時 UI 更新會有一些些小問題, 但不影響操作.
5. 後台也有 skin 可供套用, 這個功能我想意義不大, 畢竟是因為後台是用管理者用的, 不是給訪客看的, 套用 skin 可有可無啦.
6. EAS 的 antispam 有做部分調整, 不過還是存在我之前發文的那個小問題! [2007/2/27 1:37新增]不過這次的改版對於 spam 有重大改善, 他利用了 local 的 $database[‘prefix’]Trackbacks 的 url, isFiltered 及 $database[‘prefix’]Comments 的 comment, homepage, name, isFiltered 來進行判定, 再加上 ip 的檢查, 累記達到 10個計數就直接判定為 spam 囉, 而且不是自己 blog 內的資料, 而是整個 local 多人 tt blog的整體資料, 所以可以所有用戶一起來反 spam, 不過我還是覺得這樣太仁慈了, 我修改為累記達到 3個計數就判定為 spam, 這樣快一點, 由於這個部分都會進到 1.1.1 版本內的回收站, 所以可以隨時回復回來, 應該也沒有太多誤判的問題. 程式碼如下:
// Do Local spam check with "Thief-cat algorithm" $count = 0; $tableName = $database['prefix'] . 'Trackbacks'; if ($type == 2) // Trackback Case { $sql = 'SELECT COUNT(id) as cc FROM ' . $database['prefix'] . 'Trackbacks WHERE'; $sql .= ' url = \'' . mysql_tt_escape_string($url) . '\''; $sql .= ' AND isFiltered > 0'; if ($result = mysql_query($sql)) { $row = mysql_fetch_row($result); $count += @$row[0]; } } else { // Comment Case $tableName = $database['prefix'] . 'Comments'; $sql = 'SELECT COUNT(id) as cc FROM ' . $database['prefix'] . 'Comments WHERE'; $sql .= ' comment = \'' . mysql_tt_escape_string($content) . '\''; $sql .= ' AND homepage = \'' . mysql_tt_escape_string($url) . '\''; $sql .= ' AND name = \'' . mysql_tt_escape_string($name) . '\''; $sql .= ' AND isFiltered > 0'; if ($result = mysql_query($sql)) { $row = mysql_fetch_row($result); $count += @$row[0]; } } // Check IP $sql = 'SELECT COUNT(id) as cc FROM ' . $tableName . ' WHERE'; $sql .= ' ip = \'' . mysql_tt_escape_string($_SERVER['REMOTE_ADDR']) . '\''; $sql .= ' AND isFiltered > 0'; if ($result = mysql_query($sql)) { $row = mysql_fetch_row($result); $count += @$row[0]; } //if ($count >= 10) { if ($count >= 3) { return false; } return true;
7. skin 的部分可以自行訂義側欄元素, 檢查一下程式碼, 是利用了 <s_sidebar> <s_sidebar_element> 這類 tag 進行的, 方便用戶自行定義側欄元素是否要出現及順序, 對於不太會調整 layout的用戶, 的確是還蠻不錯的設計.
[2007/3/9 0:52]
8. 之前版本沒提供的自訂連結(文章永久連結)的部分也已提供了, 在編寫文章時, 即可一併定義, 這樣才不會有那種很討厭的 unicode 用 urlencode 的網址囉, 如本篇:
後面有看到什麼再慢慢補上來囉!!