2007年8月30日木曜日

bloggerの「最近のコメント」問題

最近のコメントがブログのサイドバーについています。元々bloggerではその機能は無かったらしいです、公には。日本人でbloggerを使い始めた方が「最近のコメント」機能の役割をするスクリプトコードを発掘してくれて、僕はその方法に習って使っていました。

どこのbloggerでも、嘆きが聞こえますが、先週末からそのスクリプトが正しく動いていません。何があったのやら困ったものです…。誰かやり方が分かる人、タレコミよろしくです^^/ 

と思ったら別の所でスクリプトが公開されていました。arms22さんが公開しています。さらに、jsファイルを作成してWEB上に置かなくても、Bloggerのレイアウト画面でHTML/JavaScript要素を追加し、arms22さんのスクリプトをちょっとだけ変えた、下のスクリプトを貼り付ければ動作することを確認しました。スクリプト宣言がなされていないだけだったようです。

arms22さんありがとうございます!!!


<div id="recent_comment_list"></div>
< script >
<!--
function recent_comment_callback(obj) {
var data = obj;
var statusHTML = '<ul>';
for (var i=0; i<data.feed.entry.length; i++) {
statusHTML+= ('<li><a href="'+data.feed.entry[i].link[0].href+'">');
statusHTML+= (data.feed.entry[i].summary.$t.substring(0,32));
if (data.feed.entry[i].summary.$t.length > 32) {
statusHTML+= ('...');
}
statusHTML+= ('</a> - ');
statusHTML+= ('<span class="item-date">'+data.feed.entry[i].published.$t.substring(0,10)+'</span>');
statusHTML+= ('<span class="item-author"> '+data.feed.entry[i].author[0].name.$t+'</span>');
statusHTML+= ('</li>');
}
statusHTML += '</ul>';
document.getElementById('recent_comment_list').innerHTML = statusHTML;
}
-->
< /script >
<script text="text/javascript" src="http://360-to-issho.blogspot.com/feeds/comments/summary?alt=json-in-script&callback=recent_comment_callback&max-results=10"></script>


arm22さんのブログ
http://360-to-issho.blogspot.com/2007/08/blogger10.html


このスクリプトを使用する際の注意点は、
http://360-to-issho.blogspot.com/feeds/comments/summary
の部分を自分のブログと同じように書き換えましょう。
このブログの場合はhttp://toranekosan.blogspot.com/feeds/comments/summary
です。

あと最近のコメントをいくつまで表示するかというのも変えることが出来て、
recent_comment_callback&max-results=10
の部分の数字を変えれば良いようです。

追記::arms22さんのブログにて既に訂正版が公開されております。
arm22さんのブログ
http://360-to-issho.blogspot.com/2007/08/blogger10.html



改行バージョンは以下のとおりです。基本的に上のスクリプト部分を選択すると表示されないのもコピーできると思っていたのですが出来ないようですね。改行した部分を赤くしています。赤の部分が上で見えなかった行になります。ブログのフォームスタイルをストレッチ型にすればよいみたいなのですけど。


<div id="recent_comment_list"></div>
< script >
<!--
function recent_comment_callback(obj) {
var data = obj;
var statusHTML = '<ul>';
for (var i=0; i<data.feed.entry.length; i++) {
statusHTML+= ('<li><a href="'+data.feed.entry[i].link[0].href+'">');
statusHTML+= (data.feed.entry[i].summary.$t.substring(0,32));
if (data.feed.entry[i].summary.$t.length > 32) {
statusHTML+= ('...');
}
statusHTML+= ('</a> - ');
statusHTML+= ('<span class="item-date">
'+data.feed.entry[i].published.$t.substring(0,10)+'</span>');
statusHTML+= ('<span class="item-author"> '+data.feed.entry[i].author[0].name.$t+'</span>');
statusHTML+= ('</li>');
}
statusHTML += '</ul>';
document.getElementById('recent_comment_list').innerHTML = statusHTML;
}
-->
< /script >
<script text="text/javascript" src="http://360-to-issho.blogspot.com/feeds/comments/summary?
alt=json-in-script
&callback=recent_comment_callback&amp;amp;max-results=10"
></script>



13 件のコメント:

匿名 さんのコメント...

最終行、最末端がjson-in-scri
で切れてしまうんですが最後まで書いていただくことはできますか?

toranekosan さんのコメント...

上のフォームだと、自動的に改行してくれないようですね。

改行した投稿を追記しておきますね!

匿名 さんのコメント...

ご丁寧にありがとうございます。
なのに上手く表示できない・・・。

最近のコメントとしてページ要素を追加してコピーしても、
< script > < /script >
としか出ないんです。
原因なんておわかりになりますか?
面倒くさいことお伺いしてすいません。

toranekosan さんのコメント...

幸せな昼飯タイムですw

えっと、原因は僕の新たに貼り付けた奴に無駄なタグが挿入されているためと、自分のブログURLを書かなければならない場所を書き換えていないからだと思います。


再度、新たに投稿致しますね!

toranekosan さんのコメント...

http://toranekosan.blogspot.com/2007/09/blogger2.html

今日の昼の投稿にやり方などを書いておきました!これで出来ると良いのですが。一応動作確認はしています。

匿名 さんのコメント...

本当にありがとうございます。
ここまでしておいていただきながら・・・

なんでできないんだろう:;

ページ要素のタイトルだけは出るんですよね。

やはりコメントが出ませぬ。

むむむ。

自分のブログのアドレスも間違っていませんし・・・。

もう少し試行錯誤してみます。

toranekosan さんのコメント...

script と 表示されていたのならば、問題ないと思います。

注意点はテンプレートがblogger由来のものじゃないと、怪しいかもしれません。

< !--  -->という記述はコメント扱いになるようです。これがヒントとなって、おそらくそちらの環境で出来ていない原因かもしれません。 再度新しい方法を考えてみます。

匿名 さんのコメント...

お世話になっております。

私のブログではscriptとも表示されておりません。
全く何も表示されないのです。
『最近のコメント』というタイトルだけです。

テンプレートの件は私も考えてtoranekosanと同じscribe(?)を使っても変わりません。

ほぼ同じブログ環境のはずなのですが・・・。面倒くさい問題を持ち込んでしまって申し訳ありません。

匿名 さんのコメント...

お名前の後に『さん』を付け忘れました。・゚・(ノД`)・゚・。

toranekosan さんのコメント...

いえいえ、さんづけなんかにこだわるほど若くありませんから(^-^)気にしないでください。

うーん、テンプレも標準のならば問題ないはずですね(^^;)ページ要素で、他にjava動かしたりしていますか? 要素間でなにか干渉とかあるんでしょうかね? すごく不思議です。

最新の投稿の最後の方にとあるURLをのっけてあります。

スクリプトをコピぺして、その動作確認にも使えるし、htmlタグ有効なフィールドにもhtmlタグを認識しない分も生成してくれます。

一度これを使って、スクリプトの動作確認をするとよいかと^^;

僕はそれで試した所、うまくいくことを確認できたので、是非使うことをおすすめいたしますよ!

あと、どっかのwebmailを適当に取得して(hotmailでもなんでも)、僕のプロフィールが見れると思うのですが、そこのメールアドレス経由でスクリプトを送ってもよいですし。ちょっと今日はおそいので、このへんで^^;

匿名 さんのコメント...

何だか表示されないのですが何が悪いのでしょうか?

toranekosan さんのコメント...

http://toranekosan.blogspot.com/search/label/blogger%E3%81%AE%E6%9C%80%E8%BF%91%E3%81%AE%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E5%95%8F%E9%A1%8C

当ブログの「「最近のコメント」問題(3)」にて、解決できるようです。この日のログに書いたスクリプトはHTTPのソースを変な風に変換しているらしいです。なので、

1::「「最近のコメント」問題(3)」のスクリプトを使用する。
2::スクリプト内のURLアドレス指定部分(http://toranekosan.blogspot.com/feeds/comments/summary)を自分のブログのアドレスに変える。

できたスクリプトを
http://html.appelle.jp/cgi-bin/makesouce_cgi.cgi
に貼り付けて動作確認が出来たらOKです。

あとはこれをテンプレート:レイアウト:ページ要素追加: HTML/JavaScriptで、コピーしてください。

toranekosan さんのコメント...

http://toranekosan.blogspot.com/2007/09/blogger.html
にて、好みの設定に出きるように書いておきました。表示件数と表示文字数を指定できる様になっています。スクリプトを単にコピーするだけではだめで、編集する必要があります。