2006-07-15

給我 Recent Comments !!


Blogger 官方提供的功能真的很少。日曆要自己撰寫,文章分類的功能要靠 del.icio.us 或 furl 等服務來整合。這些或許麻煩起碼都還可以自行處理,但是「最新留言」( Recent Comments ) 這個功能 Blogger 系統沒有提供我也就沒輒了。

留言系統讓 blogger 與讀者有更多更直接的互動,大部分的 blog 系統都有提供留言的功能, Blogger 也不例外。很多的系統還提供了「最新留言」的功能以將最新的幾篇回復摘要式地顯示在主頁面上。這樣的功能有助於讓 blogger 與讀者能注意到有哪些文章正被熱切地討論,並可以很快的加入討論的行列之中。對於讀者而言這或許不是相當重要,但 blogger 能藉由此功能很快的查知有哪篇文章被網友留下了意見而不用在逐一去查閱每篇文章檢查留言 (另外一個方法就是冒著信箱被塞爆的危險使用電子郵件通知的功能 ) 。但不幸的是 Blogger 系統並沒有提供此功能。既然 Blogger 不提供,當然只好自己來了。

上網找了一下,在 Blogger 駭客中有一篇簡單的說明:
Recent comments in the sidebar
這功能相當簡單,會在主頁上顯示出最近的留言者與日期,事實上我很快的就對這個說明的程式碼進行了一些修改放到 blog 上。略為修改過的程式碼如下:
<MainPage>
<h2 class="sidebar-title">Recent Comments</h2>
<ul>
<Blogger>
<BlogItemCommentsEnabled>
<BlogItemComments>
<li><$BlogCommentAuthor$> //
<a href="<$BlogCommentPermalinkURL$>">
<$BlogCommentDateTime$></a><br/>
<script type="text/javascript">
document.write('<$BlogCommentBody$>'slice(0,10));
</script>
</li>
</BlogItemComments>
</BlogItemCommentsEnabled>
</Blogger>
</ul>
</MainPage>

修改的部份相當簡單,因為僅顯示留言者與留言日期實在有點單薄,所以我又加上了留言內容的摘要,會在畫面上顯示該筆留言的前10個字元。

我還希望能夠顯示被留言的文章名稱,受限於 Blogger 系統的規劃這會有點麻煩。不過已經有網友撰寫好這個加強版的最新留言功能,可以參考下列網站:
Farrago Recent Comments Hack 1.03

安裝的方法相當簡單,這樣最新留言的功能應該很完備了。但最後我還是從我的 blog 上拿掉這些程式碼,徹底的放棄此功能。原因很簡單,因為這些程式碼所能顯示的並不是真正的最新留言。

這樣講起來有點矛盾,不過在文章一開頭所提供的那篇Recent comments in the sidebar文章內最下面就有提到,受限於 Blogger 系統,這裡只能抓取到主網頁上文章的留言。如果 Blogger 系統設定顯示 9 篇文章於主網頁上,那麼這裡就只能顯示最近九篇文章內的留言摘要。若有人對更早的文章留下任何意見,即便這個意見是全 blog 最新的一則留言也不會被這個最新留言 hack 抓出來顯示在主網頁上。真是完全敗給 Blogger 系統,最後我完全放棄在 blogr 上實現這個功能,只能先利用電子郵件通知的功能來注意 blog 上的新留言 ( 幸好 Gmail有充足的空間 )。就等待 Blogger 未來的大改版了(如果還有的話)!

6 則留言:

shizo 提到...

哈!我也是使用電子郵件通知系統來注意blog上的留言,另外每po一篇新文章也會寄送到設定的信箱當作備份,但是發佈文章之後再度修改內文,就不會再寄送文章了!這也是讓我覺得困擾的地方...

Bart 提到...

本來以為Haloscan這個免費的 Commenting 系統會有提供 recent comments 的功能,剛剛查了一下也沒有,暫時是徹底放棄了。我沒有設定發布新文章時自動寄送到設定的信箱,等到文章夠多的時候在一次備份就好囉。

瓦特比 提到...

Google 近年來在各方面都有新的進展,但在 Blogger.com 似乎停滯不前...

Howl 提到...

另一種方式是另外再開一個blog
利用意見的通知信轉寄到那個blog發佈
取得接收意見的Blog的Feed之後
再去parse...
XD
有點麻煩就是了 Orz

Bart 提到...

To:Howl
ohhhhhhh....這個方法帥氣喔!我還沒有想到。或許可行,但受限於網頁安全性的設定,似乎需要有另外的網站將 feed 轉為 javascript ,無法利用 Ajax 直接在範本內加入解譯 feed 的 javascript 。所以我想目前還是等待新版的 Blogger 好了。

蠢魚 - vegafish 提到...

你原始碼的slice()前面少一個小數點
會造成語法錯誤喔 :)