ブログページのインデックスに「人気記事」つけてみました。
私のMovableTypeはスタティックに動作させているので、結構難儀であった。
手順はざっとこんな感じ
まずはApacheのログ抽出から
PerlでApacheのログを抽出するプログラムを作成。大変だったのはロボットのログを外すこと。まぁ日々ロボットとの闘いなのでフィルタリングの部分は定期的に見直さないといけないんだろうけど。
で、必要なログを抽出したら、ファイル名からEntryIDを抜き出して、日付とともにMySQLに入れておく。このPerlは毎日深夜12:00過ぎに前の日の処理を行うように設定。Logrotateを考慮し、毎回ひとつ前のログと現在のログをくっつけて抽出するようにしておく。
インクルード用のPHPをつくる
んで、今度はMTから呼び出すためのインクルード用のPHPプログラム。まぁデータベースから1週間分の履歴をカウントし、EntryIDからMTのテーブルを参照し、タイトルとパスを得て、リストで返す仕組み。
あとはテンプレートにインクルード
ウィジットにPHPをインクルードするように記述して、MTの設定もSSI可能に設定しておく。それと、HTMLでもPHPが動作できるように、.htaccessを修正して再構築で完了。
コメントする