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;
}

これで、サイドバー(本日のメニュー)の最近の更新が完成。

更新日時:2013/05/27 18:45:04
キーワード:
参照:[本日のメニュー]
このページは凍結されています。