サンデープログラミングで、右サイドバーに表示する「人気記事Top10(最新24時間)」を表示するためのPerlのCGIプログラムを自作してみました。
ローカル環境でテストしながら開発すればよかったのですが、ローカルでは編集のみ行なって、サーバにアップロードして実機テストをしていたので、けっこう時間が掛かってしまいました。
アクセスランキングについては、フリーで出回っているパーツもあるのですが、広告が出されてしまうのと、細かなカスタマイズができないので、自分で作ってみた次第です。
MovableTypeで運用されているブログであれば、どこでも簡単に設置して動くと思います。
アクセス管理のためにデータベースは使っていませんし、ちょっとPerlを知っていれば、改良も容易でしょう。
とりあえず、私が使いたいレベルにはなったので、ご参考までに、公開と解説をしておきます。
■記事ページごとのアクセス記録
エントリーアーカイブに、次の行を追記しています。これにより、どの記事にアクセスがあったかの記録を取ります。データベースは使わずに、1時間ごとにファイルに記録して、hourが変わるたびに対象のファイルを削除することで、最新24時間(厳密には平均23.5時間)の記録を取っています。最後にはマージとソートを行なって、トップ10一覧を作成しています。
<script src="http://www.woodnote.org/cgi-bin/popular/record.cgi?ei=<$MTEntryID$>&eu=<$MTEntryLink$>&et=<$MTEntryTitle encode_url="1" $>" type="text/javascript"></script>これを受けるCGIは、こちらです。(名前をつけて保存してください。)
■右サイドバーにおける人気記事Top10(最新24時間)」表示
右サイドバーに、次の行を追記しています。ファイルから読んでhtmlのtable形式にしているだけです。
>div align="center"<>script language="JavaScript" src="http://www.woodnote.org/cgi-bin/popular/print.cgi" charset="utf-8"<>/script<>/div<これを受けるCGIは、こちらです。(名前をつけて保存してください。)
なお、フリーにて公開していますが、もし、これらを参考にして何かを作った場合、本記事のURLをブログでご紹介していただけると幸いです。
あまり凝る気はありませんが、コメントをいただけたら、コメントの追記や機能追加などの改良を行なうかも知れません。
なお、当ブログのアクセス数は300~400/日なので、同時実行などの排他制御設計は特に行なっていません。
■2008/8/12 追記
アクセスカウンタ(通算、直近24時間)の機能を追加しました。
アクセスカウンタの画像ファイルは、WEBサイト利用フリーの画像ダウンロード【CXMedia】のものを利用させていただいています。
コメント