『コメント一覧/トラックバック一覧を記事毎にまとめて表示するJavaScript』(日付範囲指定つき)を作成してみました。
指定した日付範囲のコメントまたはトラックバックの一覧を、記事毎にまとめて表示します。
ココログ標準の『最近のトラックバック』ではどこの記事に付いたトラックバックなのかわからないのが不満だったのですが、これで少しは便利になったかも???
残念ながら【ココログプロ】で【上級者向けテンプレートセット】を使用している方専用となりますが、該当する方はもし宜しければ一度お試し下さい。
もしかするとココログプロの他にもテンプレートを変更可能なTypePadやMovable Type系のブログなら使えたりするのでしょうか?(試す気は無いですが)
設置方法は、
- ココログプロの上級者向けテンプレートセットで、下記のテンプレート(commentlist.txt及びtblist.txt)を新規に作成する。
【テンプレートの新規作成方法】
- 『管理ページトップ > ブログ一覧 > (対象ブログ名) > デザイン』で、『現在のテンプレートを編集』を選択
- 「上級者向けテンプレート」欄の『新しいテンプレートを作成する』を選択
- 「テンプレート名」「出力ファイル」「テンプレートの内容」欄にそれぞれ下記の内容を貼付
- 『□インデックステンプレートを公開する際、自動的にこのテンプレートも公開する』にチェック
- 『保存』→『反映』画面で、作成したテンプレートを『反映』
- 下記、[一覧表示]の内容を、サイドバー等でHTMLを記述可能な場所(メモタイプのマイリストや、またはsidebar.incを直接編集する等)に貼付ける。
このとき、赤字になっているところを、ご自分のブログにあわせて変更すること。
【例】 |
| http://sample.tea-nifty.com/blog/ という URL の場合 | : /annex/ → /blog/ |
| 一覧表示開始の初期日付を 2004/4/1 にしたい場合 | : 2006/1/1 → 2004/4/1 |
もし、テンプレートの出力ファイル名を変更した場合には、それに合わせて青字の箇所も変更のこと。
また、prototype.jsを組み込み済の方(なおゆき氏のcocolog_ajax_search.jsやblog_ajax_json_search.jsをご使用の方など)は、緑字の行は不要です(よくわからなければそのままにしておいてください)。
設置完了したらブラウザでブログを表示し、表示されたフォームに一覧表示したい日付範囲を入力して“コメント一覧”もしくは“トラックバック一覧”横の[表示]釦を押して下さい。一覧が表示されると思います。
これは上記のテンプレートによりココログ(TypePad)が出力した結果を JavaScript で取得し、整形・表示しているものです。“キャッシュ使用”にチェックが入っている場合、2回目以降は結果取得を省略して整形・表示のみ行います。
ただし JavaScript の特性上、ページ遷移が発生してしまうと必ず読込み直してしまうので、結果表示画面のリンク先に飛ぶ場合は[Shift]キーを押しながらクリックする等して別ウィンドウ/タブとして表示させた方がよいかも知れません。
なお制限事項として、index.html(Main Index Template:index.html)上に class="content" の要素を持つ <div> タグが存在することを前提としています(その中に結果を表示します)。
これが存在しない場合には使えませんので、ご注意を。(『現在のテンプレートを編集』の画面で Main Index Template を開いて確認しておいてください)
最後になりましたが、このスクリプトは、なおゆき氏の『ココログプロとかTypepadとかMTとかブログ人とかその他のブログサービスとかでもAjaxでバックナンバーを検索するJavaScript』に触発され、大いに参考にさせていただきながら作成しました。この場を借りて、なおゆき氏にお礼申し上げます。
はっきりいって初めて、プロコースでよかったと思いました(笑)……でも考えてみれば、これくらいは標準機能として付いていて欲しいなぁ。。。>ココログ
テンプレート名:Comment List 出力ファイル:commentlist.txt
テンプレートの内容:
{
archive_list:[
<MTEntries all="1"><MTIfNonZero tag="MTEntryCommentCount">{
link:'<$MTEntryLink$>'
,title:'<$MTEntryTitle remove_html="1" encode_js="1"$>'
,comment:[
<MTComments>{
id:'<$MTCommentID$>'
,auth:'<$MTCommentAuthor remove_html="1" encode_js="1"$>'
,url:'<$MTCommentURL$>'
,date:'<$MTCommentDate format="%Y/%m/%d %H:%M"$>'
,excerpt:'<$MTCommentBody remove_html="1" trim_to="60" encode_js="1"$> ...'
},</MTComments>
{id:''}
]
},</MTIfNonZero></MTEntries>
{link:''}
]
}
テンプレート名:Trackback List 出力ファイル:tblist.txt
テンプレートの内容:
{
archive_list:[
<MTEntries all="1"><MTIfNonZero tag="MTEntryTrackbackCount">{
link:'<$MTEntryLink$>'
,title:'<$MTEntryTitle remove_html="1" encode_js="1"$>'
,tburl:'<$MTEntryTrackbackLink$>'
,tb:[
<MTPings>{
id:'<$MTPingID$>'
,url:'<$MTPingURL$>'
,blog:'<$MTPingBlogName remove_html="1" encode_js="1"$>'
,title:'<$MTPingTitle remove_html="1" encode_js="1"$>'
,date:'<$MTPingDate format="%Y/%m/%d %H:%M"$>'
,excerpt:'<$MTPingExcerpt remove_html="1" trim_to="60" encode_js="1"$> ...'
},</MTPings>
{id:''}
]
},</MTIfNonZero></MTEntries>
{link:''}
]
}
[一覧表示]
<script type="text/javascript" src="https://furyu.tea-nifty.com/script/prototype.js"></script>
<script type="text/javascript" src="https://furyu.tea-nifty.com/script/cocoTBlistPro.js"></script>
<span style="color:#446688;font-weight:bold;font-size:x-small">
<script type="text/javascript">
<!--
var tmpBlogName = '/annex/' ;
var tmpDefaultFrom = '2006/1/1' ;
var tmpDate = new Date() ;
var tmpDefaultTo = tmpDate.getFullYear() + "/" + (1 + tmpDate.getMonth()) + "/" + tmpDate.getDate() ;
var tmpCmtFile = 'commentlist.txt' ;
var tmpTbFile = 'tblist.txt' ;
var tmpCmtReq = 'cocoCommentListPro' ;
var tmpTbReq = 'cocoTBlistPro' ;
var tmpButton = '<input type="button" onclick="javascript:d=document;$CMD$(\''+tmpBlogName+'$FILE$\',!(d.getElementById(\'useReadCache\').checked),d.getElementById(\'dateFrom\').value,d.getElementById(\'dateTo\').value);" value="表示"/>' ;
var tmpInputText = '<input type="text" size="12" maxlength="20" style="color:#440000;background-color:#eeeeff" ' ;
var tblistform = [
'<form action="javascript:void(0);">'
, tmpInputText + 'id="dateFrom" value="'+tmpDefaultFrom+'"/> から<br />'
, tmpInputText + 'id="dateTo" value="'+tmpDefaultTo+'"/> まで'
, '<table><tbody style="font-size:12px;line-height:14px;"><tr>'
, '<td>コメント一覧</td><td>'+tmpButton.replace('$CMD$',tmpCmtReq).replace('$FILE$',tmpCmtFile)+'</td>'
, '</tr><tr>'
, '<td>トラックバック一覧</td><td>'+tmpButton.replace('$CMD$',tmpTbReq).replace('$FILE$',tmpTbFile)+'</td>'
, '</tr><tr>'
, '<td style="font-size:smaller">キャッシュ使用 <input type="checkbox" checked id="useReadCache"/></td>'
, '</tr></tbody></table>'
, '</form>'
].join('\n') ;
document.write(tblistform) ;
//-->
</script>
<noscript>
<div style="padding:4px 0px 8px 0px; color:red;">JavaScriptをONにしないと正常に動作しません。</div>
<div style="padding:4px 0px 8px 0px;">元データは下記からダウンロードできます。</div>
<dl style="margin-left:0px;padding:4px;">
<dd style="margin-left:8px;padding-bottom:4px;"><a href="/annex/commentlist.txt">コメント一覧</a></dd>
<dd style="margin-left:8px;padding-bottom:4px;"><a href="/annex/tblist.txt">トラックバック一覧</a></dd>
</dl>
</noscript>
</span>
<style type="text/css">
<!--
/* --- style sheet of cocoTBlistPro.js --- */
/* for Comment List */
.cmtl-indv {
list-style-type: none;
margin-left:16px; margin-bottom: 8px;
padding-left:0px;
}
.cml-article-cmtnum {
color: darkgreen;
font-weight:bold;
}
.cmtl-indv-cont-excerpt {
color: darkgreen;
font-size: 10px;
padding-left: 24px;
}
/* for Trackback List */
.tbl-article-title {
}
.tbl-article-tburl {
display:none;
}
.tbl-tbindv {
list-style-type: none;
margin-left:16px; margin-bottom: 8px;
padding-left:0px;
}
.tbl-article-tbnum {
color: darkgreen;
font-weight:bold;
}
.tbl-tbindv-cont-excerpt {
color: darkgreen;
font-size: 10px;
padding-left: 24px;
}
-->
</style>