diff --git a/module/admin/config.php b/module/admin/config.php index cac2b25639..2468462aa0 100755 --- a/module/admin/config.php +++ b/module/admin/config.php @@ -7,7 +7,7 @@ $config->admin->log->saveDays = 30; if(!isset($config->safe)) $config->safe = new stdclass(); if(!isset($config->safe->weak)) $config->safe->weak = '123456,password,12345,12345678,qwerty,123456789,1234,1234567,abc123,111111,123123'; -$config->admin->menuGroup['setting'] = array('custom|mode', 'backup', 'action|trash', 'admin|xuanxuan', 'admin|license', 'admin|checkweak', 'admin|resetpwdsetting', 'admin|safe', 'custom|timezone', 'search|buildindex', 'admin|tableengine', 'ldap', 'custom|libreoffice'); +$config->admin->menuGroup['system'] = array('custom|mode', 'backup', 'action|trash', 'admin|xuanxuan', 'setting|xuanxuan', 'admin|license', 'admin|checkweak', 'admin|resetpwdsetting', 'admin|safe', 'custom|timezone', 'search|buildindex', 'admin|tableengine', 'ldap', 'custom|libreoffice'); $config->admin->menuGroup['user'] = array('dept', 'company', 'user', 'group'); $config->admin->menuGroup['switch'] = array('admin|setmodule'); $config->admin->menuGroup['model'] = array('auditcl', 'stage', 'design', 'cmcl', 'reviewcl', 'custom|required', 'custom|set', 'custom|flow', 'custom|code', 'custom|estimate', 'subject', 'process'); diff --git a/module/admin/lang/de.php b/module/admin/lang/de.php index f0f7ca2c3c..979c1c09b4 100755 --- a/module/admin/lang/de.php +++ b/module/admin/lang/de.php @@ -148,3 +148,26 @@ $lang->admin->safe->noticeMode = 'The password will be checked when creating $lang->admin->safe->noticeWeakMode = 'The password will be checked when logging into the system, creating and modifying user information, and changing passwords.'; $lang->admin->safe->noticeStrong = 'The longer the password, the more letters, numbers, or special characters it contains, and the less repetitive the password, the more secure it is!'; $lang->admin->safe->noticeGd = 'Your server does not have GD module installed, you cannot use the Captcha function, Please use it after installation.'; + +$lang->admin->menuSetting['system']['name'] = 'System'; +$lang->admin->menuSetting['system']['desc'] = ''; +$lang->admin->menuSetting['user']['name'] = 'User'; +$lang->admin->menuSetting['user']['desc'] = ''; +$lang->admin->menuSetting['switch']['name'] = 'Switch'; +$lang->admin->menuSetting['switch']['desc'] = ''; +$lang->admin->menuSetting['model']['name'] = 'Model'; +$lang->admin->menuSetting['model']['desc'] = ''; +$lang->admin->menuSetting['feature']['name'] = 'Feature'; +$lang->admin->menuSetting['feature']['desc'] = ''; +$lang->admin->menuSetting['template']['name'] = 'Template'; +$lang->admin->menuSetting['template']['desc'] = ''; +$lang->admin->menuSetting['message']['name'] = 'Message'; +$lang->admin->menuSetting['message']['desc'] = ''; +$lang->admin->menuSetting['extension']['name'] = 'Extension'; +$lang->admin->menuSetting['extension']['desc'] = ''; +$lang->admin->menuSetting['dev']['name'] = 'Develop'; +$lang->admin->menuSetting['dev']['desc'] = ''; +$lang->admin->menuSetting['convert']['name'] = 'Data Import'; +$lang->admin->menuSetting['convert']['desc'] = ''; + +include dirname(__FILE__) . '/menu.php'; diff --git a/module/admin/lang/en.php b/module/admin/lang/en.php index 6553136041..48f1977590 100755 --- a/module/admin/lang/en.php +++ b/module/admin/lang/en.php @@ -37,13 +37,13 @@ $lang->admin->resetPWDByMail = 'Reset the password via the email'; $lang->admin->followUs = 'Follow Us'; $lang->admin->followUsContent = 'Check out ZenTao news, events, and support at any time'; -$lang->admin->changeEngine = "Change to InnoDB"; -$lang->admin->changingTable = 'Replacing data table %s engine...'; -$lang->admin->changeSuccess = 'The data table %s engine has been changed to InnoDB.'; -$lang->admin->changeFail = "Failed to replace table %s engine. Reason: %s。"; -$lang->admin->errorInnodb = 'Your MySQL does not support InnoDB data table engine.'; -$lang->admin->changeFinished = "Database engine replacement completed."; -$lang->admin->engineInfo = "The %s table engine is %s."; +$lang->admin->changeEngine = "Change to InnoDB"; +$lang->admin->changingTable = 'Replacing data table %s engine...'; +$lang->admin->changeSuccess = 'The data table %s engine has been changed to InnoDB.'; +$lang->admin->changeFail = "Failed to replace table %s engine. Reason: %s。"; +$lang->admin->errorInnodb = 'Your MySQL does not support InnoDB data table engine.'; +$lang->admin->changeFinished = "Database engine replacement completed."; +$lang->admin->engineInfo = "The %s table engine is %s."; $lang->admin->engineSummary['hasMyISAM'] = "There are %s tables that are not InnoDB engines"; $lang->admin->engineSummary['allInnoDB'] = "All tables are InnoDB engines"; @@ -148,3 +148,26 @@ $lang->admin->safe->noticeMode = 'The password will be checked when creating $lang->admin->safe->noticeWeakMode = 'The password will be checked when logging into the system, creating and modifying user information, and changing passwords.'; $lang->admin->safe->noticeStrong = 'The longer the password, the more letters, numbers, or special characters it contains, and the less repetitive the password, the more secure it is!'; $lang->admin->safe->noticeGd = 'Your server does not have GD module installed, you cannot use the Captcha function, Please use it after installation.'; + +$lang->admin->menuSetting['system']['name'] = 'System'; +$lang->admin->menuSetting['system']['desc'] = ''; +$lang->admin->menuSetting['user']['name'] = 'User'; +$lang->admin->menuSetting['user']['desc'] = ''; +$lang->admin->menuSetting['switch']['name'] = 'Switch'; +$lang->admin->menuSetting['switch']['desc'] = ''; +$lang->admin->menuSetting['model']['name'] = 'Model'; +$lang->admin->menuSetting['model']['desc'] = ''; +$lang->admin->menuSetting['feature']['name'] = 'Feature'; +$lang->admin->menuSetting['feature']['desc'] = ''; +$lang->admin->menuSetting['template']['name'] = 'Template'; +$lang->admin->menuSetting['template']['desc'] = ''; +$lang->admin->menuSetting['message']['name'] = 'Message'; +$lang->admin->menuSetting['message']['desc'] = ''; +$lang->admin->menuSetting['extension']['name'] = 'Extension'; +$lang->admin->menuSetting['extension']['desc'] = ''; +$lang->admin->menuSetting['dev']['name'] = 'Develop'; +$lang->admin->menuSetting['dev']['desc'] = ''; +$lang->admin->menuSetting['convert']['name'] = 'Data Import'; +$lang->admin->menuSetting['convert']['desc'] = ''; + +include dirname(__FILE__) . '/menu.php'; diff --git a/module/admin/lang/fr.php b/module/admin/lang/fr.php index 97c4bacb02..c460eb9aa1 100755 --- a/module/admin/lang/fr.php +++ b/module/admin/lang/fr.php @@ -148,3 +148,26 @@ $lang->admin->safe->noticeMode = "Le mot de passe sera vérifié lors de la $lang->admin->safe->noticeWeakMode = "Le mot de passe sera vérifié lors de la connexion au système, de la création et de la modification des coordonnées de l'utilisateur, et du changement de mot de passe."; $lang->admin->safe->noticeStrong = "Le mot de passe est d'autant plus sécurisé qu'il est long, qu'il contient plus de lettres, de chiffres ou de caractères spéciaux, et que les lettres du mot de passe sont peu répétitives !"; $lang->admin->safe->noticeGd = 'Your server does not have GD module installed, you cannot use the Captcha function, Please use it after installation.'; + +$lang->admin->menuSetting['system']['name'] = 'System'; +$lang->admin->menuSetting['system']['desc'] = ''; +$lang->admin->menuSetting['user']['name'] = 'User'; +$lang->admin->menuSetting['user']['desc'] = ''; +$lang->admin->menuSetting['switch']['name'] = 'Switch'; +$lang->admin->menuSetting['switch']['desc'] = ''; +$lang->admin->menuSetting['model']['name'] = 'Model'; +$lang->admin->menuSetting['model']['desc'] = ''; +$lang->admin->menuSetting['feature']['name'] = 'Feature'; +$lang->admin->menuSetting['feature']['desc'] = ''; +$lang->admin->menuSetting['template']['name'] = 'Template'; +$lang->admin->menuSetting['template']['desc'] = ''; +$lang->admin->menuSetting['message']['name'] = 'Message'; +$lang->admin->menuSetting['message']['desc'] = ''; +$lang->admin->menuSetting['extension']['name'] = 'Extension'; +$lang->admin->menuSetting['extension']['desc'] = ''; +$lang->admin->menuSetting['dev']['name'] = 'Develop'; +$lang->admin->menuSetting['dev']['desc'] = ''; +$lang->admin->menuSetting['convert']['name'] = 'Data Import'; +$lang->admin->menuSetting['convert']['desc'] = ''; + +include dirname(__FILE__) . '/menu.php'; diff --git a/module/admin/lang/menu.php b/module/admin/lang/menu.php new file mode 100644 index 0000000000..4ec645fefb --- /dev/null +++ b/module/admin/lang/menu.php @@ -0,0 +1,124 @@ +admin->menuList = new stdclass(); +$lang->admin->menuList->system['name'] = $lang->admin->menuSetting['system']['name']; +$lang->admin->menuList->system['desc'] = $lang->admin->menuSetting['system']['desc']; +$lang->admin->menuList->system['order'] = 1; + +$lang->admin->menuList->user['name'] = $lang->admin->menuSetting['user']['name']; +$lang->admin->menuList->user['desc'] = $lang->admin->menuSetting['user']['desc']; +$lang->admin->menuList->user['order'] = 2; + +$lang->admin->menuList->switch['name'] = $lang->admin->menuSetting['switch']['name']; +$lang->admin->menuList->switch['desc'] = $lang->admin->menuSetting['switch']['desc']; +$lang->admin->menuList->switch['order'] = 3; + +$lang->admin->menuList->model['name'] = $lang->admin->menuSetting['model']['name']; +$lang->admin->menuList->model['desc'] = $lang->admin->menuSetting['model']['desc']; +$lang->admin->menuList->model['order'] = 4; + +$lang->admin->menuList->feature['name'] = $lang->admin->menuSetting['feature']['name']; +$lang->admin->menuList->feature['desc'] = $lang->admin->menuSetting['feature']['desc']; +$lang->admin->menuList->feature['order'] = 5; + +$lang->admin->menuList->template['name'] = $lang->admin->menuSetting['template']['name']; +$lang->admin->menuList->template['desc'] = $lang->admin->menuSetting['template']['desc']; +$lang->admin->menuList->template['order'] = 6; + +$lang->admin->menuList->message['name'] = $lang->admin->menuSetting['message']['name']; +$lang->admin->menuList->message['desc'] = $lang->admin->menuSetting['message']['desc']; +$lang->admin->menuList->message['order'] = 7; + +$lang->admin->menuList->extension['name'] = $lang->admin->menuSetting['extension']['name']; +$lang->admin->menuList->extension['desc'] = $lang->admin->menuSetting['extension']['desc']; +$lang->admin->menuList->extension['link'] = 'extension|browse'; +$lang->admin->menuList->extension['order'] = 8; + +$lang->admin->menuList->dev['name'] = $lang->admin->menuSetting['dev']['name']; +$lang->admin->menuList->dev['desc'] = $lang->admin->menuSetting['dev']['desc']; +$lang->admin->menuList->dev['order'] = 9; + +$lang->admin->menuList->convert['name'] = $lang->admin->menuSetting['convert']['name']; +$lang->admin->menuList->convert['desc'] = $lang->admin->menuSetting['convert']['desc']; +$lang->admin->menuList->convert['link'] = 'convert|convertjira'; +$lang->admin->menuList->convert['order'] = 10; + +$lang->admin->menuList->system['subMenu']['mode'] = array('link' => "{$lang->custom->mode}|custom|mode|"); +$lang->admin->menuList->system['subMenu']['backup'] = array('link' => "{$lang->backup->common}|backup|index|"); +$lang->admin->menuList->system['subMenu']['trash'] = array('link' => "{$lang->action->trash}|action|trash|"); +$lang->admin->menuList->system['subMenu']['safe'] = array('link' => "{$lang->security}|admin|safe|", 'alias' => 'checkweak,resetpwdsetting'); +$lang->admin->menuList->system['subMenu']['cron'] = array('link' => "{$lang->admin->cron}|cron|index|", 'subModule' => 'cron'); +$lang->admin->menuList->system['subMenu']['timezone'] = array('link' => "{$lang->timezone}|custom|timezone|"); +$lang->admin->menuList->system['subMenu']['buildindex'] = array('link' => "{$lang->admin->buildIndex}|search|buildindex|"); +$lang->admin->menuList->system['subMenu']['tableengine'] = array('link' => "{$lang->admin->tableEngine}|admin|tableengine|"); + +$lang->admin->menuList->system['menuOrder']['5'] = 'mode'; +$lang->admin->menuList->system['menuOrder']['10'] = 'backup'; +$lang->admin->menuList->system['menuOrder']['15'] = 'trash'; +$lang->admin->menuList->system['menuOrder']['30'] = 'safe'; +$lang->admin->menuList->system['menuOrder']['35'] = 'cron'; +$lang->admin->menuList->system['menuOrder']['40'] = 'timezone'; +$lang->admin->menuList->system['menuOrder']['45'] = 'buildindex'; +$lang->admin->menuList->system['menuOrder']['50'] = 'tableengine'; + +$lang->admin->menuList->system['dividerMenu'] = ',safe,'; + +$lang->admin->menuList->user['subMenu']['dept'] = array('link' => "{$lang->dept->common}|dept|browse|", 'subModule' => 'dept'); +$lang->admin->menuList->user['subMenu']['user'] = array('link' => "{$lang->user->common}|company|browse|", 'subModule' => 'user'); +$lang->admin->menuList->user['subMenu']['group'] = array('link' => "{$lang->priv}}|group|browse|", 'subModule' => 'group'); + +$lang->admin->menuList->user['menuOrder']['5'] = 'dept'; +$lang->admin->menuList->user['menuOrder']['10'] = 'user'; +$lang->admin->menuList->user['menuOrder']['15'] = 'group'; + +$lang->admin->menuList->switch['subMenu']['setmodule'] = array('link' => "{$lang->admin->module}|admin|setmodule|"); + +$lang->admin->menuList->switch['menuOrder']['5'] = 'setmodule'; + +$lang->admin->menuList->model['subMenu']['common'] = array('link' => "{$lang->globalSetting}|custom|required|module=project", 'subModule' => 'custom'); +$lang->admin->menuList->model['subMenu']['scrum'] = array('link' => "{$lang->scrumModel}|auditcl|scrumbrowse|", 'subModule' => 'auditcl'); +$lang->admin->menuList->model['subMenu']['waterfall'] = array('link' => "$lang->waterfallModel|stage|settype|", 'subModule' => 'stage'); + +$lang->admin->menuList->model['menuOrder']['5'] = 'common'; +$lang->admin->menuList->model['menuOrder']['15'] = 'waterfall'; + +if($config->edition != 'max') unset($lang->admin->menuList->model['subMenu']['scrum']); +if($config->edition == 'max') $lang->admin->menuList->model['menuOrder']['10'] = 'scrum'; + +$lang->admin->menuList->feature['subMenu']['my'] = array('link' => "{$lang->my->common}|custom|set|module=todo"); +$lang->admin->menuList->feature['subMenu']['product'] = array('link' => "{$lang->productCommon}|custom|product|"); +$lang->admin->menuList->feature['subMenu']['execution'] = array('link' => "{$lang->execution->common}|custom|execution|"); +$lang->admin->menuList->feature['subMenu']['qa'] = array('link' => "{$lang->qa->common}|custom|required|module=bug"); +$lang->admin->menuList->feature['subMenu']['kanban'] = array('link' => "{$lang->kanban->common}|custom|kanban|"); +$lang->admin->menuList->feature['subMenu']['doc'] = array('link' => "{$lang->doc->common}|custom|required|module=doc"); +$lang->admin->menuList->feature['subMenu']['user'] = array('link' => "{$lang->user->common}|custom|set|module=user"); + +$lang->admin->menuList->feature['menuOrder']['5'] = 'my'; +$lang->admin->menuList->feature['menuOrder']['10'] = 'product'; +$lang->admin->menuList->feature['menuOrder']['15'] = 'execution'; +$lang->admin->menuList->feature['menuOrder']['20'] = 'qa'; +$lang->admin->menuList->feature['menuOrder']['25'] = 'kanban'; +$lang->admin->menuList->feature['menuOrder']['30'] = 'doc'; +$lang->admin->menuList->feature['menuOrder']['50'] = 'user'; + +$lang->admin->menuList->feature['dividerMenu'] = ',user,'; + +$lang->admin->menuList->message['subMenu']['mail'] = array('link' => "{$lang->mail->common}|mail|edit|", 'subModule' => 'mail'); +$lang->admin->menuList->message['subMenu']['webhook'] = array('link' => "Webhook|webhook|browse|", 'subModule' => 'webhook'); +$lang->admin->menuList->message['subMenu']['message'] = array('link' => "{$lang->browser}|message|browser|"); +$lang->admin->menuList->message['subMenu']['setting'] = array('link' => "{$lang->settings}|message|setting|"); + +$lang->admin->menuList->message['menuOrder']['5'] = 'mail'; +$lang->admin->menuList->message['menuOrder']['10'] = 'webhook'; +$lang->admin->menuList->message['menuOrder']['20'] = 'message'; +$lang->admin->menuList->message['menuOrder']['25'] = 'setting'; + +$lang->admin->menuList->dev['subMenu']['api'] = array('link' => "API|dev|api|"); +$lang->admin->menuList->dev['subMenu']['db'] = array('link' => "{$lang->database}|dev|db|"); +$lang->admin->menuList->dev['subMenu']['editor'] = array('link' => "{$lang->editor}|dev|editor|"); +$lang->admin->menuList->dev['subMenu']['entry'] = array('link' => "{$lang->admin->entry}|entry|browse|", 'subModule' => 'entry'); + +$lang->admin->menuList->dev['menuOrder']['5'] = 'api'; +$lang->admin->menuList->dev['menuOrder']['10'] = 'db'; +$lang->admin->menuList->dev['menuOrder']['15'] = 'editor'; +$lang->admin->menuList->dev['menuOrder']['20'] = 'entry'; diff --git a/module/admin/lang/vi.php b/module/admin/lang/vi.php index 3c099f1faf..96edcc1521 100755 --- a/module/admin/lang/vi.php +++ b/module/admin/lang/vi.php @@ -92,3 +92,5 @@ $lang->admin->safe->loginCaptchaList[0] = 'No'; $lang->admin->safe->noticeMode = 'Mật khẩu sẽ được kiểm tra khi người dùng đăng nhập hoặc người dùng thêm hoặc sửa.'; $lang->admin->safe->noticeStrong = ''; $lang->admin->safe->noticeGd = 'Your server does not have GD module installed, you cannot use the Captcha function, Please use it after installation.'; + +include dirname(__FILE__) . '/menu.php'; diff --git a/module/admin/lang/zh-cn.php b/module/admin/lang/zh-cn.php index 7e1dd9a997..fab6ae63b9 100755 --- a/module/admin/lang/zh-cn.php +++ b/module/admin/lang/zh-cn.php @@ -149,139 +149,25 @@ $lang->admin->safe->noticeWeakMode = '系统会在登录、创建和修改用户 $lang->admin->safe->noticeStrong = '密码长度越长,含有大写字母或数字或特殊符号越多,密码字母越不重复,安全度越强!'; $lang->admin->safe->noticeGd = '系统检测到您的服务器未安装GD模块,无法使用验证码功能,请安装后使用。'; -$lang->admin->menuList = new stdclass(); -$lang->admin->menuList->setting['name'] = '系统设置'; -$lang->admin->menuList->setting['desc'] = ''; -$lang->admin->menuList->setting['order'] = 1; +$lang->admin->menuSetting['system']['name'] = '系统设置'; +$lang->admin->menuSetting['system']['desc'] = ''; +$lang->admin->menuSetting['user']['name'] = '人员管理'; +$lang->admin->menuSetting['user']['desc'] = ''; +$lang->admin->menuSetting['switch']['name'] = '功能开关'; +$lang->admin->menuSetting['switch']['desc'] = ''; +$lang->admin->menuSetting['model']['name'] = '模型配置'; +$lang->admin->menuSetting['model']['desc'] = ''; +$lang->admin->menuSetting['feature']['name'] = '功能配置'; +$lang->admin->menuSetting['feature']['desc'] = ''; +$lang->admin->menuSetting['template']['name'] = '文档模板'; +$lang->admin->menuSetting['template']['desc'] = ''; +$lang->admin->menuSetting['message']['name'] = '通知设置'; +$lang->admin->menuSetting['message']['desc'] = ''; +$lang->admin->menuSetting['extension']['name'] = '插件管理'; +$lang->admin->menuSetting['extension']['desc'] = ''; +$lang->admin->menuSetting['dev']['name'] = '二次开发'; +$lang->admin->menuSetting['dev']['desc'] = ''; +$lang->admin->menuSetting['convert']['name'] = '数据导入'; +$lang->admin->menuSetting['convert']['desc'] = ''; -$lang->admin->menuList->user['name'] = '人员管理'; -$lang->admin->menuList->user['desc'] = ''; -$lang->admin->menuList->user['order'] = 2; - -$lang->admin->menuList->switch['name'] = '功能开关'; -$lang->admin->menuList->switch['desc'] = ''; -$lang->admin->menuList->switch['order'] = 3; - -$lang->admin->menuList->model['name'] = '模型配置'; -$lang->admin->menuList->model['desc'] = ''; -$lang->admin->menuList->model['order'] = 4; - -$lang->admin->menuList->feature['name'] = '功能配置'; -$lang->admin->menuList->feature['desc'] = ''; -$lang->admin->menuList->feature['order'] = 5; - -$lang->admin->menuList->template['name'] = '文档模板'; -$lang->admin->menuList->template['desc'] = ''; -$lang->admin->menuList->template['order'] = 6; - -$lang->admin->menuList->message['name'] = '通知设置'; -$lang->admin->menuList->message['desc'] = ''; -$lang->admin->menuList->message['order'] = 7; - -$lang->admin->menuList->extension['name'] = '插件管理'; -$lang->admin->menuList->extension['desc'] = ''; -$lang->admin->menuList->extension['link'] = 'extension|browse'; -$lang->admin->menuList->extension['order'] = 8; - -$lang->admin->menuList->dev['name'] = '二次开发'; -$lang->admin->menuList->dev['desc'] = ''; -$lang->admin->menuList->dev['order'] = 9; - -$lang->admin->menuList->convert['name'] = '数据导入'; -$lang->admin->menuList->convert['desc'] = ''; -$lang->admin->menuList->convert['link'] = 'convert|convertjira'; -$lang->admin->menuList->convert['order'] = 10; - -$lang->admin->menuList->setting['subMenu']['mode'] = array('link' => "模式|custom|mode|"); -$lang->admin->menuList->setting['subMenu']['backup'] = array('link' => "备份|backup|index|", 'subModule' => 'backup'); -$lang->admin->menuList->setting['subMenu']['trash'] = array('link' => "回收站|action|trash|", 'subModule' => 'action'); -$lang->admin->menuList->setting['subMenu']['safe'] = array('link' => "安全|admin|safe|", 'alias' => 'checkweak,resetpwdsetting'); -$lang->admin->menuList->setting['subMenu']['timezone'] = array('link' => "时区|custom|timezone|"); -$lang->admin->menuList->setting['subMenu']['buildindex'] = array('link' => "重建索引|search|buildindex|", 'subModule' => 'search'); -$lang->admin->menuList->setting['subMenu']['tableengine'] = array('link' => "表引擎|admin|tableengine|"); - -$lang->admin->menuList->setting['menuOrder']['5'] = 'mode'; -$lang->admin->menuList->setting['menuOrder']['10'] = 'backup'; -$lang->admin->menuList->setting['menuOrder']['15'] = 'trash'; -$lang->admin->menuList->setting['menuOrder']['30'] = 'safe'; -$lang->admin->menuList->setting['menuOrder']['35'] = 'timezone'; -$lang->admin->menuList->setting['menuOrder']['40'] = 'buildindex'; -$lang->admin->menuList->setting['menuOrder']['45'] = 'tableengine'; - -$lang->admin->menuList->setting['dividerMenu'] = ',safe,'; - -$lang->admin->menuList->user['subMenu']['dept'] = array('link' => "部门|dept|browse|", 'subModule' => 'dept'); -$lang->admin->menuList->user['subMenu']['user'] = array('link' => "用户|company|browse|", 'subModule' => 'company'); -$lang->admin->menuList->user['subMenu']['group'] = array('link' => "权限|group|browse|", 'subModule' => 'group'); - -$lang->admin->menuList->user['menuOrder']['5'] = 'dept'; -$lang->admin->menuList->user['menuOrder']['10'] = 'user'; -$lang->admin->menuList->user['menuOrder']['15'] = 'group'; - -$lang->admin->menuList->switch['subMenu']['setmodule'] = array('link' => "功能设置|admin|setmodule|"); - -$lang->admin->menuList->switch['menuOrder']['5'] = 'setmodule'; - -$lang->admin->menuList->model['subMenu']['common'] = array('link' => "通用|custom|required|module=project", 'subModule' => 'custom'); -$lang->admin->menuList->model['subMenu']['scrum'] = array('link' => "敏捷模型|auditcl|scrumbrowse|", 'subModule' => 'auditcl'); -$lang->admin->menuList->model['subMenu']['waterfall'] = array('link' => "瀑布模型|stage|settype|", 'subModule' => 'stage'); - -$lang->admin->menuList->model['menuOrder']['5'] = 'common'; -$lang->admin->menuList->model['menuOrder']['10'] = 'scrum'; -$lang->admin->menuList->model['menuOrder']['15'] = 'waterfall'; - -$lang->admin->menuList->feature['subMenu']['my'] = array('link' => "地盘|custom|set|module=todo"); -$lang->admin->menuList->feature['subMenu']['product'] = array('link' => "{$lang->productCommon}|custom|product|"); -$lang->admin->menuList->feature['subMenu']['execution'] = array('link' => "{$lang->execution->common}|custom|execution|"); -$lang->admin->menuList->feature['subMenu']['qa'] = array('link' => "测试|custom|required|module=bug"); -$lang->admin->menuList->feature['subMenu']['kanban'] = array('link' => "看板|custom|kanban|"); -$lang->admin->menuList->feature['subMenu']['doc'] = array('link' => "文档|custom|required|module=doc"); -$lang->admin->menuList->feature['subMenu']['feedback'] = array('link' => "反馈|custom|set|module=feedback"); -$lang->admin->menuList->feature['subMenu']['approval'] = array('link' => "审批|approvalflow|browse|", 'subModule' => 'approvalflow'); -$lang->admin->menuList->feature['subMenu']['measure'] = array('link' => "度量|measurement|settips|", 'subModule' => 'measurement'); -$lang->admin->menuList->feature['subMenu']['user'] = array('link' => "用户|custom|set|module=user"); -$lang->admin->menuList->feature['subMenu']['meetingroom'] = array('link' => "会议室|meetingroom|browse|", 'subModule' => 'meetingroom'); - -$lang->admin->menuList->feature['menuOrder']['5'] = 'my'; -$lang->admin->menuList->feature['menuOrder']['10'] = 'product'; -$lang->admin->menuList->feature['menuOrder']['15'] = 'execution'; -$lang->admin->menuList->feature['menuOrder']['20'] = 'qa'; -$lang->admin->menuList->feature['menuOrder']['25'] = 'kanban'; -$lang->admin->menuList->feature['menuOrder']['30'] = 'doc'; -$lang->admin->menuList->feature['menuOrder']['35'] = 'feedback'; -$lang->admin->menuList->feature['menuOrder']['40'] = 'approval'; -$lang->admin->menuList->feature['menuOrder']['45'] = 'measure'; -$lang->admin->menuList->feature['menuOrder']['50'] = 'user'; -$lang->admin->menuList->feature['menuOrder']['55'] = 'meetingroom'; - -$lang->admin->menuList->feature['dividerMenu'] = ',user,'; - -$lang->admin->menuList->template['subMenu']['type'] = array('link' => "模版类型|custom|set|module=baseline&field=objectList", 'subModule' => 'custom'); -$lang->admin->menuList->template['subMenu']['template'] = array('link' => "文档模版|baseline|template|", 'subModule' => 'baseline'); -$lang->admin->menuList->template['subMenu']['catalog'] = array('link' => "文档目录|baseline|catalog|", 'subModule' => 'baseline'); - -$lang->admin->menuList->template['menuOrder']['5'] = 'type'; -$lang->admin->menuList->template['menuOrder']['10'] = 'template'; -$lang->admin->menuList->template['menuOrder']['15'] = 'catalog'; - -$lang->admin->menuList->message['subMenu']['mail'] = array('link' => "邮件|mail|edit|", 'subModule' => 'mail'); -$lang->admin->menuList->message['subMenu']['webhook'] = array('link' => "Webhook|webhook|browse|", 'subModule' => 'webhook'); -$lang->admin->menuList->message['subMenu']['sms'] = array('link' => "短信|sms|index|", 'subModule' => 'sms'); -$lang->admin->menuList->message['subMenu']['message'] = array('link' => "浏览器|message|browser|"); -$lang->admin->menuList->message['subMenu']['setting'] = array('link' => "设置|message|setting|"); - -$lang->admin->menuList->message['menuOrder']['5'] = 'mail'; -$lang->admin->menuList->message['menuOrder']['10'] = 'webhook'; -$lang->admin->menuList->message['menuOrder']['15'] = 'sms'; -$lang->admin->menuList->message['menuOrder']['20'] = 'message'; -$lang->admin->menuList->message['menuOrder']['25'] = 'setting'; - -$lang->admin->menuList->dev['subMenu']['api'] = array('link' => "API|dev|api|"); -$lang->admin->menuList->dev['subMenu']['db'] = array('link' => "数据库|dev|db|"); -$lang->admin->menuList->dev['subMenu']['editor'] = array('link' => "编辑器|dev|editor|"); -$lang->admin->menuList->dev['subMenu']['entry'] = array('link' => "应用|entry|browse|", 'subModule' => 'entry'); - -$lang->admin->menuList->dev['menuOrder']['5'] = 'api'; -$lang->admin->menuList->dev['menuOrder']['10'] = 'db'; -$lang->admin->menuList->dev['menuOrder']['15'] = 'editor'; -$lang->admin->menuList->dev['menuOrder']['20'] = 'entry'; +include dirname(__FILE__) . '/menu.php'; diff --git a/module/admin/model.php b/module/admin/model.php index b28a53ebd1..41e0969e66 100755 --- a/module/admin/model.php +++ b/module/admin/model.php @@ -261,7 +261,7 @@ class adminModel extends model */ public function setMenu() { - $this->sortMenu(); + $this->checkPrivMenu(); $menuKey = $this->getMenuKey(); if(empty($menuKey)) return; @@ -276,70 +276,58 @@ class adminModel extends model } /** - * sort menu. + * Check priv menu. * * @access public * @return void */ - public function sortMenu() + public function checkPrivMenu() { - $orders = array(); - $disabled = array(); + $orders = array(); foreach($this->lang->admin->menuList as $menuKey => $menu) { $menu['disabled'] = false; - if(isset($menu['link'])) + if(!isset($menu['link'])) $menu['link'] = ''; + if(!empty($menu['link']) and strpos($menu['link'], '|') !== false) { list($module, $method) = explode('|', $menu['link']); $menu['link'] = helper::createLink($module, $method); if(!common::hasPriv($module, $method)) $menu['disabled'] = true; } - if(isset($menu['menuOrder'])) + $menuOrder = isset($menu['menuOrder']) ? $menu['menuOrder'] : array(); + if($menuOrder) { - $menuOrder = $menu['menuOrder']; ksort($menuOrder); + /* Check sub menu priv. */ + list($label, $module, $method, $params) = explode('|', $menu['subMenu'][$subMenuKey]['link']); foreach($menuOrder as $subOrder => $subMenuKey) { - list($label, $module, $method, $params) = explode('|', $menu['subMenu'][$subMenuKey]['link']); if(!common::hasPriv($module, $method)) unset($menuOrder[$subOrder]); } + /* Set link. */ if(!empty($menuOrder)) { $subMenuKey = reset($menuOrder); - list($label, $module, $method, $params) = explode('|', $menu['subMenu'][$subMenuKey]['link']); $menu['link'] = helper::createLink($module, $method, $params); } - if(empty($menuOrder)) $menu['disabled'] = true; } + if(empty($menuOrder) and empty($menu['link'])) $menu['disabled'] = true; $order = $menu['order']; $orders[$order] = $menuKey; - if($menu['disabled']) - { - unset($orders[$order]); - $disabled[$menuKey] = $menu; - } $this->lang->admin->menuList->$menuKey = $menu; } ksort($orders); $menuList = new stdclass(); - $index = 1; - foreach($orders as $menuKey) + foreach($orders as $index => $menuKey) { $menuList->$menuKey = $this->lang->admin->menuList->$menuKey; $menuList->$menuKey['order'] = $index; - $index++; - } - foreach($disabled as $menuKey => $menu) - { - $menuList->$menuKey = $menu; - $menuList->$menuKey['order'] = $index; - $index++; } $this->lang->admin->menuList = $menuList; @@ -385,7 +373,7 @@ class adminModel extends model * @access public * @return string */ - public function getSwitcher($currentMenuKey = 'setting') + public function getSwitcher($currentMenuKey = 'system') { if(empty($currentMenuKey)) return null; @@ -395,7 +383,7 @@ class adminModel extends model { $class = $menuKey == $currentMenuKey ? "class='active'" : ''; if($menuGroup['disabled']) $class .= ' disabled'; - $output .= "