2005年12月30日 星期五

赫伯老爸的名言

赫伯老爸是誰?

今天看了機器人歷險記,很好看的一部動畫卡通,雖然看的是中文配音版,但是難得的是另有一番味道,不會像有些中文配音的片子看起來很奇怪,不自然。

在模版裡調用 PHP 的 Request 變數

如果想在模版裡面調用 PHP 的 Request 變數讓模版使用,例如「如何每個分類文章頁面頂端都會不同的FLASH或圖片」的討論串裡,要取得 postCategoryId 這個 $_GET 陣列元素在 header.template 裡面使用?

答案是:使用 Smarty 保留變數( reserved variables )

2005年12月28日 星期三

使用 hack 的代價

我的 blog 站使用了兩個 hack ,一個是摘要頁面公告核心補強 v0.1,另一個是更換 WYSIWYG 編輯器為 TinyMCE 。這兩個都還不是 LifeType 的正式功能,所以昇級時,真是辛苦。除了一般的昇級過程之外,升級之後還得要重新做上面的兩個 hack ,還得確定這兩個 hack 需不需要再修改

答案是什麼?還好,不需要修改,重做 hack 就行了。 Lucky !

2005年12月26日 星期一

LifeType 1.0.2 正式版釋出

這是開發團隊給 LTers 的聖誕節禮物。

這次的更新版本有兩項特色:
1.首次提供了 1.0.1 版昇級至 1.0.2 版的昇級包。
2.由開發中的 1.1 版移植了兩項隱藏功能:
2.1 跳過「管理面版」直接進入「發表新文章」界面。
2.2 在註冊程序中加入 CAPTCHA 機制,使用驗證碼來避免註冊機器人的干擾。

詳細說明請參考官方發佈訊息:

各位 LTers 更新的時間到了,加油吧!

譯完了官方發佈消息之後,接下來該我自己昇級了。

2005年12月23日 星期五

好用的 awk 命令

使用 awk 命令做 Linux 上的帳號批次管理,我已經用很久了。真的很好用!

剛好今天應教學組長的要求,重設了一個班學生的密碼,順便記下來吧!

以下是我下的指令:

awk -F: '/:207-/
{
cmd="echo newpassword" | passwd --stdin "$1;
print cmd;
system(cmd)
}'
/etc/passwd

這個指令的意思是,從 /etc/passwd 系統帳號檔案裡面抓出 207 班的學生帳號資料,並且把新密碼逐一設定給取出的帳號。

2005年12月16日 星期五

Windows XP 批次遠端關機

電腦教室下課時,經常一堆小朋友忘記關機就拍拍屁股走人。以前得逛一趟教室,一一尋找出未關機的電腦來處理。感謝伙伴 huihui 把電腦教室的 Windows 網域建立得非常完善,現在可以在座位上對尚未關機的電腦用 shutdown 指令直接令其關機了。

shutdown -s -f -t 0 -m pcname

  • -s :關機 ( shutdwon )
  • -f :強迫中止程式執行
  • -t 0 : 0 秒後關機,也就是立刻關機啦
  • -m pcname :關閉網域上名稱為 pcname 的電腦

透過這一行指令,網域管理員可以立刻強制關閉網域裡的電腦。

但是一個 shutdown 指令只能關閉一部電腦,要關閉多部電腦,那就要借重 for 指令了。

2005年12月15日 星期四

動手玩 LIfeType 模版

最近整理了一個「動手玩 LifeType 模版」的課程,課程內容包括:

  • 認識模版的檔案。
  • 看懂模版 -- 以 post.template 為例。
  • 修改模版注意事項。
  • 動手玩模版:
    • 加入摘要超連結。
    • 製作「關於站長」自訂頁面。
    • 加入網誌統計資料。
    • 修改模版以使用外掛程式。
    • 其他……

2005年12月9日 星期五

更新 TinyMCE 編輯器版本至 2.0.1 final (updated)

2006/07/24 補充說明:

因為 LifeType 1.1 已經將 TinyMCE 做為預設的編輯器,我不準備再更新這個更換 LifeType 編輯器的 patch 。大家一起期待快要推出的 1.1 吧!

謝謝鍾愛永存的站長 yugn 替大家打包了更新版本的 TinyMCE 。這個更新版本使用了官方最新的 TinyMCE 2.0.1 final 版本,解決了一些問題,並且包含了 utf-8 的中文化語系。

yuan 很客氣的寄給我,讓我先試用。我把其中的一些中文化不正常部份做了一些修改,並且在 Linux 下用 zip 重新打包,免得 Linux 用戶還得手動修改權限。

因為 TinyMCE 的文章開始有點多起來了,我未來應該也會多花點時間在關注他,所以增加一個 TinyMCE實驗室的文章分類。

以下為更新版本的下載及更新說明:

2005年12月5日 星期一

近期回響的 RSS feed

這玩意兒太酷了!

這是在 yjchen 的 blog 看到的這篇文章:「為 LifeType 加上 Recent Comments 的 RSS 功能」介紹的實作方法。

從很久以前,就想要實作這樣一個功能了,可以很快的知道 blog 上有沒有新的回響,只是以前對 RSS 還是一知半解,不知從何做起,後來覺得 recent comments 也蠻夠用了,就沒再想過。一看 yjchen 的實作方法,只有佩服兩字。

用力推!

2005年12月1日 星期四

LifeType 在 SourceForge 也改名了

繼所有的 文官方網站完成更改網域名稱之後, SourceForge 裡的 pLog 專案也已經不在存再,改名為 LifeType 了。

所以,現在要到 SourceForge 下載 LifeType 的相關檔案,要改到 http://sourceforge.net/projects/lifetype 網址了。

2005-12-04 更正。剛剛一試,上面的網址又不能用了?!還是得用 http://sourceforge.net/projects/plog 。難道當時剛好遇到官方在測試新的專案網址?還是我在做夢?

2005年11月25日 星期五

替回響加上 TiyMCE 的功能(增修 1 版)

原來我是覺得,回響不需要這麼複雜的功能,沒什麼興趣實作。可是看了網友 uranusforever 的慘痛經驗(請參閱論壇的這個討論串:關於tinymce的問題與建議),心想有這麼困難嗎?於是便試作看看。剛巧,被阿欣看到了…

反正,照下面這樣做就對了:

增修 1 版

  • 日期:2005-11-27
  • 增加解決在 IE 下無法顯示回響編輯區問題的方法。

2005年11月23日 星期三

修改 Moodle 的文章字體大小及行距

今天伙伴 huihui 說到 moodle 的文章字體和行距太小,不易閱讀。為了我們自己和學生的視力著想,那就動手改看看了。

2005年11月21日 星期一

主機恢復服務

今天上午到校後,將所有網路主機開機,正式恢復服務!順便紀錄一下發現的狀況:

  1. Google Analytics 網站連不上時,使用這項服務反而會造成網站開啟時卡在等待該網站的回應。 解決方法:暫時先關閉 Google Analytics Plugin,待 Google 網站可以連上後再重新開啟 plugin 。
  2. 可能因為網站關閉失連太久,cocoa Island 也沒有回應。 解決方法:暫時先 remark cocoa Island 的 Javascript ,等網路通暢後再回復。

2005年11月18日 星期五

主機暫時關閉

因為學校要做電力維修,機房電源將同步切斷,所以本站也將暫時關閉。

預計關閉期間為 2005-11-18 17:00。

預計恢復時間為 2005-11-21 08:00。

這段時間不能連線,我也很鬱卒。

2005年11月16日 星期三

Google Analytics Plugin

論壇裡 Eji 在問會不會支援 Google Analytics ?

我也不過昨天才在 阿駕的 blog 看到 Google Analytics 這項新服務。因為昨天剛玩,知道這大概是個什麼樣的東東。今天 Eji 說 WordPress 已經有 Google Analytics 的外掛了,想想這也不難,故而花了一下午的時間把它做出來了。

2005年11月15日 星期二

FireFox 裡長網址不能自動換行的解決方案

當文章或回響裡有很長的 URL ,在 FireFox 裡會因為無法換行而破壞 pannel 的版面,造成閱讀的困擾。這裡提供一個小小的解決方案,可以部份地解決這個問題。

這是模仿 Google Groups 的方法,把長網址置換成一個 [link] ,既美觀又不佔版面。反正 pannel 裡的最近文章和最近回響只是一個摘要而已,無妨!

方法如下:

2005年11月11日 星期五

解壓縮 .tar.bz2 的檔案

常見的 tarball 大都是 .tar.gz ,也就是用 gzip 格式壓縮打包後的 tar 檔。平常處理時,大都用 tar 程式一次搞定:

  • 將檔案用 tar 打包並用 gzip 壓縮:

tar zcvf package.tar.gz files...

  • 將 tarball 檔案直接用 tar 解開:

tar zxvf package.tar.gz

這回要在自家網站上裝 Mark 打包的 LifeType APIs 文件,竟然是用 bzip2 壓縮的 tarball ,這回不能偷懶,要認真學習了。總不能老是下載回 Windows 用 winrar 解壓縮後再上傳吧!太麻煩了。

2005年11月10日 星期四

在摘要頁面顯示的公告 Part final

以下整理出所有修改過的檔案和安裝使用步驟:

摘要頁面公告核心補強 v0.1

2005年11月9日 星期三

在摘要頁面顯示的公告 Part 6

LifeType 的所有語系檔都放在 locale 目錄裡,一個語系一個檔案,以 locale_語系代號.php 命名。下面是幾個與我們比較相關的語系檔:

  • locale_en_UK.php:英語。
  • locale_zh_TW.php:繁體中文。
  • locale_zh_CN.php:簡體中文。

我的系統裡只剩下英語跟繁體中文了,其它用不著的我全砍了,節省載入的記憶體。(這部份我不是很確定,但是曾在論壇見過有人因用不到的語系檔出錯而無法執行 LifeType ,故此判斷 LifeType 可能載入了所有的語系檔。)

另外,由 1.0 版開始,各 plugin 也可以自行針對 plugin 裡的語彙自行做出各語系的支援,這樣的設計讓我們使用 plugin 時,也能享有中文語系的支援,並同時做到多國語言支援。

在摘要頁面顯示的公告 Part 5

終於來到修改的最後步驟了,再搞定管理介面裡,設定最新消息文章分類的 categoryId 的部份,整個功能就算完整了。

整個管理介面的模版是放在 templates/admin 目錄下。為了安全起見, admin 模版是不能透過模版編輯器修改的。否則一個不小心改錯了,管理介面不能使用,那不是糟糕至極嗎

若想試試跟著做的人,請記得一定要先備份,拜託!拜託!

在摘要頁面顯示的公告 Part 4

完成了程式的修改之後,接下來換 summary 模版的修改。完成模版的修改之後,就可以在摘要頁面的首頁顯示最新消息了。

在摘要頁面顯示的公告 Part 3

針對新增到 SummaryDefaultAction 類別的新功能,會用到的 API 有:

在摘要頁面顯示的公告 Part 2

摘要頁面首頁的顯示,是由 summarydefaultaction.class.php 這個檔案裡的 SummaryDefaultAction 類別控制,只要在這個類別裡加上一些程式碼取得最新消息文章的物件陣列,並傳給樣版,就可以在樣版裡加以運用。

另外,為了不讓太多的最新消息「滿」出來,得對顯示的最新消息文章數加以限制。那想看「舊的」最新消息時,要提供一個連結到網站管理者 blog 的最新消息文章分類頁面。參考一般樣版的寫法,我們得將這個最新消息文章分類的物件傳給樣版。

在摘要頁面顯示的公告 Part 1

從宗欣兄學校 blog 華龍部落格的摘要頁面看到了最新消息區塊,每條最新消息的連結是連到華龍國小LifeType學習網誌,一時為之驚豔,原來可以這樣做。大家便在論壇討論起各種做法。

宗欣兄的做法是直接在 summary 模版的 recent.template 裡加入文章標題和連結。心想,如果能夠在網站管理員的 blog 站寫文章,而且直接在摘要頁面顯示標題和連結,那麼就太美妙了。於是動腦筋寫了一個蠻粗糙的解決方案。這只能解饞,不能止飢,一但公告太多,摘要頁面會被這些滿出來的最新消息塞爆。套句伙伴 huihui 的說法,那就像「馬桶滿出來」一樣。

於是,開始構思完整的解決方案。

2005年11月7日 星期一

hwadm 加入 TinyMCE 功能

hwadm 是我自己寫的一個 PHP 小程式,用來管理學生繳交檔案作業用的。

前一陣子研究 TinyMCE 時,順便把編輯畫面加上 TinyMCE 的編輯功能,感覺還不錯,而且很簡單呢。

2005年11月6日 星期日

cocoa Island

因為 neonman 在論壇問了一個「新手發問~標題要在哪裡加呢???」的問題,提到了「椰子蓋房子」這個 blog 小玩意兒。一時興起,便裝了一個試試看。

2005年10月25日 星期二

調整 TinyMCE 編輯區的字型大小

有沒有覺得 TinyMCE 編輯區的文字太小,傷眼睛?改成像這樣如何?

16pt 大字型的 TinyMCE 編輯區

教你怎麼改。

Web Developer's Handbook

原本想搜尋看看網路上有沒有人分享 FireFox 的 Web Developer Plugin 的使用經驗分享,無意中發現這個網站: Web Developer's Handbook 。天啊! 製作網頁的相關資料蒐集的太豐富了,趕緊記下來。

2005年10月21日 星期五

TinyMCE 小調整

TinyMCE 網站上的完整範例,工具列滿滿三大列,而 pLog 編輯區這麼小,放個兩列就已經看起來很滿了。還好, TinyMCE 有個 fullscreen 的外掛,可以讓我們用全螢幕編輯。現在的重點是,能否讓 pLog 保持剛剛好夠用的工具列,而在全螢幕時使用完整的工具列呢?

答案是可以。

2005年10月18日 星期二

pLog-TinyMCE-1.0.2-full Part III

我調測過的編輯環境是我自己認為已經夠用了。但是每個人的感覺不同,不能一概而論。

可以調整的部份,大概就是工具列按鈕了。這個部份,阿駕在他的部落格發表了篇文章「修改 TinyMCE 編輯器的按鈕」,寫的蠻清楚的,值得參考。我只打算寫下一些注意事項及個人調校心得。

pLog-TinyMCE-1.0.2-full Part II

在開始動手前,當然先談談免責聲明,也就是說,這是我的筆記,所寫的內容已證實在我的主機上是可行的。但不保證在任何機器上都是可行的(意外難免嘛!)。在跟著動手之前,最好先做個備份,以免發生任何意想不到的狀況導致資料的毀損。

那就開始吧!

pLog-TinyMCE-1.0.2-full Part I

根據 Mark 在 Mantis 裡的描述,當初因為上載檔案的限制,他把 TinyMCE 給減肥了。於是,當我想使用 TinyMCE 的 plugin 時,沒東西可用。於是,我決定下載完整的新版 TinyMCE 2.0RC3 ,並整合 Mark 的 pLog-TinyMCE-1.0.2.zip ,製作一個全功能的 pLog-TinyMCE-1.0.2-full.zip 。

使用TinyMCE取代HTMLArea

pLog 的 WYSIWYG 編輯器使用的是 HTMLArea 。其 bug 一直以來都為人所垢病。1.0.2 beta 換用了 HTMLArea branch 出來的 Xinha 編輯器,用得還是不太滿意(可能有太多 HTMLArea 的影子吧,純 kimogi 問題。)

Mark 曾在 mantis 上發佈一個替代方案,使用 TinyMCE 取代 HTMLArea ,並已在 pLog 中文測試站測試過可以正常運作。可惜 Oscar 要等到 pLog 1.1 版才要換用它。

我等不及了,於是自己動手:

2005年10月17日 星期一

TiddlyWiki真的很好玩

忘記從那裡看到 TiddlyWiki 的消息了。但是深入瞭解一下之後,哇!真是了不起的一個玩意兒!

覺得這真是值得推廣的好東西,也拿來當上課教材,特別製作了個中文使用手冊。歡迎參考看看。

另外,準備再找時間寫個 TiddlyWiki 的中文 DIY 手冊,敬請期待囉!

自行翻譯Moodle的語系檔

目前學校主機上安裝的 Moodle 是 1.5.2+(2005060222) 的版本。這個版本上預設的中文翻譯還缺非常多,造成使用上蠻大的不便。

其實 Moodle 有提供線上翻譯語系檔的界面,只要稍微做點權限設定,就可以自行中文化。

讓vim能完整支援utf-8的文件

在主機上使用 vim 修改程式已經是家常便飯了。經常會遇到的困擾是編修 utf-8 格式的文件在 vim 裡會變成亂碼。

當初是用 google 找到解決方案的,不過忘記在那裡找到的 :P 。雖然我不認識你,但是我謝謝你!

把方法記下來如下:

pLog安裝系列(一)-安裝環境

這次的安裝,不再只是試玩,而是準備做為全校的 blog 平台,所以在安裝上特別做了一些考量:

  1. 要有獨特的網址:這點必需事先在 DNS 主機上做好處理,並在 apache 上設定相對的虛擬主機。
  2. 將資料與程式分開:把 pLog 裡可以自訂的部份與 pLog 程式完全分開,包括語系、樣版、檔案中心、暫存檔…等目錄放在網路無法直接存取的地方。這樣可以兼顧未來升級時覆蓋已修改檔案的風險和備份的方便。
  3. 資料庫的定期備分:自己玩玩,玩死了就算了。但是提供服務,那就有幫用戶備份的義務了。

接下來是安裝環境:

lss實驗室重新開張

在之前的 pLog 站資料庫被我搞砸掛點後,一直忙於教材準備,無暇修復。在伙伴 huihui 的催促之下,終於又把 pLog 站架起來了。

那先前實驗室的文章呢?既然資料庫掛點,那當然是不復存在了。當然,有一些備份的文章還在,但以過期的 pLog 相關文章佔大多數。想想,重新開始也是不錯的選擇。