サイドバーのリンク表示。
</pre>
// movabletype_templateの内容 <rnaitems lastn="5"> < $RNAItemDate format="%m/%d"$> <a href="http://<$RNAItemLink$>" title="< $RNAItemTitle$>n(更新日時:< $RNAItemDate format="%Y/%m/%d %H:%M"$>)"> < $RNAItemCreator$></a><br /> </rnaitems> <br /> <b>Powered by <a href="http://www.semblog.org">Semblog/RNA</a> <a href="http:///yu-ji/rna">@</a></b>
MovableTypeのサイドバーに表示を行うために、MovableTypeのテンプレートの編集を行います。rna.cgi の ‘encoding’ はご自分の環境に合わせて設定してください。また、’template’ の指定を上記で設定したテンプレートファイルの名前にあわせます。ここでは ‘movabletype_template’ とします。
<div class="sidetitle"> リンク </div> <div class="side"> <script type="text/javascript" src="http://factage.com/yu-ji/rna/rna.cgi/javascript ?encoding=EUC-JP &target=RecentSiteList &template=http://factage.com/yu-ji/rna/template/movabletype_template"></script> <br /><br /> </div>
以上でMovableTypeのサイドバーに表示されるはずです。
アンテナの自動更新
ここまででサイドバーには表示はできますが、自動では更新は行われません。リンクへ登録したblogクリエータが RNA へ更新通知を行うことで更新はされます。ここでは自力で自動更新を行うための設定を行います。
自動更新を行う方法は2つあるかと思います。
- cronによる自動更新
- PHPによる更新(!)
- (ブラウザからの要求をうけると毎回 RNA のアンテナ情報XMLの日付をチェックしてある一定の時間が経過していたらバックグラウンドで更新させるというもの)
1,cronによる自動更新
とりあえず cron による自動更新を行いましょう。うちのサーバは全部Webから設定できてしまうので、cron を使用するためのファイルやコマンドは割愛します。というか忘れてしまいました。。
まず、RNA の rna.cgi を実行するためのシェルスクリプトを準備します。わりに適当です。ここでは ‘rna-reload.sh’ というファイルにします。パーミッションは ‘755’ とします。
#!/bin/sh cd ..../yu-ji/rna ./rna.cgi
つぎに cron に上記シェルスクリプトを実行するように設定します。
0 */6 * * * ..../rna-reload.sh > /dev/null
基本的には RNA を展開したディレクトリの下の ‘rna.cgi’ を実行するだけで自動更新は行われます。ここでは’6時間毎に‘実行するよう設定しています。随時書き換えてください。
2,PHPによる自動更新
PHPによる更新は実際設定は行っていませんが、論理的には可能だと思います。前提はPHPが使えるサーバであることと、MovableTypeの各ページの拡張子を php として出力していることです。
スクリプトは以下のようになると思います。実行していないので自身はないです。。。
< ? $nowtime = time(); $recenttime = filemtime("..../yu-ji/rna/rss/recent_site.rdf"); $expire = 60 * 60 * 6; // 6時間に期限を設定 // 期限が切れているかチェック if($nowtime - $recenttime > $expire){ // http呼び出しを行う。 file("http://factage.com/yu-ji/rna/rna.cgi"); } ?>
上記のスクリプトをサイドバーのPHP等に埋め込むことにより自動更新が行われるかと思います。更新自体はたぶんバックグラウンドで行われるのでサイトを見て回る待ち時間は発生しないかと思います。
とりあえずメモ程度に書きました。かなり適当な事書いてますので問題があればコメントください。お待ちしてます。