2010-04-26(月) [長年日記]
■ tDiary: ナビゲーションメニューにdropdown_calendarなどを埋め込む
先日のデザイン変更ついでに、↑に出ているナビゲーションメニューへカレンダーなんかを埋め込んだら、どうやってるのか聞かれたので、参考までに。何を入れたいと思うかは人それぞれなのでcontribとかには入れるつもりはないんだけど。
# my_navi.rb プラグイン # # 通常のnaviに、カレンダーとRSS feedのアイコンを追加。 # dropdown_calendar.rbを有効にしておくこと。 # @options['dropdown_calendar.label']は空('')にしておく。 def navi result = %Q[<div class="adminmenu">\n] result << navi_user result << navi_admin result << calendar result << %Q[<span class="adminmenu"><a href="index.rdf"><img style="border-width: 0px;" src="http://tdiary1.tdiary.net/feed-icon-12x12.png" width="12" height="12" alt="RSS feed"></a></span>] result << %Q[</div>] end
重要なのはCSSで、カレンダーが挿入するdivやformなんかをinline要素にする必要がある。gustavテーマにはこんな感じに仕込んである:
div.adminmenu div, div.adminmenu form, div.adminmenu select { display: inline; }
おまけ。スマートフォン向けにnaviのラベルを短縮:
if @conf.smartphone? then def navi_index; 'TOP'; end def navi_prev_diary(date); '前'; end def navi_next_diary(date); '翌'; end def navi_prev_nyear(date); "前"; end def navi_next_nyear(date); "次"; end def navi_latest; '新'; end def navi_update; "追"; end def navi_edit; "編"; end end