MovableTypeでtDiary風「本日のリンク元」をやる
本日のリンク元 | 198 | 2 | 1 | 1 | 1 |
リンク元
10 http://www.hoge.tld
6 http://www.hoge.tld
2 http://www.hoge.tld
1 http://www.hoge.tld
が実現するCGIがOnigawara Research Instituteさんで公開されております。 以前から使いたい使いたいと思っていたまま放置しちゃってて、なんともはやだけど今回腰を上げて導入しました。
導入は本当に簡単で、ReadMeを読めばオッケーオッケーなんです。 でも一応自分の為に備忘録。 私はJavaScriptで動かします。
01、Jcode.pmがインストールされているか確認
02、ダウンロードしたファイルを展開する。
03、ref_read.cgiとref_write.cgiを開いてPerlパスを変更する。
04、ref_read.cgiは、
$MODE= 'javascript';
$LOGDIR = 'ログファイルを入れるディレクトリーをスラッシュ止めしないでドライブ名から絶対パスで入れる';
05、ref_write.cgiは
$MODE = 'javascript';
$LOGDIR = 'ログファイルを入れるディレクトリーをスラッシュ止めしないでドライブ名から絶対パスで入れる'; ←ref_read.cgiと同じに
$EXCLUDE_URL = 'padmacolors\.org'; ←www\.は入れない方が良いと思う。 ちなみに正規表現だからメタ文字はエスケープすべし
06、両ファイルをサーバーにアップロードする。 ここではref_cgiというディレクトリーを作成し、そこにアップロードした(サーバーからのパスは/ref_cgi)
07、サーバー上にログを入れるディレクトリーを作成する。 LOGDIRで設定したパスと違わないように。 もし違うとログファイルが作成されないので注意。 結果が反映されなかったらここの設定を参照されたい。 少なくともLOGDIRのパスは絶対パス(私の場合はC:\home\hoge\hoge)にした方が良いと思う。
08、MovableTypeにログインし、テンプレートでメインページを開く。 ここがReadMeとは違うのですが、私の場合、トップページにはトップページそのものの「本日のリンク元」を置きたかったので、デフォルト設定の
<MTEntries lastn="1">
<script type="text/javascript">
document.write('<script type="text/javascript" src="./ref?_write.cgi?');
document.write('<$MTEntryID$>+' + document.referrer + '"> </scr' + 'ipt>');
</script>
</MTEntries>
今日のリンク元 [<script type="text/javascript" src="./ref_read.cgi?<$MTEntryID$>+COUNT"></script>]
を修正して
<script type="text/javascript">
document.write('<script type="text/javascript" src="/ref_cgi/ref_write.cgi?');
document.write('00000+' + document.referrer + '"> </scr' + 'ipt>');
</script>
今日のリンク元 [<script type="text/javascript" src="/ref_cgi/ref_read.cgi?00000+COUNT"></script>]
という風に予め「00000」という勝手なエントリーIDをトップページ用に割り当てました。 これであればMTEntry内に入れなければならないという柵から開放されます。
09、テンプレートの個別エントリーアーカイブを開く。
<script type="text/javascript">
document.write('<script type="text/javascript" src="../ref?_write.cgi?');
document.write('<$MTEntryID$>+' + document.referrer + '"> </scr' + 'ipt>');
</script>
Accessed from following URLs...<BR>
<UL>
<script type="text/javascript" src="../ref_read.cgi?<$MTEntryID$>+LIST"></script>
</UL>
このデフォルトの設定と殆ど同じ感じにしました。
<script type="text/javascript">
document.write('<script type="text/javascript" src="<$MTBlogURL$>ref_cgi/ref_write.cgi?');
document.write('<$MTEntryID$>+' + document.referrer + '"> </scr' + 'ipt>');
</script>
Accessed from following URLs...<br />
<ul>
<script type="text/javascript" src="<$MTBlogURL$>ref_cgi/ref_read.cgi?<$MTEntryID$>+LIST"></script>
</ul>




