Exception Diary
2006.05.20 [Sat]
_ Image-Gallery用プラグイン
この日記のサイドバーに「今月の画像」というリンクがあるのにお気づきだろうか。これは、実はプラグインで表示させている。コードはこんな感じ。
def gallerylink() date = (@mode == "latest") ? Time.now : @date year = date.year month = date.month months = (month < 10) ? "0" + month.to_s : month.to_s if year == Time.now.year && month == Time.now.month message = "今月の画像" else message = "この月の画像" end pagetitle = CGI::escape("@year年@month月の画像") %Q[<a href="./image-gallery.rb?name=#{year.to_s}#{months};showinputfield=false; order=desc;pagetitle=#{pagetitle}">#{message}</a>\n] end
image-gallery.rbのパラメータ'name'はファイル名に対するフィルタで、ここに正規表現を指定すると、マッチしたファイル名の画像だけを選んで表示するようになっている。image.rbで貼り付けた画像は、yyyymmdd_x.[拡張子]というファイル名になるから、例えば今月の画像だけを表示したければ"name=200605"とすればよい。
上のプラグインはこの仕組みを使っていて、"最新"の日記を表示しているなら「今月の画像」、過去の日記なら「この月の画像」を選んで表示するための'name'パラメータを生成して、image-gallery.rbへのリンクを作っている。
image-gallery.rbのパラメータには、これ以外にも、'subtitle'(画像を貼った日記のサブタイトルに働くフィルタ)、'title'(画像のタイトルに働くフィルタ)の二つをフィルタとして指定することができる。ちょっとした写真集を作るのに便利に使えると思う。