tag:blogger.com,1999:blog-5918579739413557982.post-50995592202649533112007-01-16T06:19:00.001+08:002007-10-12T03:37:30.384+08:00表謝意:近期迴響<p>搞不懂為什麼 Blogger 不提供「近期迴響」這個東西,之前使用「資訊提供」網頁元素(Feed Widget)搭配迴響的消息來源(Feed,偏不想叫它資訊提供勒)是做出了個堪用的東西,但可惜的是它不像 WordPress.com 一樣可以顯示迴響網頁標題。</p>解決方案找不到,頭痛了一陣子,也試用過 <a href="http://beautifulbeta.blogspot.com/2006/11/customizable-recent-comments-widget.html">Beautiful Beta 提供的方案</a>,但他有幾個大缺點: <ul><li><p>顯示的「標題」並不是真正的標題,而是連結名稱解析來的字串:</p> <blockquote cite="http://beautifulbeta.blogspot.com/2006/11/customizable-recent-comments-widget.html#comment-916147921016084662"><p><q>@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.</q> -- <a href="http://beautifulbeta.blogspot.com/2006/11/customizable-recent-comments-widget.html#comment-916147921016084662">Hans</a></p><p>簡譯:我也知道連結名稱不真能代表網頁標題,不過 Blogger 的 JSON 裡完全沒有網頁標題;雖然也可以從文章的 JSON 找同 post-id 的標題,但我不幹。(譯註:ㄜ,最後那個「我不幹」是我亂講的 XD)</p></blockquote><p>這點碰上中文更是致命啊...</p> </li><li>我問作者那些程式我可否自己修?他沒理我 XD (還是我留錯地方了?因為回去已經看不到我的留言...)</li></ul><p>本來放棄了,但昨天查詢 JSON 資訊的時候發現水瓶子那邊已經有可以支援中文的版本「<a href="http://next.writers.idv.tw/2007/01/json.html">JSON 應用(2):最新迴響的標題</a>」,這很棒!馬上拿回來裝裝看,發現一些地方跟我想的不太一樣: </p><ul><li>沒有考慮 noscript:mmm... 我會希望讓沒有開 Script 的人也能看到基本的東西。</li><li>版面顯示方式:這沒什麼好壞只是我不習慣,事實上原來的方式感覺還蠻有效率的。</li></ul><p>所以經由水瓶子的<a href="http://next.writers.idv.tw/2007/01/json.html#7568198918681325156">友善回應</a>,我稍微修改成自己的版本(嗯,其實還改蠻多的,因為我的需求比較簡單),也提供大家參考,修改的地方簡述如下:</p><ul><li>考慮不開 Script 的朋友:照後面提到的步驟修改的話,即使對方關閉 Script 也可以看到原來的 Feed Widget 版本。</li><li>程式碼比較簡單:剛說了我的需求比較簡單,所以寫的程式也簡單,或許你改起來會更輕鬆?</li></ul><p>還有些小缺點... 不過目前是堪用狀態,總之先放出來給大家看,要修改請自便、發現問題歡迎幫我 debug... XD 安裝方法如下: </p><ol><li>先到「範本>網頁元素」中插入一個「資訊提供」網頁元素,怎麼設定都行,只要來源的地方填上「http://你的blogspot網址/feeds/comments/full」就行了。建議標題直接命名為「近期迴響」。</li><li><p>儲存後切換到「範本>修改 HTML」處,在內容中找到你剛剛輸入的標題(近期迴響),那一整行長得應該像這樣:</p><code>&lt;b:widget id='Feed2' locked='false' title='近期迴響' type='Feed'<b>/&gt;</b></code> </li> <li><p>麻煩先把剛那段程式碼中粗體的「/&gt;」刪掉,隨即貼上以下這段程式:</p> <pre><code> &gt; &nbsp; &lt;b:includable id='main'&gt; &nbsp;&nbsp;&nbsp; &lt;h2&gt;&lt;data:title/&gt;&lt;/h2&gt; &nbsp;&nbsp;&nbsp; &lt;div class='widget-content'&gt; &nbsp;&nbsp;&nbsp; &lt;div id='divrc'&gt;&lt;ul expr:id='data:widget.instanceId + "_feedItemListDisplay"'&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;b:loop values='data:feedData.items' var='i'&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;b:if cond='data:showItemAuthor'&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;b:if cond='data:i.author != ""'&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;span class='item-author'&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;data:i.author/&gt; said: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/span&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/b:if&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/b:if&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;span class='item-title'&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;a expr:href='data:i.alternate.href'&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;data:i.title/&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/a&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/span&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;b:if cond='data:showItemDate'&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;b:if cond='data:i.str_published != ""'&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;span class='item-date'&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &amp;#160;-&amp;#160;&lt;data:i.str_published/&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/span&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/b:if&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/b:if&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/li&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/b:loop&gt; &nbsp;&nbsp;&nbsp; &lt;/ul&gt;&lt;/div&gt; &nbsp;&nbsp;&nbsp; &lt;script type='text/javascript'&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g_iShowCount=5; //這個 5 改成你要顯示的數目 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g_szBlogDomain=&amp;quot;blog.bobchao.net&amp;quot;; //這邊改成你的 blogspot 網址 &nbsp;&nbsp;&nbsp; &lt;/script&gt; &nbsp;&nbsp;&nbsp; &lt;script src='http://page.bobchao.net/rc.js' type='text/javascript'/&gt; &nbsp;&nbsp;&nbsp; &lt;/div&gt; &nbsp; &lt;/b:includable&gt; &lt;/b:widget&gt; </code></pre><p>記得修改程式中提到的兩個變數。</p> </li> <li>先預覽一下會比較保險,沒問題之後就可以存檔了。</li></ol> <p>這樣會引入http://page.bobchao.net/rc.js 程式碼,要 debug 請往<a href="http://page.bobchao.net/rc.js">這邊走</a> :)</p><p>其實原版我有些地方不太了解,像是不知道為什麼要取 id 跟排序,不過我的需求來講應該用不到就是了。GData 還有很多<a href="http://code.google.com/apis/gdata/reference.html#Queries">查詢參數</a>,如果其提供的 JSON 都能用的話,或許我以後還會再修改一下(例如,我現在才看到有 entryID 這玩意...)</p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5918579739413557982-5099559220264953311?l=blog.bobchao.net'/></div>柏強http://www.blogger.com/profile/06864196982157693291noreply@blogger.com12