« とりあえず戻って来たけれど…… | トップページ | 【不具合報告】ページングスクリプトがWinXP+SP2で動かない »

2006/07/23

【ココログ】バックナンバーに応じたカレンダーを表示するスクリプト&過去月カレンダー作成フォーム

■お知らせ
2008/1/21に新版カレンダースクリプトである『ココログカレンダーPlus』の公開を行いました。
よろしければそちらもお試しください。

■関連記事 [2006.09.08更新]

  1. 【ココログ】カレンダースクリプト関連の更新
  2. カレンダースクリプトの小技その1:整形が終わるまで隠しておく
  3. カレンダースクリプトの小技その2:日曜は赤色・土曜は青色にする
  4. カレンダースクリプトの小技その3:月毎に背景画像を設定
  5. 【ココログ】ラインカレンダーの設置
  6. カレンダースクリプトの小技その4:本日と祝日の表示を変える
  7. カレンダースクリプト:当月バックナンバーへのリンク追加
  8. カレンダースクリプト:カレンダーのみの表示切替


個別・月別バックナンバーを表示したときに、その月に応じたカレンダーを表示する『LONGER THAN FOREVER』さんのカスタマイズカレンダーに対して、動作が軽くなるように改造を試みてみました。

といっても、カレンダーHTML作成用処理については、ほぼそのまま使わせていただいています。
では何が違うのかというと、バックナンバー用カレンダーを予め作成しておくことができ、これを読み込むことによって比較的素早くカレンダーの表示が出来る、という点です。

バックナンバー用カレンダーが用意されていない場合には、月別アーカイブより情報を読み取る必要が有るため、表示にはオリジナルと同程度の時間がかかります。

ネックはバックナンバー用カレンダーを自分で用意しなければいけない、ということですが、この作業を軽減するための作成フォームも用意してみました。

さすがに自動更新までは私には無理ですが、月初めに一回、作成フォームで前月までのカレンダーを作るだけですので、まぁ許容範囲なのではないでしょうか。

【スクリプトの設置方法】

ココログ標準のカレンダーを表示するようにした状態で、そのカレンダーよりも下(後で表示されるところ)で、かつメモタイプのマイリスト等のHTMLを貼付けることができるところに、以下のHTMLソースを貼り付けて保存します。
[2006.08.12]設置用スクリプトを修正(祝日対応他)。
[2006.08.16]calendarOnload内を若干手直し(Opera対策:ただし動作未確認)。
[2006.08.18]addLinkToCaptionオプション追加。
[2006.09.08]changeCalendarOnlyオプション追加。

<!--【JavaScript版カレンダー】 -->
<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/dayChecker.js"></script>
<script type="text/javascript" >
<!--
// === [オプション設定]
var calendarType ='J' ; // J:日本語 E:英語
var dateArchive = false ; // 日別アーカイブ有りの場合のみtrue設定可(日別ページへのリンクになる)
var addLinkToCaption = true; // キャプションに当月バックナンバーへのリンク追加
var changeCalendarOnly = false; // カレンダ切替方式: true=カレンダのみ切替 false=バックナンバー読み込み
var calendarOnload = function( calendarObj ) {
    if ( navigator.userAgent.match( /Opera/i ) ) {
        var divs = document.getElementsByTagName('div') ;
        for ( var ci=0; ci < divs.length; ci++ ) {
            if ( divs[ci].className == 'sidebar' ) {
                divs[ci].style.display = 'block' ;
            }
        }
    }
    else {
        calendarCssAddRule( ".sidebar", "display:block" ) ;
    }
}
//-->
</script>
<noscript>
<style type="text/css">
<!--
.sidebar {
display:block;
}
-->
</style>
</noscript>
<script type="text/javascript" src="https://furyu.tea-nifty.com/script/cocoCalendar.js"></script>
<script type="text/javascript" >
<!--
// === [カスタマイズカレンダー呼出]
checkCreateCalendar();
//-->
</script>
まず、この状態でブログを表示し、正常に動作しているかどうかを確認して下さい。
正常ならば、カレンダーに前後月に移動できるナビがつき、また個別・月別バックナンバーを開くとそれに応じたカレンダーに切り替わるはずです。
この時点で動作しない場合は、残念ながら使用を諦めて下さい

【バックナンバー用カレンダー作成フォーム設置方法と使い方】(表示サンプル)

  1. ここからZIPファイル(cocoCalendarMakerV004.zip)をダウンロードします(2006/8/2更新)。
  2. 1.のZIPファイルを解凍して出てくる二つのファイル(cocoCalendarMaker.htmlとcocoCalendarMakerSend.html)を、ココログのファイルマネージャで自分のブログのフォルダにアップロードします。
    このとき、ブログのホームURLが http://~/blog/ の場合、『ホーム / blog / 』にアップロードします(赤字部分がブログに応じて変わります)。
  3. アップロードしたファイルのうち、cocoCalendarMaker.htmlの方を開きます。
    URLは上記の例だとhttp://~/blog/cocoCalendarMaker.htmlになります。
  4. 必要事項を入力・確認して、[作成開始]ボタンを押します。
    アカウント名とパスワード以外は自動取得するように試みていますが、取得されない場合は手動で入力して下さい。
これで、前月までのバックナンバー用カレンダーが作成されるはずです。
上記の例だと、『ホーム / blog / calendar / 』に作られます。

■注意点

  1. 作成フォームにも注意書きがありますように、パスワードは暗号化されずにそのまま(平文)で扱われてしまうため、セキュリティには充分ご注意下さい
    なお、ファイルのアップロードにはXML-RPC APIを使用していますが、これは自前サーバ上のCGIにより実現しています。即ちフォームに入力した情報は一旦自前サーバを経由してココログに送られる、ということです。
    この面からも、上記フォームを使用する前にパスワードを一時的に変更し、カレンダーの作成が完了したらパスワードを元に戻す(または新規パスワードを設定する)、という運用が安全です(もちろん、当方がパスワードを含むこれらの情報をカレンダ作成以外に使用することはありません)。
  2. 自前サーバ上のCGIをコールするため、これが不調の場合等は使用できません。また、当方の都合により、予告なくサービスを停止する場合があります。
    本当は@homepage上に設置したいところですが、XMLRPC::Lite等の導入が面倒で……。
  3. 作成するのは前月分までです。現在の月のカレンダーは作成しません。
    現在の月に関しては、標準のカレンダーに対して、スクリプト側で前後月へのナビだけを追加します。
  4. 記事が存在しない月に関しては、カレンダーは作成されません(スキップされます)。
  5. 既にバックナンバー用カレンダーが存在する月については、作成(上書き)は行いません。
    上書き更新は技術的に困難なこともあってこの仕様となっています(XML-RPC APIにはファイルのアップロードはあっても削除の機能がありません。また、アップロードも同名のファイルを指定すると勝手にリネームされてしまいます)。
  6. バックナンバー用カレンダーの内容(記事へのリンクなど)は作成時点のものに基づきます。従って、過去に遡って記事を追加・削除した場合等は、カレンダーを作成し直す必要が有ります。
    この場合、既存のカレンダーの対象月のファイルを一度削除した上で、作成フォームにて作成し直してください。

※『続き』部分に更新履歴を記載しています。


カレンダー

【2006.09.08】

  • <<・>>クリック時、バックナンバーを読み込まずにカレンダーのみ切替えるオプション(changeCalendarOnly)追加。

【2006.08.18】

  • キャプション部に当月バックナンバーへのリンクを付けるオプション(addLinkToCaption)追加。

【2006.08.16】

  • 最初にサイドバーを非表示にしていた場合、Operaでは消えたままになることがあったのを修正。

【2006.08.12】

【2006.08.11】

【2006.08.10】

  • スクリプトにて、CSSでカスタマイズ可能なように、いくつかのタグに class を設定。
    2006.08.12に関連記事アップ(小技その1その2その3

【2006.08.02】

  • バックナンバー作成フォームにて、カレンダーHTMLを手動で取得できるよう修正(V004)。
    風柳亭の自宅サーバが故障していると自動アップロードができないため。
  • スクリプトにて、月が変わって記事が一つも無いような場合に、前月のカレンダーが表示されているにも関らず、見出し(caption)だけが当月のカレンダーとなってしまう不具合があったものを修正。

【2006.07.26】

  • バックナンバー作成フォームにて、ココログアカウント名の自動取得を取り止め(V003)。
    ドメイン名と違う場合にうまく取得できないため。
  • バックナンバー作成フォームにて、ファイルマネージャでカレンダーファイルを削除してあっても、ブラウザ等のキャッシュに残っていた場合は存在するものとして誤動作することがあったのを改善(V003)。
    AIR-EDGEのMEGAPLUSで現象発生。

【2006.07.23】

  • WindowsXP SP2上のIE6だとうまく動作しないため、バックナンバー作成フォーム(ZIPファイル)を差替(V002)。
    でもこれだと逆にSP1で、ファイルが無いときに応答が返らないのだよな……
  • スクリプトにdateArchiveオプション追加。true にすることでカレンダーの日付が日別ページへのリンクになる。
    管理画面の『管理ページトップ > ブログ一覧 > (対象ブログ名) > 設定 > バックナンバー設定』で、日別バックナンバー有りの場合にのみ有効(チェックが入っていて反映されていること)。それ以外の場合、trueにすると誤動作するので注意。

« とりあえず戻って来たけれど…… | トップページ | 【不具合報告】ページングスクリプトがWinXP+SP2で動かない »

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

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

覚書」カテゴリの記事

コメント

こんばんは。バッグスです。
カレンダーを試してみました。時間帯的に、まだ見に来られる方がある時間なので、別ブログにて試しました。実はテスト用に秘密の?ブログを同じベーシックで持っているので、そちらで設置してみました。こちらに書かれているとおり、まずはスクリプトを入れて試し、うまく行ったので、ファイルをダウンロードして実際にカレンダー作成をいたしました。
不具合もなく作成も完了し、カレンダーの表示も問題ないのですが、一つだけ疑問が。
作成されているはずのカレンダーフォルダとファイルが見つからないのです???いったいどこに行ってしまったのでしょう。

あとで、本ブログでも試してみようと思っています。今ご出張中でしょうから、フォルダが作られなかったら一度はずしておきますので、またブロードバンド環境に戻られたときにお返事いただくのでかまいませんから、どうぞごゆっくり。

さきほど、通常のブログのほうにも設置しました。
アップロードしたカレンダー作成htmlでブログ作成のボタンをクリックすると正常にカレンダーファイルが作成されているような進行状況なんですが、どういうわけか、blogフォルダ内にcalendarフォルダが作成されません。何か間違っているのかなあ??

でも、こちらのカレンダーだとjavascriptを切っている方でも通常のカレンダーは表示されるのでそのまま設置しておくことにいたしました。

あともう一つ、細かいことですが、カレンダーキャプションの文字をCSSで指定しても、小さな文字になってしまうのですが、スクリプトのほうで文字の大きさを指定されてますでしょうか?

ともかくも、現状でも不具合はありませんので、お返事はごゆっくりお願いいたします。ご出張お気をつけて。

何度もすみません。
文字の大きさはこちらの勘違いでした。CSSファイルの訂正すべきところを間違っていたという・・・ごめんなさい、無視してください。

バッグスさん、さっそくのお試し有り難うございます。

ですが……あれ~、作成されていないっぽい……。
多分、作成の画面の一番下の窓に、[Complete]とだけ表示されていたのではないでしょうか。
正常に作成された場合、そのカレンダファイルのURLが一緒に表示されるはずなんですよね……。

作成に失敗した場合に[Error]と表示するように(サーバ側で)修正してみましたので、お手数ですがもう一度ご確認いただけると幸いです。
#正常に作成できなくても作成完了と出てしまうのが問題なんですが(^^;、これはJavaScript側の制約でなんともできず……

自動取得されているココログアカウントやブログIDなんかは間違ってませんよねぇ?おかしいなぁ……。
パスワードも、ココログ管理画面へのログインパスワードを入れられてますよね?
#うーん、なにがおかしいんだろう……いや、十中八九私の方のプログラムミスなんだと思いますけど(^^;

たびたびすみません。

もう一度やってみても NG の場合……。

もしかすると、calendar フォルダが自動で作られないのかな?という気もするので(当方の環境では問題無かったんですが)、管理画面のファイルマネージャで予め blog フォルダの下に calendar フォルダを作成しておいてから、試していただけますか?

お手数をおかけして申し訳ありません。

こんにちは。バッグスです。
結論から申しますと、残念ながらErrorと赤文字で出てしまいました。
ココログのアカウント名やID番号も確かめたり、パスワードも気をつけていれているのですが・・・
blogフォルダ内にcalendarフォルダも作りましたが同じ結果でフォルダ内にもファイルは作られていませんでした。

私のミスだったら申し訳ないです。
一応ファイル類のアップロードはblogフォルダの中にアップロードし、その中のcocoCalendarMaker.htmlを開いてカレンダー作成を行っています。
スクリプトは、以前の「LONGER THAN FOREVER」さんのスクリプトははずし、標準のカレンダーに変えて、上記の記事にあるスクリプトをそのまま右サイドの下のほうに貼り付けてあります。
気がつくことはこんなところです。

でも、前のコメントでも申しましたとおり、今の状態でも不具合はないので、どうか、検証はお帰りになってから、ゆっくりとお時間のあるときにお願いいたします。全然困っていませんので!

ベーシックでは
http://app.cocolog-nifty.com/t/api/
が無い、なんてことはないでしょうかね!
(素人考え)

バッグスさん、お手数おかけしております。

私の方だと、パスワードを変えたり、別の試験用ブログで試したりしても(プロコースなので複数持てる)問題無く作成できるので……わからないなぁ。

http://app.cocolog-nifty.com/t/api/
については、ベーシック/プラス/プロで共通のところなので、大丈夫だと思うのですが。

あ、そうだ。もし宜しければ、観測気球さん(tsupoさん)の
ここあっぷる
http://watcher.moe-nifty.com/memo/2006/03/uploadfile.html
を試していただけないでしょうか。

とりあえず
http://watcher.moe-nifty.com/memo/files/uploadFile121.lzh
をダウンロード・解凍後に、出て来た cocoUpple.exe を起動して、ユーザ名とパスワード(カレンダー作成フォームのココログアカウントとパスワードに対応)を入れて[blog 選択]を押してみてください。

これで、blog名とblog IDが表示されるようでしたら、XML-RPC(http://app.cocolog-nifty.com/t/api/)は問題無く有効で、私の方のプログラムミスということがはっきりしますので(^^;。

ちなみに、コメントは自らすすんで付けておりますので(わからないまま放っておくと却ってストレスに(笑))、どうかお気になさらず。
かえって、余計なお手間をおかけしてしまい、恐縮です。

きゃぁぁごめんなさい!
私のミスでした。ご紹介いただいたexeも固まっちゃいました。

もう一度心静かによおく考えつつ管理ページにログインしようとしたとき、なんと私のアカウント名がbugsbunnyではなくbugsであったことにやっと気がつきました。。。
本当に申し訳ありません。
全然風柳さんのミスはない証拠にファイルできました!

こんなアカウント名付けるんじゃなかった・・・名は体をあらわす。すみませんでした、ご出張中に余計なストレスをおかけして。

バグだらけのbugsより

バッグスさん、ご確認ありがとうございました。

なる程……作成フォームの、ココログアカウントの自動取得がまずかったのですね。
ページ内に埋めこまれているアクセス解析用のタグ(CCAX_ID="furyu&b183557&index";)を参照していたのですが、最初の奴はてっきりアカウント名だとばかり思っていました。これって、ドメイン名なのか……。

うーん、そうするとうまく取得できそうにないので、アカウント名に関しては自動取得を止めます。
他のちょっとした修正と併せて、ZIPファイルをアップデートしておきましたので(V003)、差替えておいてください(カレンダーを作成し直す必要はありません)。

何はともあれ、すっきりしました。ご協力感謝です。

本当にご心配おかけして申し訳ありませんでした。
さっそく新しいファイルを落として入れ替えました。いろいろと便利になってうれしいです。ありがとうございます。

風柳様
初めまして。こんにちは。
ちょっとお伺いします。小生はTypepad.jpを使っているのですが、このカレンダースクリプトを使うことはできるのでしょうか。
年始早々恐縮ですが、どうぞ宜しくお願いします。

yoichi さん、はじめまして。

カレンダースクリプトなのですが、残念ながらココログ専用となります(ココログでもテンプレートによっては適用出来ない場合が有りますが)。

yoichi さんのサイトを拝見させていただいたのですが、Typepadに対応させる、というのはちょっと簡単には出来なさそうです。
悪しからずご了承ください。

風柳様
早速のレス、ありがとうございます。
カレンダースクリプトの件、残念です。他に手立てを探してみます。ご親切にありがとうございました。

こんにちは、この前に続き、カレンダーも使わせていただきました。
今までは僕も「LONGER THAN FOREVER」さんのカレンダーを使わせていただいてたのですが、他のスクリプトとの相性が悪かったので、風柳さんのカスタム版を使わせていただくことにしました。
見事に問題が解消できました。
ホントに毎回ありがとうございます!

お役に立てたなら幸いです……といっても私はちょこちょこいじっただけなんですが(^^;)。
ほんとは、前後月への移動くらいは標準で出来てほしいのですけどね~。

こんにちわ。
バックナンバーに応じたカレンダーをやめたいときはどうすればいいですか?マイリストを削除しても変わりませんでした。

えーと、今設置されているのは当方のカレンダーじゃなくて、なおゆきさんのココログ最強カレンダーの方だと思うのですが、これを外したいということでしょうか?

その場合は、現在のテンプレートを編集 > 表示項目を選択 > サイドバー項目で、ブログパーツ欄にて、『 ココログ最強カレンダー 』のチェックを外して[変更を保存]→[反映]すればよいと思います。

コメントを書く

(ウェブ上には掲載しません)

トラックバック

» カレンダーをバージョンアップ [Bugsなうさぎの憂鬱]
ココログのカレンダーが当月しか表示してくれない、実に低機能なカレンダーなので、記事と連動して過去の分も表示してくれるカレンダーを設置した記事4/26「カスタマイズカレンダーの設置」を以前書きました。「LONGER THAN FOREVER」さんが提供してくださっているカレンダーです。 そのカレンダーを基にして風柳さんが描写を早める工夫をした更なる高機能版を作ってくださいました。 風柳亭 - 別館:... [続きを読む]

» 久しぶりにBlogをいじる。 [ICOCO.]
久々にblogをいじったー。 風柳亭 - 別館:書庫のある庵 -さんの記事を元に [続きを読む]

» 久しぶりにBlogをいじる。 [ICOCO.]
久々にblogをいじったー。 風柳亭 - 別館:書庫のある庵 -さんの記事を元に [続きを読む]

« とりあえず戻って来たけれど…… | トップページ | 【不具合報告】ページングスクリプトがWinXP+SP2で動かない »

戻るリンク追加

カレンダー

2022年4月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

ココログカレンダーPlus(旧2)

検索


    • Web全体 サイト内
    • 蔵書のISBNを入力して下さい
    • はじめる前
      初級者向け
      上級者向け
      ブログ紹介
      結果を表示

コメントリストツリー化

無料ブログはココログ