搞不懂為什麼 Blogger 不提供「近期迴響」這個東西,之前使用「資訊提供」網頁元素(Feed Widget)搭配迴響的消息來源(Feed,偏不想叫它資訊提供勒)是做出了個堪用的東西,但可惜的是它不像 WordPress.com 一樣可以顯示迴響網頁標題。
解決方案找不到,頭痛了一陣子,也試用過 Beautiful Beta 提供的方案,但他有幾個大缺點:顯示的「標題」並不是真正的標題,而是連結名稱解析來的字串:
@Ramani: I noticed that the post title is no exactly the same as the linkname. I checked the json-feed contents, and it offers no posttitle. You can get the post-id from the feed.entry.id object, but I have not come up with a trick to derive the posttitle fom the post-id.
-- Hans簡譯:我也知道連結名稱不真能代表網頁標題,不過 Blogger 的 JSON 裡完全沒有網頁標題;雖然也可以從文章的 JSON 找同 post-id 的標題,但我不幹。(譯註:ㄜ,最後那個「我不幹」是我亂講的 XD)
這點碰上中文更是致命啊...
- 我問作者那些程式我可否自己修?他沒理我 XD (還是我留錯地方了?因為回去已經看不到我的留言...)
本來放棄了,但昨天查詢 JSON 資訊的時候發現水瓶子那邊已經有可以支援中文的版本「JSON 應用(2):最新迴響的標題」,這很棒!馬上拿回來裝裝看,發現一些地方跟我想的不太一樣:
- 沒有考慮 noscript:mmm... 我會希望讓沒有開 Script 的人也能看到基本的東西。
- 版面顯示方式:這沒什麼好壞只是我不習慣,事實上原來的方式感覺還蠻有效率的。
所以經由水瓶子的友善回應,我稍微修改成自己的版本(嗯,其實還改蠻多的,因為我的需求比較簡單),也提供大家參考,修改的地方簡述如下:
- 考慮不開 Script 的朋友:照後面提到的步驟修改的話,即使對方關閉 Script 也可以看到原來的 Feed Widget 版本。
- 程式碼比較簡單:剛說了我的需求比較簡單,所以寫的程式也簡單,或許你改起來會更輕鬆?
還有些小缺點... 不過目前是堪用狀態,總之先放出來給大家看,要修改請自便、發現問題歡迎幫我 debug... XD 安裝方法如下:
- 先到「範本>網頁元素」中插入一個「資訊提供」網頁元素,怎麼設定都行,只要來源的地方填上「http://你的blogspot網址/feeds/comments/full」就行了。建議標題直接命名為「近期迴響」。
儲存後切換到「範本>修改 HTML」處,在內容中找到你剛剛輸入的標題(近期迴響),那一整行長得應該像這樣:
<b:widget id='Feed2' locked='false' title='近期迴響' type='Feed'/>
麻煩先把剛那段程式碼中粗體的「/>」刪掉,隨即貼上以下這段程式:
> <b:includable id='main'> <h2><data:title/></h2> <div class='widget-content'> <div id='divrc'><ul expr:id='data:widget.instanceId + "_feedItemListDisplay"'> <b:loop values='data:feedData.items' var='i'> <li><b:if cond='data:showItemAuthor'> <b:if cond='data:i.author != ""'> <span class='item-author'> <data:i.author/> said: </span> </b:if> </b:if> <span class='item-title'> <a expr:href='data:i.alternate.href'> <data:i.title/> </a> </span> <b:if cond='data:showItemDate'> <b:if cond='data:i.str_published != ""'> <span class='item-date'>  - <data:i.str_published/> </span> </b:if> </b:if> </li> </b:loop> </ul></div> <script type='text/javascript'> g_iShowCount=5; //這個 5 改成你要顯示的數目 g_szBlogDomain="blog.bobchao.net"; //這邊改成你的 blogspot 網址 </script> <script src='http://page.bobchao.net/rc.js' type='text/javascript'/> </div> </b:includable> </b:widget>
記得修改程式中提到的兩個變數。
- 先預覽一下會比較保險,沒問題之後就可以存檔了。
這樣會引入http://page.bobchao.net/rc.js 程式碼,要 debug 請往這邊走 :)
其實原版我有些地方不太了解,像是不知道為什麼要取 id 跟排序,不過我的需求來講應該用不到就是了。GData 還有很多查詢參數,如果其提供的 JSON 都能用的話,或許我以後還會再修改一下(例如,我現在才看到有 entryID 這玩意...)
之前連分類功能都沒有,還不是撐了這麼多年。缺個「近期迴響」功能也不算什麼,我想這算是歷史的包袱?(or系統老舊...)
回覆刪除Hi,我正在準備從wordpress搬過來的種種(從說要搬到現在拖好久了...),看到這好棒的script,不知道你介不介意我把它打包回家用呢XD
回覆刪除vintw,
回覆刪除當然好啊,請隨意 :)
會先出現原本的 FEED 2秒才轉換成新的。
回覆刪除瓦特比,
回覆刪除對啊,因為要顧及把 Script 關掉的人,所以一開始還是會出現原先的 Feed widget,等程式把資料抓回來以後才替換掉。
如果我不要出現原先的 Feed widget,
回覆刪除直接載入JSON,
然後格式改成:
----------------
文章標題
發表者 [日期]
----------------
不知道要如何修改,
對於JS我是一竅不通,
幫幫我吧!
瓦特比,
回覆刪除我這兩天會比較忙一點(有個幫老師做的東西要結案),弄完幫你改。(或者有其他哪位仁兄要來幫忙一下也很好啦 XD)
雖然我不知道你何時才會有空幫我改,
回覆刪除等你改好就 Gmail 給我吧!
hi 您好,
回覆刪除我之前用了您所寫的這個近期迴響功能
真的很好用
但是最近好像出了問題
後來檢查才發現
rc.js 這個檔案不見了
我之前是直接引用您原來位址的這個 js 檔
不曉得您是否可以把 js 檔寄給我
我另外找地方存放呢?
不好意思
麻煩你了~~
大餅:
回覆刪除我忘了還有別人會用 (因為沒什麼迴響還以為沒人用 T_T) 位址改到 http://page.bobchao.net/rc.js 了,你可以下載。
感謝了~
回覆刪除能不能請教柏強,如果我要在最新回覆裡加上日期呢?
回覆刪除如:
2008.03.14 flower said on 新期迴響.