分類
程式技術

TatterTools中的Flash Upload安全性問題

由於 flash 在 10版之後, 透過 flash upload 的安全性有提升了, 不能使用 javascript 去呼叫 flash 的 select upload file dialog box, 所以在 TatterTools 中的發表文章的上傳組件就會因此失效.

解決的方式其實也就是把 browser 的 flash 降級成 flash 9 的版本, 但這個很怪, 因為有新版 flash 不用, 要去用舊的, 而若是升到 flash 10 又要能上傳的話, 一個是 disable browser 的 flash 功能, 但這個也很怪, 另一個則是修改一下 TatterTools 的編輯後台中的 upload module 讓 flash 失效即可.

其實 TatterTools 後台, 使用 flash upload 可以做多檔 upload, 但若沒有透過 flash 的話, 則是走 web upload , 一次只能上傳一個檔案, 雖然會比較麻煩, 不過也算是還可以的解決方案.

需要修改的地方有兩個, 一個是在新發表文章的 /blog/owner/entery/post/index.php 調查其中關鍵字: hasRightVersion , 全文是:

var hasRightVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);

在下面加一行 hasRightVersion = false; 即可.

另一個位置是在修改文章的 /blog/owner/entry/edit/item.php , 一樣調查關鍵字 hasRightVersion, 一樣在偵測 flash version 後, 把該變數設為 false 即可.

修改好後, 在文章編輯後台的上傳區就會是單檔上傳的介面, 如下:
這樣一來就可以順利使用單檔上傳, 也避開了 flash 10 版安全性問題了!

分類
手機大未來

使用google adsense for mobile content

好一陣子沒去看 google adsense 的獲利狀況, 今天心血來潮去看了一下, 發現多了個 adsense for mobile content, 因為 TatterTools 本來就有 mobile 的版本, 所以上 google adsense for mobile content 是不困難的事.

來看一下在 google adsense 新增的這個服務吧:

呈現的結果是這樣的:

於是進行申請並植入程式碼. 不過有趣的地方是在於他的程式碼和一般的 adsense for content 的 client side javascript 或 html code 是不同的, 他必須將 code 放在 server side code, 也就是在 server 上執行產出 html 供 mobile client 使用, 這個原因是因為大多數的 mobile client 對於 javascript 的支援性並不好, 而且也有相容性的問題, 所以必須使用這種方式來產生較相容的 html 供 mobile client 使用.

支援的 server side 程式語言目前共有4種, 分別為 php, perl, jsp及asp, 細項版本說明如下:
* PHP v4.3.0 或以上版本
* CGI/Perl v5.8 或以上版本
* JSP v1.2 或以上版本
* ASP 3.0 或以上版本

重導用戶至手機網址插件

好一陣子沒寫 plugin 了, 用手機瀏覽 tattertools 的網頁, 本來就存在網址 https://diary.tw/tim/m 這個功能, 不過若是直接用手機瀏覽至文章的話, 例如: https://diary.tw/tim/494 , 應該要被 redirect 至 https://diary.tw/tim/m/494 . 這個功能一直很想實作, 卻沒時間也一直沒想法怎麼架構這個插件.

今天用手機上網找資料, 找到自己的網站, 連回來, 連到原來正常的網頁, 但實在太大又不方便, 雖然自己知道可以加上 /m 來改網址達到手機可觀看的版本, 但別人不見得會知道啊, 所以今天就來寫這個小插件.

架構上用了比較簡單的 tagname 方式實作這個插件, 所以要用的使用者, 麻煩就將 [ ##_MobileRedirect_## ] (注意要去除[]間的空白)放在 skin 上, (放在愈前面愈好, 最好是在 < head>之後, 或是 <body>之後, 如此才能快速作用(用javascript重導的).

判定的方式利用了 Russell Beattie’s Weblog (link) 的 Mobile Browser Detection in PHP 這篇文章內的判定手機方式來達成, 一共分為兩個步驟:

先判定 directive ($suri[“directive”]) 是 “/”, 也就是首頁或是內容頁(用數字版本的), 詳情可以參考: TT的$suri好用資訊 這篇文章.
接下來再判定是否為手機用戶, 這個就用 $isMobile 來判定

一旦兩者皆符合時, 就重導至 /m 的手機版本網頁.

請各位有空試看看, 若有任何問題或建議, 歡迎提出來哦!

插件下載:
MobileRedirect.zip

完成LoadAddComment插件

在 tattertools 中, 留言或回覆評論時, 有時候會因為網路速度較慢, 而 tt 又是使用 ajax 的方式回應, 而造成似乎沒有反應的狀況, 利用了 dynamic html 中的 div 及一個 loading 的小圖示, 開發了一個插件, 在留言或回覆評論時提示了等待的狀況, 目前尚為一個測試版本, 先給大家測試看看, 下個版本將會加入自訂訊息, 顏色邊框, 等待時間等功能, 敬請期待!

目前功能為出現在畫面正中央會有提示, 畫面如下:

MailNotification0.5插件完成囉

網友Chieh需要一個能主動通知有新留言功能的插件, 順便實作一下在 1.1.1 的版本下, 有 configuration 功能的插件, 便著手開發了一個於文章留言及留言版留言的主動通知插件.

本插件利用了 configuration 介面可以進行是要對文章留言有效或是對留言版留言有效, 當然亦可同時設定有效, 介面如下:

只要發生了新的留言, 就會依照設定進行 mail 主動通知, 並會將留言者, 留言類型及是否為秘密留言, ip 等資訊一併寄出, 也將連回查看的網址附上, 功能很單純也十分方便, 歡迎大家多多利用!!

下載:
MailNotification0.5.zip

 

分類
懶得分類

升級1.1.1完成

下午由於網友安裝插件的問題, 我試著更新 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 也都相容, 後台介面美化了不少, 接下來為分項描述:

tt的trackback spam嚴重及改善方法

最近因為 tt 的 trackback spam 發生的愈來愈嚴重了, 雖然有 eolin 的 antispam 在背後努力著, 但是還是進來了一堆 trackback 的 spam.

最近發生的大多是這個網址來的: 9hxofreeporn.info 還有 9hwifreeporn.info , 不知他是如何躲過 eolin 的 antispam plugin 的咧. 不過無論如此, 針對這樣的特性, 索性想寫個 plugin 來自己 antispam 一下, 結果在實測時, 發生了小狀況.

隨機文章列表RandomArticle 0.9

利用了 MySQL 的 rand() 函數, 將文章做出隨機列表, 內容相當簡單明瞭, 可以做為寫 plugin 的入門參考資料. (詳情參考 https://diary.tw/archives/372 這篇隨機資料取得)

由於在 {$database[‘prefix’]}Entries 要選出文章, 得有以下幾個條件:

  1. owner=$owner (使用者blog內的文章)
  2. visibility=2 (公開的)
  3. draft = 0 (非草稿)
  4. category >= 0 (非公告, 寫到這, 想到 TopView 有一些問題, 因為沒區分公告連結)

TT的$suri好用資訊

在實作這麼多支 plugin 後, 因為網友在留言問了 RSS for Categories plugin 的問題, 於是找到了韓國 TT 官網上的 plugin 名稱為 Sub RSS (for TT 1.0.2), 接下來就測試, 也觀察這個 plugin 的實作方式及用法. (link)

因為都是韓文, 所以也就看不懂說明, 不過看 code 多少可以看得懂用法, 這個 plugin 是用來做在分類檢視(Category View)及標籤檢視(Tag View)下, 將 [ ##_SubRSS##_ ]這個代碼取代為一個 RSS 的圖案, 並含有在該分類檢視或標籤檢視下的 RSS 連結, 可以達成該網友問的問題的參考解答.

分類
好用軟體

WordPress MU 1.0終於出來囉

http://blog.chweng.idv.tw/archives/396/ 得到這個消息!
WordPress 是一個很棒的架 blog 站的軟體, 但多人使用 mu 版本一直都在開發階段, 終於正式的版本出來囉!

先將安裝及觀察的狀況簡單說明一下.

多人結構可以支援子網域及子目錄的方式. 基本上它可以線上直接申請一個新的 blog, 但目前是直接利用 wp-signup.php 這個程式進行申請, 不過線上申請是只能用4碼自定子域名, 而無法更短, 但由 admin 的介面上, 邀請的話, 則是可以設定更短的域名哦!