HikiのPluginで遊ぶ(3)
recent2.rbを改造してみた
やってみたかったのは、この部分だけ色を変えてみるとか、何分前、何時間前、何日前とか日本語にしてみたいとかです。とりあえず、日本語を使おうとすると、多言語対応にしなくちゃいけないとか、めんどくさそうだなと感じたのだが、やってみると至って簡単。というわけで、下記のように改造しました。
recent2.rb
# $Id: recent2.rb,v 1.3 2004-12-14 16:12:33 fdiary Exp $ # Copyright (C) 2003 not <not@cds.ne.jp> def recent2( n = 20 ) n = n > 0 ? n : 0 now = Time::now l = @db.page_info.sort do |a, b| b[b.keys[0]][:last_modified] <=> a[a.keys[0]][:last_modified] end s = "<ul class=\"saikin\">\n<li><strong>#{@s_label}#{(n).to_i}#{@k_label}</strong><ul>\n" l[0..n-1].each do |a| name = a.keys[0] p = a[name] tm = p[:last_modified ] tp = now - tm if tp < 3600 then ps = "#{(tp / 60).to_i}#{@m_label}" elsif tp < 86400 then ps = "#{(tp / 3600).to_i}#{@h_label}" else ps = "#{(tp / 86400).to_i}#{@d_label}" end cur_date = tm.strftime( @conf.msg_date_format ) t = page_name(name) an = hiki_anchor(name.escape, t) s << "<li title=\"#{cur_date}\">#{an} <span class=\"recent2\">(#{ps})</span></li>\n" end s << "</ul></li>\n</ul>\n" s end
ja/ に変数に置き換えたところの設定を作る。
ja/recent2.rb
@m_label = '分前' @h_label = '時間前' @d_label = '日前' @s_label = '最近の更新(' @k_label = '件)'
同様に、en/ にも
en/recent2.rb
@m_label = 'm' @h_label = 'h' @d_label = 'd' @s_label = 'New(' @k_label = ')'
あとは、cssの追加。
ul.saikin { background-color: lightcyan; color: mediumblue; }
これで、サイドバー(本日のメニュー)の最近の更新が完成。
キーワード:
参照:[本日のメニュー]