1 禅道介绍
1.1 关于禅道项目管理软件
1.2 禅道介绍PPT下载
1.3 如何获得支持
1.4 关注我们
2 安装禅道
2.1 选择适合您的安装方法
2.2 使用云禅道在线项目管理服务!
2.3 windows用一键安装包安装(推荐)
2.4 linux用一键安装包
2.5 禅道一键安装包里安装蝉知和然之
2.6 linux下用lampp集成包安装
2.7 使用源码包安装(各系统通用)
2.8 禅道虚拟机运行环境安装(virtualbox)
2.9 华芸NAS在线安装
3 升级禅道
3.1 选择和自己环境对应的升级方式
3.2 通过源代码方式升级(通用)
3.3 windows一键安装包的升级
3.4 linux一键安装包升级
4 创建分组和用户
4.1 建立部门结构
4.2 添加一个帐号
4.3 批量维护帐号
4.4 设置分组,建立权限体系
5 最简使用
5.1 使用禅道来进行项目任务管理
5.2 只使用禅道来做bug管理
5.3 只使用禅道来进行产品管理
5.4 个人使用禅道来做事务跟踪管理
6 基本使用
6.1 禅道使用的基本流程和产品、研发、测试之间的三权分立
6.2 敏捷开发及scrum简介
6.3 禅道和scrum的对应关系
6.4 禅道的新手教程
6.5 创建第一个产品
6.6 添加第一个需求
6.7 开始第一个项目
6.8 确定项目要完成的需求列表
6.9 为需求分解任务
6.10 提交bug
6.11 视频教程:第一个演示项目
6.12 维护联系人
6.13 禅道的自定义功能
6.14 导入excel、csv参考文档
6.15 文档管理
6.16 工作方式的切换
6.17 操作获取积分功能
6.18 自定义必填项功能
7 进阶使用
7.1 使用流程
7.1.1 禅道使用流程图解
7.2 个人管理
7.2.1 使用待办进行个人事务管理
7.2.2 关注需要自己处理的任务、需求、bug
7.2.3 通过我的档案查看或者修改个人信息
7.2.4 视频教程:禅道使用之个人篇
7.3 产品经理篇
7.3.1 维护产品
7.3.2 维护产品线
7.3.3 创建和评审需求
7.3.4 变更和评审需求
7.3.5 需求的状态和研发阶段
7.3.6 需求的注意事项
7.3.7 维护产品模块
7.3.8 建立发布计划
7.3.9 建立发布
7.3.10 路线图
7.3.11 文档管理
7.3.12 主持产品会议
7.3.13 参与项目管理、演示和总结
7.3.14 需求的基本统计报表
7.3.15 视频教程:禅道使用之产品经理篇
7.4 项目经理篇
7.4.1 建立项目
7.4.2 组建项目团队
7.4.3 确定项目要完成的需求列表
7.4.4 组织进行任务分解
7.4.5 召开每天的站立会议
7.4.6 通过燃尽图了解项目的进展
7.4.7 通过各种列表的各种功能了解项目进展
7.4.8 召开演示会议和总结会议
7.4.9 项目任务基本的报表统计
7.4.10 视频教程:禅道使用之项目经理篇
7.5 开发团队篇
7.5.1 参加项目计划会议,分解任务
7.5.2 领取任务,并每天更新任务
7.5.3 通过看板和树状图查看任务
7.5.4 创建版本
7.5.5 申请测试
7.5.6 解决bug
7.5.7 文档管理
7.5.8 确认bug
7.5.9 视频教程:禅道使用之开发团队篇
7.6 测试团队篇
7.6.1 维护bug视图模块
7.6.2 提交bug
7.6.3 验证bug,关闭
7.6.4 激活bug
7.6.5 找到自己需要的bug
7.6.6 维护测试用例视图
7.6.7 创建测试用例
7.6.8 测试套件、报告和公共用例库的维护
7.6.9 管理测试任务
7.6.10 执行用例,并提交bug
7.6.11 查看报表统计
7.6.12 视频教程:禅道使用之测试团队篇
8 维护配置
8.1 维护禅道
8.1.1 初始化管理脚本
8.1.2 备份禅道
8.1.3 恢复删除的资源
8.1.4 如何更新燃尽图
8.1.5 一键安装包如何实现mysql异机连接
8.2 配置禅道
8.2.1 设置是否允许匿名访问
8.2.2 如何配置email发信
8.2.3 禅道云发信
8.2.4 如何成为超级管理员
8.2.5 配置禅道系统为静态访问
8.2.6 去掉禅道访问地址中的zentao
8.2.7 集成禅道和svn
8.2.8 集成禅道和git
8.2.9 集成webhook
9 定制开发
9.1 二次开发机制
9.2 禅道的目录结构
9.3 找到要修改的文件
9.4 禅道的数据库结构
9.5 公用模块--common
9.6 如何登记菜单
9.7 如何登记权限
9.8 示例:如何修改禅道的语言提示?
9.9 示例:创建bug时可以设置优先级字段
9.10 使用在线扩展编辑器
9.11 禅道项目管理软件打包规范1.1版本
10 其他相关
10.1 禅道所使用到的第三方代码
10.2 禅道FAQ
10.3 如何帮助禅道项目
10.4 禅道商业服务
10.5 禅道项目的贡献者
10.6 历史修改记录

如何登记菜单

2012-09-27 11:14:18
王春生
18546
最后编辑:褚纪鲁 于 2017-02-24 14:36:28
简介:扩展禅道遇到的一个问题就是如何将自己增加的功能登记到菜单中,本篇文章来讲述如何来实现这个功能。

扩展禅道遇到的一个问题就是如何将自己增加的功能登记到菜单中,本篇文章来讲述如何来实现这个功能。

一、菜单的组成

禅道的导航菜单分为三个部分,顶部菜单、模块菜单、功能菜单。

二、菜单的定义

菜单的代码定义是在zentao/module/common/lang/zh-cn语言文件中。我们来看下主菜单的定义。


2.1 主导航菜单的定义

80 $lang->menu->my = ' 我的地盘|my|index';
81 $lang->menu->product = '产品视图|product|index';
82 $lang->menu->project = '项目视图|project|index';

83 $lang->menu->qa = '测试视图|qa|index';

我们来看下代码的含义:83 $lang->menu->qa = '测试视图|qa|index';

这行代码定义了测试视图的代码,其中的menu->qa定义的是菜单的键值,可以根据实际的模块定义。后面是使用竖线分开的三个参数,分别是菜单的文本,对应到模块和方法。这句话就表示要定义一个顶级菜单,文本是“测试视图”,链接到qa模块的index方法。


2.2 模块菜单的定义

我们以产品视图的模块菜单为例:

144 $lang->product->menu->list = '%s';
145 $lang->product->menu->story = array('link' => '需求|product|browse|productID=%s', 'subModule' => 'story');
155 $lang->product->menu->create = array('link' => ' 新增产品|product|create', 'float' => 'right');
158 $lang->productplan->menu = $lang->product->menu;
159 $lang->release->menu = $lang->product->menu;

这几行代码定义了产品视图模块的模块菜单,这里面出现了一些新的定义方法:


2.2.1 使用数组来定义链接

145 $lang->product->menu->story = array('link' => '需求|product|browse|productID=%s', 'subModule' => 'story');

这行代码对链接进行定义的时候,使用了数组,分别定义了两个元素,link和subModule。其中link多增加了一个参数字段:productID=%s,代表产品视图的“需求”菜单会链接到product模块的browse方法,传递的参数是productID=%s,其中的%s会被替换成当前的产品id。


2.2.2 使用subModuel来定义子模块。145 $lang->product->menu->story = array('link' => '需求|product|browse|productID=%s', 'subModule' => 'story');

subModule定义的是它的子模块,这个需要是用来保持菜单高亮使用。这样当访问到story模块的时候,还会保持“产品视图”这个定义菜单高亮。


2.2.3 使用alias来定义方法别名 151 $lang->product->menu->view = array('link' => '概况|product|view|productID=%s', 'alias' => 'edit');

这个地方的alias代表product的edit页面和product的view页面是相同的,这样当编辑产品的时候,“概况”菜单还是会保持高亮的。


2.2.4 定义菜单的位置

所有的菜单默认都是显示在左侧的,如果需要将菜单显示在右侧,则需要定义它的float参数。
155 $lang->product->menu->create = array('link' => ' 新增产品|product|create', 'float' => 'right');

通过设置float参数,可以定义这个新增产品的链接显示在页面的右侧。


2.3 功能菜单的定义

功能菜单是在每一个模块的视图文件里面打印的,其扩展方法和视图的扩展相同,后面会讲到这一点。

三、菜单顺序的定义

前面讲述的是禅道菜单的定义,下面来讲下禅道菜单顺序的定义。在common/lang/下面有一个menuOrder.php的文件,在这个文件中定义了每个菜单的显示顺序。

/* Sort of main menu. */
$lang->menuOrder[5] = 'my';
$lang->menuOrder[10] = 'product';
$lang->menuOrder[15] = 'project';
$lang->menuOrder[20] = 'qa';
$lang->menuOrder[25] = 'doc';
$lang->menuOrder[30] = 'report';
$lang->menuOrder[35] = 'company';
$lang->menuOrder[40] = 'admin';
/* index menu order. */
$lang->index->menuOrder[5] = 'product';
$lang->index->menuOrder[10] = 'project';

四、如何将自己的页面登记到菜单中

了解了禅道的菜单机制之后,做扩展就非常容易了。我们来说下步骤:


1. 在module/common/ext/lang/zh-cn/下面创建一个文件,比如叫做abc.php(文件名可以任意定义)

2. 在这个文件中加上自己的菜单就好了,比如禅道专业版本中的版本库菜单:

$lang->menu->repo = '版本库|repo|browse';
$lang->menuOrder[21] = 'repo';

$lang->repo->menu->list = '%s' . $lang->arrow;
$lang->repo->menu->browse = array('link' =>'浏览|repo|browse|repoID=%s', 'alias' => 'diff, log, view, revision, showsynccomment');
$lang->repo->menu->settings = '设置|repo|settings|repoID=%s';
$lang->repo->menu->delete = array('link' => '删除|repo|delete|repoID=%s', 'target' => 'hiddenwin');
$lang->repo->menu->create = array('link' => '新增版本库|repo|create|', 'float' => 'right');
    评论列表
    小猪 2017-11-14 15:24:16
    请问想在例如项目----团队下面 添加功能菜单如何添加?
    王林 2017-11-14 17:29:55
    这个需要进行二次开发实现。
    二次开发可以参考一下文档:http://www.xhtours.com/book/zentaopmshelp/225.html
    建议二次开发先熟悉一下zentaoPHP框架。
    也可以添加页面上方QQ,联系我们进行定制开发。
    张栋梁 2017-08-18 11:03:02
    1. 在module/common/ext/lang/zh-cn/下面创建一个文件,比如叫做abc.php(文件名可以任意定义)
    按照上面的扩展吧,但是不显示
    石洋洋 2017-08-18 11:30:00
    看一下php日志是否有错误记录?zentao(pro/pms)/config/my.php 中debug的值改成true 重新操作一下 看日志文件 zentao(pms/pro)/tmp/log/php开头的今天的文件有什么报错。
    阿灿烂 2017-05-02 15:50:03
    请问添加菜单后如何分配权限让普通用户也能显示?修改了zentao/module/group/lang/resource.php,子菜单有显示,但是模块怎么给普通用户使用!
    石洋洋 2017-05-02 15:59:39
    模块指的是什么内容?可以加 QQ: 1492153927 他会邀请加入禅道二次开发群,在群里就可以截图一下操作的位置,交流会方便一些。
    729500161 2017-02-21 18:18:33
    请问添加菜单后如何分配权限让普通用户也能显示?参考zentao/module/group/lang/resource.php,没看出来!
    石洋洋 2017-02-22 09:02:16
    加一下 QQ: 1492153927,他会邀请加入二次开发群,在群里交流一下。
    811429769 2017-02-21 15:34:46
    按照 四、如何将自己的页面登记到菜单中 怎么没有显示新加的菜单啊?
    石洋洋 2017-02-21 16:13:02
    用超级管理员登录查看一下是否存在,新加的功能是需要分配权限普通用户才能看到的,权限增加可以参考zentao\module\group\lang\resource.php
    jackal 2016-12-11 23:09:52
    请问 $lang->productCommon 是在哪个文件定义的啊?谢谢!
    春哥 2016-12-12 10:56:19
    你看下module/common模块下面。
    春哥 2016-12-13 08:25:57
    搜索下不就知道了?
    lcdd 2016-10-12 15:48:10
    请问字体在哪个文件中修改?
    王怡栋 2016-10-12 16:57:12
    禅道中字体需要修改css样式。
    lnln 2016-07-13 12:47:46
    想在禅道中加一个不需要登录就能访问的页面,要如何处理
    石洋洋 2016-07-13 13:25:21
    要放在禅道中的话就需要登录禅道,除非和禅道程序没有交互。
    晚天 2016-03-22 22:13:52
    点击顶级菜单中产品会默认进入模块菜单中的需求,如何设置(或修改代码)使得默认进入模块菜单中的项目?多谢多谢!
    春哥 2016-03-23 09:10:01
    common模块下面的语言里面有定义。
    xiii 2016-03-09 14:02:50
    $lang->product->menu->list = '%s'; 请问list表中的数据%s是在什么地方被替换的?
    石洋洋 2016-03-09 14:43:10
    看一下setmenu() 函数。
    1/2
    发表评论
    评论通过审核后显示。