2007年8月29日(水)

« 【ココログ】特定の記事に対する最近のコメントをRSSで取得 | トップページ | 台風と頭痛 »

【ココログ】過去記事をN件ずつさかのぼって表示するスクリプト

ココログのトップページから過去の記事をN件ずつさかのぼって表示できるようなスクリプトを試作してみました。
サイドバーのメモリスト等、HTMLを記述できるところに、↓のようなスクリプトを貼り付けます。
カスタムCSS対応のテンプレートをお使いの方は、CSS部分(<style ... >~</style>の~部分)は、カスタムCSSの中にまとめて書いてしまった方がよいです。
なお、拙作の目次スクリプトで既にCSS設定してある方は、このスクリプトでも共通で使えますので、<style ... >~</style>は省略出来ます。
<script type="text/javascript" charset="utf-8" src="http://furyu.tea-nifty.com/script/cocoPBack.js"></script>

<style type="text/css">
.ccpb_nav {
    font-size: 14px; line-height: 120% ;
    margin: 0px; padding: 2px 0px 2px 0px;
    text-align:center;
}
.ccpb_counter {
    font-size: 12px;
    margin-left: 12px;
    color: darkgreen;
}
.ccpb_list {
    list-style-type: none;
    margin-left: 12px;
    padding-left: 0px;
    text-align: left;
}
.ccpb_list li {
    margin-left: 0px;
    padding-left: 0px;
}
.ccpb_number {
    display:block; width:2em; text-align:right; font-weight: bold;
}
.ccpb_table tbody {
    vertical-align: top;
    line-height: 110%;
    text-align: left;
    word-break: normal ;
}
.ccpb_alink {
    width: 72px;
    font-size:10px;
}
.ccpb_plink {
    word-break: break-all;
}
</style>

<script type="text/javascript">
with (cocoPBack) {
    showMax             =   5 ;                 // 1ページあたりに表示する記事数(ただしトップページのみココログ管理画面の設定に依存)
    backTitle           =   'back' ; // '戻る'リンクのタイトル
    backStr             =   '<span style="font-family:monospace;"><< back</span>' ; // '戻る'リンクデザイン
    nextTitle           =   'next' ;            // '進む'リンクのタイトル
    nextStr             =   '<span style="font-family:monospace;">next >></span>' ; // '進む'リンクデザイン
    separator           =   '<span style="font-family:monospace;"> | <a href="javascript:void(0)" title="top" onclick="javascript:cocoPBack.pageBack(0)">top</a> | </span>' ; // セパレータデザイン
    spacer              =   '<span style="font-family:monospace;">       </span>' ; // '戻る'や'進む'リンクがないときの代替表示デザイン
    topTitle            =   'トップページ' ;    //  トップページで表示するタイトル
    pageTitle           =   'バックナンバー' ;  //  バックナンバーページで表示するタイトル
    switchLinkType      =   true ;              //  ページ内移動と個別ページへの移動のリンクの入れ換え(false:入れ換えない true:入れ換え)
    linkTitleType1      =   'ページ内移動' ;    //  ページ内を移動するリンクのタイトル
    linkTitleType2      =   '個別ページへ' ;    //  個別ページへ移動するリンクのタイトル
    useIndex            =   true ;              //  ページ内目次表示
    useTopIndex         =   true ;              //  トップページにも目次表示
    useTopNav           =   true ;              //  上部のナビ表示
    useBottomNav        =   true ;              //  下部のナビ表示
    navBeforeIndex      =   true ;              //  ナビを目次の前に付ける
    entryDescend        =   true ;              //  元の記事の並び順(false:昇順 true:降順)
    onCompleteContent   =   null ;              //  整形後に呼出す関数
}

cocoPBack.init();

</script>
デフォルトだと、上下に << back | top | next >> のようなナビが現われて、5件ずつ表示を切替えることが出来ます。
各種パラメータについてはコメントを見ながらお好みで変更してください。
なお、拙作の目次スクリプトを使用している場合には、
cocoPBack.init();
を削除し、代わりに、目次の設置用スクリプトのオプションとして、
cocoPView.onCompleteContent=function(){
cocoPBack.init();
};
というのを追加します。
既にお知らせスクリプト等でこの設定を使っている場合には、
cocoPView.onCompleteContent=function(){
cocoInsertNotice.init();
cocoPBack.init();
};
のように{ ~ }内に追加します(cocoPView.onCompleteContent=~の設定を2箇所以上に書いてしまうと、後のものが優先されて前のものは無効になりますのでご注意を)。
cocoPView.onCompleteContent=~は、cocoPView.init_onload() もしくは cocoPView.getArchivesRequest()よりも前に追加してください。
また、このスクリプトを適用したあとで別のスクリプトの機能を呼びたい場合(たとえば、ページを切替えた後で、コメント表示釦TOPへ戻るリンクを追加したい場合等)には、上の設置用スクリプト中で、onCompleteContentの箇所を修正します。
例えば、コメント表示釦の追加の場合には、
onCompleteContent=function(){
cocoCView.init();
};
のように設定します。
【制限事項】
  1. 動作するかどうかはお使いのテンプレートに依存します。特に、ココログオリジナルテーマ等はNGです。また、月別バックナンバーを作成していないブログでは動作しません。
    具体的には、ご自分のトップページにて、
    ブックマークレット:過去記事をN件ずつ表示
    を試してみて、ナビや目次が表示されないようでしたら、未対応です。
  2. トップページの表示件数はココログの管理画面で変えてください(このスクリプトではトップページについてはナビを付けるだけです。showMaxを調整しても変わりません)。
  3. 記事中にスクリプト等のタグを貼り付けてある場合に、動作しません(@nifty投票など)。
  4. 当然ながら無保証ですし、あまりテストしていないので不具合も多いかと思います。ご了承の上、自己責任でお使いください。
みんなで解決!広場』で、たまに、トップページから過去記事をさかのぼりたい(*1)、1件ずつじゃなく何件かずつ表示したい、といった意見をみかけるので、試しに作ってみたものです。
月の切れ目のところでもたついたり、URLが変化しなかったり、いろいろと問題があるのは重々承知の上ですが、『無いよりはまし』程度のものが出来たようにも思います。いかがでしょうか。
(*1) 最近のメンテナンスで、プロコース以外でも、トップページから次の1件へは飛べるようになったので、1件ずつならたどっていくことはできますね。

この記事をニフティクリップβに追加 この記事をはてなブックマークに追加 2007/08/29(水) 00:56 | | 記事の編集(管理者用)

風柳へひとこと(web拍手) 

おもいつき」カテゴリの記事

ウェブログ・ココログ関連」カテゴリの記事

トラックバック

この記事のトラックバックURL:

記事との関連性が薄いものやSPAM等、管理人が不適切と見なしたトラックバックについては予告無く削除する場合が有ります。悪しからずご了承下さい。

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/161784/16272156

この記事へのトラックバック一覧です: 【ココログ】過去記事をN件ずつさかのぼって表示するスクリプト:

» 過去記事を遡って表示する トラックバック ★節約ごはん★
★節約ごはん★のTOPページは、表紙ページとして編集した記事を常に表示してるので 続きを読む

受信: 2008/01/17 7:52:17

コメント

こんばんは。

うれしい、そして、待ち望んだスクリプトです。(^^♪
使わせて頂きました。
望んでいたとおりの、結果でした。

でも、ちょっと思案中です。(^_^;)

投稿 OBOCCO | 2007/08/30 2:00:48


ちょっと試用してみたんですが。。。

うちの設定だと、cocoPView.onCompleteContent記法が効かないようです。
# 私の今の設定だと、トップに目次は要らないんですよね。。。スミマセン(^^;
# onCompleteを使わないと、目次&遡り用リンクが両方でます。
一応、お知らせまで。

あと、思ったんですけど、下部に、次の目次5件を先行表示するってのはどうでしょうか?[重いだけかな]

投稿 facet | 2007/08/30 7:17:38


cocoPView.onCompleteContent=~
の行を書く位置がおかしかったりしません?
まだ cocoPView.js を読込む前に書かれてるので、cocoPViewオブジェクトが定義されていないように見えます。
cocoPView用設定の箇所に移動してみてください。

あと、トップに目次を表示しない場合には、
useTopIndex=false;
に変更してみてください。

| 下部に、次の目次5件を先行表示する
ちょっと動作が重くなるかなぁ……先行読込みすることになるんで、次の表示までは逆に軽くなるかもですが。
#あと、その目次のリンクをクリックされたときにどう動くかが難しいかも……いや、リンクにしなければいいんですけど(笑)

投稿 風柳>facet さん | 2007/08/30 8:46:04


できました~。寝ぼけてたようでスミマセン(^^;

先行表示の件は、確かにクリックしたときの挙動が難しいですね。
まあ、たんなる「固定リンク」でいい気もしますが。
というか、先行表示自体がやっぱりあまり意味ないかも(^^;
軽く流してくださいませ~

投稿 facet | 2007/08/31 2:44:09


こんばんわ。
いつも参考にさせていただいています。
<< back | top | next >> だけをつけたい場合はどのようにしたらいいですか??

投稿 tomo☆ | 2007/09/09 22:27:54


tomo☆ さん、どうもです。

設置用スクリプトの中の、
    useIndex            =   true ;              //  ページ内目次表示
という行の true となっているところを false に変えると、目次なしでナビだけが表示されるようになる……と思います。お試しください。
#あまりテストしていないので、うまくいかなかったらお知らせ下さい。

投稿 風柳>tomo☆ さん | 2007/09/11 1:44:53


ありがとうございました!
できました♪

投稿 tomo☆ | 2007/09/11 19:05:22


はじめまして、今晩は。
Script、有り難くお借りします。
チャンと設置出来るかどうか不安ですが(^^;)

投稿 Tosi | 2008/05/20 21:07:47


コメントを書く