このサイトについて

BlogのRefererを表示してみる

BlogのRefererを表示してみる

エントリに紐付いた情報を保存/表示する時,たとえばRDBMSがバックエンドにある場合は,エントリのIDにリレーションするテーブルなりなんなりを作って,そこにデータを保存,表示する,という方法が一般的でしょう。

Zopeはオブジェクトデータベースを持っているので,エントリのオブジェクト自体にメタデータをあとでくっつけてしまうことができます。ただ,そういう方法を使ってしまうと,オブジェクトが「汚く」なってしまうし,テンプレート上で例外が増えたりして,パフォーマンス的な見積もりもしづらくなる。

一方,エントリに紐付いたデータを外部に保存することもできます。たとえば別のProductを作って,なんらかの情報をもとにエントリと紐付けを保てばよい。COREBlogの各エントリは,IOBTreeというオブジェクトに保存されています。エントリごとに固有のID番号(Permalinkに出てくる数字)を持っていて,この情報は紐付けに利用できます。

ということで,BlogへのReferer情報を保存するためのZope Productをササッと作ってみました。スキンのDTMLを書き換えて,Blogが外部リンクから参照されると,Referer情報を表示するようになっています。また,Blog内の参照は表示しても仕方がないので,除外するURLを設定できるようになっています。

しばらくテストをして,運用上問題ないようならそのうち公開する予定です。

2010-08-27 04:25