Trac 导航
主导航和元导航条目可以通过多种方式进行自定义。[mainnav]
和 [metanav]
配置部分可用于自定义导航项的文本和链接、更改导航项的顺序、禁用它们以及添加新项。
可自定义的主要属性是 href
、label
、order
和 permission
。
[mainnav]
[mainnav]
对应于主导航栏,其中包含Wiki、时间线、路线图、浏览源等条目。此导航栏旨在访问 Trac 中已启用且当前用户可访问的主要模块的默认页面。
示例
在以下示例中,我们将指向 WikiStart 的链接重命名为主页,并使查看工单条目链接到特定报告。
[mainnav] wiki.label = Home tickets.href = /report/24
请注意,主导航上的条目以大写字母显示,无论 label
的大小写如何,除非通过界面自定义覆盖了此样式方面。
[metanav]
[metanav]
对应于元导航栏,默认位于主导航栏上方和搜索框下方。它包含登录、注销、帮助/指南等条目。此导航栏旨在访问有关 Trac 项目和当前用户的一些全局信息。
[metanav]
部分中有一个特殊条目:logout.redirect
是用户点击注销按钮后看到的页面。在以下示例中,帮助/指南链接也被隐藏。
示例
[metanav] help = disabled logout.redirect = wiki/Logout
额外的导航条目
可以任意定义新的导航条目并将其添加到导航中。可以通过提供一个名称并将其值设置为 enabled
来定义新条目。至少,应指定 href
属性来定义一个有用的导航条目。如果未定义 label
属性,则条目的名称将用作标签。
以下示例创建了两个新的导航项,一个名为我的报告,另一个名为构建。我的报告仅对具有 REPORT_VIEW
权限的用户可见。
[mainnav] myreports = enabled myreports.href = /report/9 myreports.label = My Reports myreports.permission = REPORT_VIEW [metanav] builds = enabled builds.href = https://travis-ci.org/edgewall/trac
条目名称总是以小写形式读取,Trac.ini 文件中所有键都是如此,这是由配置解析器的配置方式决定的。如果上面的示例中将名称使用 BUILDS
而不是 builds
,则该条目仍将显示为 builds
。使用 label
属性进行导航条目文本的大小写敏感自定义。
重新定位条目
Trac 和插件提供的导航条目可以从元导航栏移动到主导航栏,反之亦然。应在所需的类别中定义该条目,就好像它是一个新条目一样。例如,要将管理条目移动到元导航并将其重命名为管理
[metanav] admin = enabled admin.label = Administration
未被配置覆盖的导航项属性将保留。
URL 格式
.href
或 .redirect
可能的 URL 格式
配置 | 重定向到 |
wiki/Logout | /projects/env/wiki/Logout
|
http://hostname/ | http://hostname/
|
/projects | /projects
|
排序
order
属性指定导航项的显示顺序。这对于添加导航项的插件特别有用。
order
属性可以使用非负浮点值。导航项将从左到右按升序排列。没有 order
属性的导航项按名称的字母顺序排序。
默认值是
[mainnav] browser.order = 4 newticket.order = 6 roadmap.order = 3 search.order = 7 tickets.order = 5 timeline.order = 2 wiki.order = 1 [metanav] about.order = 5 help.order = 4 login.order = 1 logout.order = 2 prefs.order = 3
权限
permission
属性控制导航项在导航栏上的可见性。这主要对于导航栏中的新条目有用。请注意,它不提供对导航项指向的 URL 的访问控制,也无法覆盖 Trac 和插件执行的权限检查。
例如,路线图导航项将仅对具有 ROADMAP_VIEW
权限的用户显示。添加属性 roadmap.permission = MILESTONE_VIEW
将要求同时具有 ROADMAP_VIEW
和 MILESTONE_VIEW
权限才能使该条目可见,但如前所述,它不提供对 /roadmap
路径的访问控制。应使用Trac细粒度权限来控制对 Trac 和插件提供的模块的访问。
上下文导航
请注意,目前仍无法自定义上下文导航栏,即通常位于主导航栏下方的那个。
另请参阅:Trac界面自定义