Home > Archives > 2004-06

2004-06

CPEntriesプラグイン

  • 2004-06-08 (火)

サイドバーに「最近のトラックバックとコメント」のようなものを表示するときにエントリをコメントかトラックバックの最新順に並べる方法はありません。

というわけでプラグインを作ってしまいました。
SimpleCommentプラグインと組み合わせると幸せになれます。

VERSION HISTORY

  • 2004/08/02 0.9.3 トラックバックの日付ソートを MT::Trackback の日付ではなく MT::TBPing で行うよう変更。
  • 2004/07/17 0.9.2 ソートする項目を modified_on から created_on に変更。
  • 2004/07/08 0.9.1 複数blogをひとつのMTで管理している場合、他のblogのエントリも表示してしまう不都合を修正。
  • 2004/06/08 0.9.0 公開

sakurabeyaBLOG SimpleComment
SimpleCommentを使ったコメントとTrackBackを混ぜて登録順に、Individual Entry Archiveなどに表示する方法と、それを使用した追記部分のカスタマイズ方法です。

yujilog: 最近のコメントとトラックバック(リンク切れ)
コメントもトラックバックもその記事に言及している、という点では同じものではないかという観点でコメントとトラックバック表示の統合を行うことにしました。

Continue reading

サイドバーのリンク表示。

  • 2004-06-03 (木)

自分の友達やご近所のblogへのリンクと更新日時・タイトル等をサイドバーに表示しようと思っていて、MyBlogListBlogPeopleを試していたのですが記事更新通知型となるのでblogクリエータが登録していないとあまり意味のないものになってしまうと感じていました。また mt-rssfeed も試しましたが自分が思っているところとは違かったので。。

そこで、’RNA‘ というRSSベースのアンテナを利用してリンク先の RSS を取得して自サーバで表示することにしました。幸いにも yujilog のサーバには cron を実行できる環境がありますのでこれで自動更新を行います。

rna - RSSベースのアンテナ「RNA」
RNA は、Webサーバ上で動作する、RSSアグリゲータの一種です。 Perl/CGI で実装されています。 Web上のいろいろなサイトの更新情報を収集するアンテナとしての機能が主ですが、FOAF技術を用いた、コミュニティ(もしくは知人)ベースの連携機能も有しています。

<!--more-->

rnaのインストール

RNA説明書1.9 - RNA1.9のインストール・設定・カスタマイズにしたがってインストール・設定を行っていきます。

まずダウンロードします。ダウンロードした ‘rna1.x.x.tgz‘(x にはバージョンが入ります) を適切な場所(WWWで見れる場所、MovableTypeのLocal Site Pathがおすすめ)に展開します。

tar xzf rna1.x.x.tgz

rna1.x.x というディレクトリ以下に展開されるはずです。このディレクトリ名を rna に変更します。

mv rna1.x.x rna

次に ‘rna/config.pl‘ の変更。変更箇所は二箇所です。ご自分の環境に合わせて設定していきます。

my $antenna_owner = ''yu-ji'';  # ← あなたのお名前
my $base_uri = ''http://factage.com/yu-ji/rna/'';  # ← RNAを設置するディレクトリのURI

ディレクトリ・ファイルのパーミッション設定を行います。ローカルで展開してFTPなどでアップロードしていない場合は一部のディレクトリ・ファイルはすでに適切なパーミッション設定になっているかもしれません。

$ chmod -R 777 rss/ cache/
$ chmod 755 *.cgi
$ chmod 666 *.html *.rdf *.xml
$ chmod 666 .rna*
$ chmod 666 rss/clip.*

初期化プログラム(’rna-load.cgi‘)をブラウザかもしくはコマンドライン上で実行します。

http://factage.com/yu-ji/rna/rna-load.cgi

このような流れでインストールは完了です。あとはWebからの設定

ユーザの追加と削除

ユーザIDとパスワードを変更する必要があるかと思います。まずユーザID ‘anonymous‘ でログインします。パスワードは’無し‘です。

http://factage.com/yu-ji/rna/rna-auth.cgi?transfer=rna%2dconf%2ecgi%3f

http://factage.com/yu-ji/wp-content/rna-for-sidebar_01.jpg

ログインすると ‘RNA::Site Config‘ の画面になります。画面下部の ‘Authentication‘ で任意のユーザ名の新しいユーザを追加します。User Name と Password を入力したら ‘Add‘ ボタンを押下します。

http://factage.com/yu-ji/wp-content/rna-for-sidebar_02.jpg

anonymous ユーザを残しておくと誰でもログインができてしまいますので、削除します。

http://factage.com/yu-ji/wp-content/rna-for-sidebar_03.jpg

以上で初期設定は完了。あとはさきほど追加したユーザでログインしてサイトをどんどん追加してください。

MovableType向けのテンプレートの編集

MovableTypeでサイドバーに表示する RNA のテンプレートを変更します。標準で用意されているテンプレート(js_default_template)を編集しても良いですが、ここでは新たにテンプレートを作成します。RNA を展開したディレクトリの下に ‘template‘ というディレクトリがありますので、この下に任意の名前のテンプレートファイルを作成します。ここでは ‘movabletype_template‘ とします。

ファイル名の例

..../yu-ji/rna/template/movabletype_template

今回はMovableTypeのサイドバーに表示するリンクとするのでシンプルな表示を想定します。

// 表示例

------------------
リンク
------------------
06/02 friend1
06/01 friend2
------------------
// 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等に埋め込むことにより自動更新が行われるかと思います。更新自体はたぶんバックグラウンドで行われるのでサイトを見て回る待ち時間は発生しないかと思います。

とりあえずメモ程度に書きました。かなり適当な事書いてますので問題があればコメントください。お待ちしてます。

Home > Archives > 2004-06

アーカイブ
  • 2008年
    01 02 03 04 05 06
    07 08 09 10 11 12
  • 2006年
    01 02 03 04 05 06
    07 08 09 10 11 12
  • 2005年
    01 02 03 04 05 06
    07 08 09 10 11 12
  • 2004年
    01 02 03 04 05 06
    07 08 09 10 11 12
タグクラウド
Spam Blocked

Return to page top