MenusPlugin

MenusPluginについて。

Hierarchical navigation menus
http://trac-hacks.org/wiki/MenusPlugin

ナビゲーションバーへの項目追加、カスタマイズ、階層メニュー化を行うプラグイン。…のはずなのだが、あまり情報が見あたらない。設定例も見当たらなかったのでここにメモ。


まずプラグインをダウンロードしインストール。Trac.iniの設定を行う。

[components]
tracmenus.* = enabled

プラグインを有効化。

[menu-custom]
serve_ui_files = true

serve_ui_files:メニューのカスタマイズを有効にする。trueで有効、falseで元のメニューに戻る。
managed_menus:カスタマイズ対象メニューを指定。default値は mainnav,metanav

serve_ui_files = true にすると、managed_menusで指定した項目が機能拡張される。拡張内容は http://trac-hacks.org/wiki/MenusPlugin を参照。

ここでは、トップメニュー用に新しく nav_* というメニューを追加し、既存のメニューはその下に収めるようにした。トップメニューにする項目には *.parent = top と設定する。メニューをどの順番で並べるかは、*.orderの値で設定する。

[mainnav]
nav_wiki = true
nav_wiki.hide_if_no_children = 1
nav_wiki.href = /wiki
nav_wiki.label = Wiki
nav_wiki.order = 1
nav_wiki.parent = top
nav_tickets = true
nav_tickets.hide_if_no_children = 1
nav_tickets.href = /wiki/MyTickets
nav_tickets.label = チケット
nav_tickets.order = 10
nav_tickets.parent = top
nav_repos = true
nav_repos.hide_if_no_children = 1
nav_repos.href = /browser
nav_repos.label = リポジトリブラウザ
nav_repos.order = 20
nav_repos.parent = top
nav_project = true
nav_project.hide_if_no_children = 1
nav_project.href = /timeline
nav_project.label = プロジェクト
nav_project.order = 30
nav_project.parent = top
nav_admin = true
nav_admin.hide_if_no_children = 1
nav_admin.href = /admin
nav_admin.label = 管理
nav_admin.order = 99999
nav_admin.parent = top

これで[Wiki][チケット][リポジトリブラウザ][プロジェクト][管理]の5つのメニューが追加される。

次に既存のメニューを、それぞれ追加したメニューの下に収める。*.parent にトップメニュー名を指定する。

# [Wiki]
wiki.parent = nav_wiki
wiki.href   = /wiki
wiki.label  = スタートページ

# [チケット]
tickets.parent   = nav_tickets
newticket.parent = nav_tickets
query.parent     = nav_tickets
report.parent    = nav_tickets
query       = true
query.href  = /query
query.label = カスタムクエリ
report       = true
report.href  = /report
report.label = レポート一覧

# [リポジトリブラウザ]
browser.parent = nav_repos

# [プロジェクト]
blog.parent           = nav_project
discussion.parent     = nav_project
#peerreviewmain.parent = nav_project
roadmap.parent        = nav_project
timeline.parent       = nav_project
tags.parent           = nav_project
search.parent         = nav_project
doxygen.parent        = nav_project

# [管理]
admin.parent          = nav_admin
#billing.parent        = nav_admin
builds.parent         = nav_admin
importer.parent       = nav_admin
stractistics.parent   = nav_admin
ticketcalendar.parent = nav_admin
ticketgantt.parent    = nav_admin

[Hudson]はbuilds.parentで指定。なぜか作業時間管理(Timing and Estimation Plugin) と PeerReview Plugin の2つはトップメニュー下に収められなかったのでコメントアウト

[metanav]
account = false
settings = false

Trac 0.11.4.ja1の場合、日本語化の関係かmetanavにaccount,settingsが表示されてしまうため、それぞれfalseに設定して表示を抑止した。

設定後の表示はこんなかんじ。


色が悪趣味なのは気にしない方向で…。本当はナビゲーションバーのデザインをカスタマイズ前のものに合わせられれば良いのですが、cssがわからないので今のところ放置です。