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;
}
これで、サイドバー(本日のメニュー)の最近の更新が完成。
キーワード:
参照:[本日のメニュー]