EUCでの人気記事ランキング

2006/10/20 追記
当ブログはUTF-8に移行したため、Project MultiBurst:人気記事ランキングを設置(再び) へ移行しました。
-----------------------------

「人気記事ランキング」というのを前々からやってみたかったんですが、
やっと実現しました(^^;)

参考URL:
philosophical: 人気ページ一覧/リンク元一覧表示機能 Version0.3
MTで人気記事ランキングを。(CROSSBREED クロスブリード!)

CROSSBREEDさんのページのページのやり方をまず参考にしてやってみたんですが、
まず、「MTMostVisitedプラグイン」がどう探してもなくなっている(^^;)
まぁ、以前に落としてものを使ってやってみたんですが、うまくいかない。。。

私のブログでは、エントリーのファイルネームを「年/月/日/時間.php」としているなどなどあり、上記のプラグインがうまく動かなかったんです。

それで見つけたのが、philosophicalさんのページでのやり方。

うまく設置して、成功か?と思われたが、
実はこのスクリプトは「UTF-8」の文字コードでしか吐かない模様(ToT)

私のこのサイト、文字コードがEUCなんです。。。

いちをUTF-8意外の文字コードも対応しているようですが、
IFLAMEを使うのでレイアウトやスタイルでいろいろめんどくさかったです

いろいろ考えた結果、「UTF-8をEUC-JPに変換したらいいんじゃない?」
という安直な考えが浮かびました(^^;)


ということで、実際に設置した手順を説明します。

まず断っておきますが、
この方法はサーバーで「cron」が使える、と言うことが前提です(^^;)

まず、philosophicalさんのページで、
「philosophical: 人気ページ一覧/リンク元一覧表示機能 Version0.3」
ダウンロードします。

「人気ページ一覧/リンク元一覧」そのものの詳細な設置方法は、
解凍した中のREADMEを参照してください。

ダウンロードした中の「cgi」フォルダにある、拡張子が「.cgi」のモノの中の、
文字コード指定を変更します。
(必要なモノだけでいいと思いますが。。。)


# *** HTML を出力する JavaScript 文を返します ***
#######################################
## print "Content-type: text/javascript; charset=UTF-8\n\n";
print "Content-type: text/javascript; charset=EUC-JP\n\n";
$s = &get_statistics;
$s =~ s/'/\\'/g;
print "document.write('$s');";
exit(0);

次に、サーバーの「cron」に以下のように設定します。

cd /home/(パス)/popular-ranking

./update_statistics.cgi
cat /home/(パス)/popular-ranking/data/statistics
| /usr/bin/nkf -e > /home/(パス)/mt-cgi/statistics.php

↑要は、UTF-8で出力されたランキングリストをEUC-JPに変換しているだけです(^^;)


「ref.pl」は内容に従って変更してください。

そして、以下の文を統計が取りたいテンプレートの参照ページランキングを表示したい場所に貼り付けます。

<script type="text/javascript" src=
"http://{CGIを設置したサイト}/refer.js"></script>
<script type="text/javascript">
refer("{CGIを設置したサイト}/cgi-bin/refer_s.cgi");</script>

そして、ランキングを表示したい部分に、

<!-- 人気ページランキングモジュール ここから -->
<? include("/home/(パス)/statistics.php"); ?>
<!-- 人気ページランキングモジュール ここまで -->

と貼り付けます。

私のブログはPHP化しているので、
上記のようなサーバーサイドでのインクルードができますが、
PHP化していない場合は、

cd /home/(パス)/popular-ranking

./update_statistics.cgi
cat /home/(パス)/popular-ranking/data/statistics
| /usr/bin/nkf -e > /home/(パス)/mt-cgi/statistics.html

として、ページに読み込んでもいいかもしれません。

↓こんな感じにできあがり。
rannkingunozu.jpg