diff --git a/module/common/lang/zh-cn.php b/module/common/lang/zh-cn.php index 77d18a7cc9..517378b9fa 100644 --- a/module/common/lang/zh-cn.php +++ b/module/common/lang/zh-cn.php @@ -1102,7 +1102,6 @@ if(isset($config->global->flow) and $config->global->flow == 'onlyTest') /* Cmmi menu. */ $lang->menu->cmmi = new stdclass(); -$lang->menu->cmmi->workestimation = array('link' => '估算|workestimation|index|program={PROGRAM}', 'subModule' => 'durationestimation,budget'); $lang->menu->cmmi->programplan = array('link' => '计划|programplan|browse|program={PROGRAM}', 'subModule' => 'programplan'); $lang->menu->cmmi->project = array('link' => $lang->projectCommon . '|project|task|projectID={PROJECT}', 'subModule' => ',project,task,'); $lang->menu->cmmi->review = array('link' => '评审|review|browse|program={PROGRAM}', 'subModule' => ',reviewissue,'); @@ -1118,7 +1117,13 @@ $lang->menu->cmmi->risk = '风险|risk|browse|'; $lang->menu->cmmi->report = array('link' => '度量|report|programsummary|program={PROGRAM}', 'subModule' => ',report,measrecord,'); $lang->menu->cmmi->auditplan = array('link' => 'QA|auditplan|browse|', 'subModule' => 'nc'); $lang->menu->cmmi->cm = array('link' => '配置|cm|browse|program={PROGRAM}', 'subModule' => 'cm'); -$lang->menu->cmmi->pssp = '过程|pssp|browse|program={PROGRAM}'; +$lang->menu->cmmi->list = array('link' => '更多|workestimation|index|program={PROGRAM}', 'class' => 'dropdown dropdown-hover cmmi-list'); + +$lang->cmmi = new stdclass(); +$lang->cmmi->subMenu = new stdclass(); +$lang->cmmi->subMenu->list = new stdclass(); +$lang->cmmi->subMenu->list->workestimation = array('link' => '估算|workestimation|index|program=%s', 'subModule' => 'durationestimation,budget'); +$lang->cmmi->subMenu->list->pssp = '过程|pssp|browse|program=%s'; $lang->cmmiproduct = new stdclass(); $lang->workestimation = new stdclass(); diff --git a/module/common/model.php b/module/common/model.php index 56269e2487..5b932c2e19 100644 --- a/module/common/model.php +++ b/module/common/model.php @@ -405,6 +405,47 @@ class commonModel extends model return $subMenu; } + /** + * Init submenu for program menu. + * + * @static + * @access public + * @return array + */ + public static function initProgramSubmenu() + { + global $lang, $app; + $moduleName = $app->getModuleName(); + $methodName = $app->getMethodName(); + + foreach($lang->menu->cmmi as $key => $menu) + { + /* Replace for dropdown submenu. */ + if(isset($lang->cmmi->subMenu->$key)) + { + $programSubMenu = $lang->cmmi->subMenu->$key; + $subMenu = common::createSubMenu($lang->cmmi->subMenu->$key, $app->session->program); + + if(!empty($subMenu)) + { + foreach($subMenu as $menuKey => $menu) + { + $itemMenu = zget($programSubMenu, $menuKey, ''); + $isActive['method'] = ($moduleName == strtolower($menu->link['module']) and $methodName == strtolower($menu->link['method'])); + $isActive['alias'] = ($moduleName == strtolower($menu->link['module']) and (is_array($itemMenu) and isset($itemMenu['alias']) and strpos($itemMenu['alias'], $methodName) !== false)); + $isActive['subModule'] = (is_array($itemMenu) and isset($itemMenu['subModule']) and strpos($itemMenu['subModule'], $moduleName) !== false); + if($isActive['method'] or $isActive['alias'] or $isActive['subModule']) + { + $lang->menu->cmmi->{$key}['link'] = $menu->text . "|" . join('|', $menu->link); + break; + } + } + $lang->menu->cmmi->{$key}['subMenu'] = $subMenu; + } + } + } + } + /** * Print admin subMenu. * @@ -2142,6 +2183,7 @@ EOD; $lang->release->menu = new stdclass(); $lang->menugroup->release = ''; $lang->program->dividerMenu = ',product,issue,'; + self::initProgramSubmenu(); return self::processMenuVars($lang->menu->cmmi); } }