From 44b526f9fc057625f15021e209096f4e6cc710e7 Mon Sep 17 00:00:00 2001 From: guofeilong Date: Mon, 30 Jan 2023 14:57:46 +0800 Subject: [PATCH 001/191] * code for task #83327 --- module/admin/config.php | 0 module/admin/control.php | 0 module/admin/css/index.css | 15 ++++++ module/admin/css/safe.en.css | 0 module/admin/css/safe.vi.css | 0 module/admin/css/safe.zh-cn.css | 0 module/admin/css/safe.zh-tw.css | 0 module/admin/css/setmodule.css | 0 module/admin/js/checkweak.js | 0 module/admin/js/log.js | 0 module/admin/js/safe.js | 0 module/admin/js/setmodule.js | 0 module/admin/lang/de.php | 0 module/admin/lang/en.php | 0 module/admin/lang/fr.php | 0 module/admin/lang/vi.php | 0 module/admin/lang/zh-cn.php | 14 ++++-- module/admin/lang/zh-tw.php | 0 module/admin/model.php | 0 module/admin/view/bind.html.php | 0 module/admin/view/certifyztemail.html.php | 0 module/admin/view/certifyztmobile.html.php | 0 module/admin/view/checkweak.html.php | 0 module/admin/view/index.html.php | 56 +++++++++++++++------- module/admin/view/log.html.php | 0 module/admin/view/register.html.php | 0 module/admin/view/resetpwdsetting.html.php | 0 module/admin/view/safe.html.php | 0 module/admin/view/setmodule.html.php | 0 module/admin/view/sso.html.php | 0 module/admin/view/tableengine.html.php | 0 module/admin/view/ztcompany.html.php | 0 32 files changed, 62 insertions(+), 23 deletions(-) mode change 100644 => 100755 module/admin/config.php mode change 100644 => 100755 module/admin/control.php mode change 100644 => 100755 module/admin/css/index.css mode change 100644 => 100755 module/admin/css/safe.en.css mode change 100644 => 100755 module/admin/css/safe.vi.css mode change 100644 => 100755 module/admin/css/safe.zh-cn.css mode change 100644 => 100755 module/admin/css/safe.zh-tw.css mode change 100644 => 100755 module/admin/css/setmodule.css mode change 100644 => 100755 module/admin/js/checkweak.js mode change 100644 => 100755 module/admin/js/log.js mode change 100644 => 100755 module/admin/js/safe.js mode change 100644 => 100755 module/admin/js/setmodule.js mode change 100644 => 100755 module/admin/lang/de.php mode change 100644 => 100755 module/admin/lang/en.php mode change 100644 => 100755 module/admin/lang/fr.php mode change 100644 => 100755 module/admin/lang/vi.php mode change 100644 => 100755 module/admin/lang/zh-cn.php mode change 100644 => 100755 module/admin/lang/zh-tw.php mode change 100644 => 100755 module/admin/model.php mode change 100644 => 100755 module/admin/view/bind.html.php mode change 100644 => 100755 module/admin/view/certifyztemail.html.php mode change 100644 => 100755 module/admin/view/certifyztmobile.html.php mode change 100644 => 100755 module/admin/view/checkweak.html.php mode change 100644 => 100755 module/admin/view/index.html.php mode change 100644 => 100755 module/admin/view/log.html.php mode change 100644 => 100755 module/admin/view/register.html.php mode change 100644 => 100755 module/admin/view/resetpwdsetting.html.php mode change 100644 => 100755 module/admin/view/safe.html.php mode change 100644 => 100755 module/admin/view/setmodule.html.php mode change 100644 => 100755 module/admin/view/sso.html.php mode change 100644 => 100755 module/admin/view/tableengine.html.php mode change 100644 => 100755 module/admin/view/ztcompany.html.php diff --git a/module/admin/config.php b/module/admin/config.php old mode 100644 new mode 100755 diff --git a/module/admin/control.php b/module/admin/control.php old mode 100644 new mode 100755 diff --git a/module/admin/css/index.css b/module/admin/css/index.css old mode 100644 new mode 100755 index e954c9c911..ec95e71c69 --- a/module/admin/css/index.css +++ b/module/admin/css/index.css @@ -1,3 +1,18 @@ #notice {margin: -20px -20px 20px; padding: 20px;} #zentaoLinks {margin-top: 20px;} #zentaoLinks .panel .panel-heading {padding: 6px 10px;} +.admin {display: flex; background: unset;} +.admin > .main {flex: 1 1 60%; padding-right: 10px;} +.admin > .side {flex: 1 1 40%; padding-left: 10px;} +.panel-title {padding: 10px 0px;} +.flex {display: flex;} +.panel {padding: 0 16px;} + +.settings-list {display: flex; flex-wrap: wrap; padding: 12px 4px 16px 4px;} +.settings-list > .setting-box {flex: 0 0 20%; padding: 18px 0;} + +.plugin-list {display: flex; flex-wrap: wrap; padding: 12px 4px 4px 4px;} +.plugin-list > .plugin-item {flex: 1 1 33%; padding: 16px 4px;} + +.bottom.flex > .official {flex: 1 1 30%;} +.bottom.flex > .openClass {flex: 1 1 60%; margin-left: 20px;} diff --git a/module/admin/css/safe.en.css b/module/admin/css/safe.en.css old mode 100644 new mode 100755 diff --git a/module/admin/css/safe.vi.css b/module/admin/css/safe.vi.css old mode 100644 new mode 100755 diff --git a/module/admin/css/safe.zh-cn.css b/module/admin/css/safe.zh-cn.css old mode 100644 new mode 100755 diff --git a/module/admin/css/safe.zh-tw.css b/module/admin/css/safe.zh-tw.css old mode 100644 new mode 100755 diff --git a/module/admin/css/setmodule.css b/module/admin/css/setmodule.css old mode 100644 new mode 100755 diff --git a/module/admin/js/checkweak.js b/module/admin/js/checkweak.js old mode 100644 new mode 100755 diff --git a/module/admin/js/log.js b/module/admin/js/log.js old mode 100644 new mode 100755 diff --git a/module/admin/js/safe.js b/module/admin/js/safe.js old mode 100644 new mode 100755 diff --git a/module/admin/js/setmodule.js b/module/admin/js/setmodule.js old mode 100644 new mode 100755 diff --git a/module/admin/lang/de.php b/module/admin/lang/de.php old mode 100644 new mode 100755 diff --git a/module/admin/lang/en.php b/module/admin/lang/en.php old mode 100644 new mode 100755 diff --git a/module/admin/lang/fr.php b/module/admin/lang/fr.php old mode 100644 new mode 100755 diff --git a/module/admin/lang/vi.php b/module/admin/lang/vi.php old mode 100644 new mode 100755 diff --git a/module/admin/lang/zh-cn.php b/module/admin/lang/zh-cn.php old mode 100644 new mode 100755 index 33831b046d..6a37c3cd4a --- a/module/admin/lang/zh-cn.php +++ b/module/admin/lang/zh-cn.php @@ -25,11 +25,15 @@ $lang->admin->resetPWDSetting = '重置密码设置'; $lang->admin->tableEngine = '表引擎'; $lang->admin->setModuleIndex = '系统功能配置'; -$lang->admin->api = '接口'; -$lang->admin->log = '日志'; -$lang->admin->setting = '设置'; -$lang->admin->days = '日志保存天数'; -$lang->admin->resetPWDByMail = '通过邮箱重置密码'; +$lang->admin->api = '接口'; +$lang->admin->log = '日志'; +$lang->admin->setting = '设置'; +$lang->admin->pluginRecommendation = '插件推荐'; +$lang->admin->zentaoInfo = '禅道信息'; +$lang->admin->officialAccount = '官方公众号'; +$lang->admin->openClass = '公开课'; +$lang->admin->days = '日志保存天数'; +$lang->admin->resetPWDByMail = '通过邮箱重置密码'; $lang->admin->changeEngine = "更换到InnoDB"; $lang->admin->changingTable = '正在更换数据表%s引擎...'; diff --git a/module/admin/lang/zh-tw.php b/module/admin/lang/zh-tw.php old mode 100644 new mode 100755 diff --git a/module/admin/model.php b/module/admin/model.php old mode 100644 new mode 100755 diff --git a/module/admin/view/bind.html.php b/module/admin/view/bind.html.php old mode 100644 new mode 100755 diff --git a/module/admin/view/certifyztemail.html.php b/module/admin/view/certifyztemail.html.php old mode 100644 new mode 100755 diff --git a/module/admin/view/certifyztmobile.html.php b/module/admin/view/certifyztmobile.html.php old mode 100644 new mode 100755 diff --git a/module/admin/view/checkweak.html.php b/module/admin/view/checkweak.html.php old mode 100644 new mode 100755 diff --git a/module/admin/view/index.html.php b/module/admin/view/index.html.php old mode 100644 new mode 100755 index 2ac6cdc8a8..dbc150d456 --- a/module/admin/view/index.html.php +++ b/module/admin/view/index.html.php @@ -11,25 +11,45 @@ */ ?> -
- -
- ' . $lang->admin->notice->ignore, 'hiddenwin', 'class="close" data-dismiss="alert" style="font-size: 12px"');?> -
admin->notice->register, html::a(inlink('register'), $lang->admin->registerNotice->click, '', 'class="alert-link"'));?>
+
+
+
+
admin->setting?>
+
+
1
+
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
+
+
+
admin->pluginRecommendation?>
+
+
1
+
2
+
3
+
4
+
5
+
6
+
+
+
+
+
admin->officialAccount?>
+
+
+
admin->openClass?>
+
+
- - -
-

- version; - if(trim($config->visions, ',') == 'lite') $versionName = $lang->liteName . $config->liteVersion; - printf($lang->admin->info->version, $versionName); - if($bind) echo sprintf($lang->admin->info->account, '' . $account . ''); - echo $lang->admin->info->links; - ?> -

+
+
admin->zentaoInfo?>
-
diff --git a/module/admin/view/log.html.php b/module/admin/view/log.html.php old mode 100644 new mode 100755 diff --git a/module/admin/view/register.html.php b/module/admin/view/register.html.php old mode 100644 new mode 100755 diff --git a/module/admin/view/resetpwdsetting.html.php b/module/admin/view/resetpwdsetting.html.php old mode 100644 new mode 100755 diff --git a/module/admin/view/safe.html.php b/module/admin/view/safe.html.php old mode 100644 new mode 100755 diff --git a/module/admin/view/setmodule.html.php b/module/admin/view/setmodule.html.php old mode 100644 new mode 100755 diff --git a/module/admin/view/sso.html.php b/module/admin/view/sso.html.php old mode 100644 new mode 100755 diff --git a/module/admin/view/tableengine.html.php b/module/admin/view/tableengine.html.php old mode 100644 new mode 100755 diff --git a/module/admin/view/ztcompany.html.php b/module/admin/view/ztcompany.html.php old mode 100644 new mode 100755 From 6df1f2daa6677e8b1a38cf789d1c72638b71c001 Mon Sep 17 00:00:00 2001 From: guofeilong Date: Mon, 30 Jan 2023 16:37:24 +0800 Subject: [PATCH 002/191] * code for task_#83327 --- module/admin/css/index.css | 8 ++++++-- module/admin/view/index.html.php | 5 +++++ www/static/images/wechat.jpg | Bin 0 -> 27899 bytes 3 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 www/static/images/wechat.jpg diff --git a/module/admin/css/index.css b/module/admin/css/index.css index ec95e71c69..e44841c55b 100755 --- a/module/admin/css/index.css +++ b/module/admin/css/index.css @@ -14,5 +14,9 @@ .plugin-list {display: flex; flex-wrap: wrap; padding: 12px 4px 4px 4px;} .plugin-list > .plugin-item {flex: 1 1 33%; padding: 16px 4px;} -.bottom.flex > .official {flex: 1 1 30%;} -.bottom.flex > .openClass {flex: 1 1 60%; margin-left: 20px;} +.bottom.flex > .official {flex: 1 1 30%; margin-right: 20px;} +.bottom.flex > .openClass {flex: 1 1 60%;} + +.official.panel > .main-panel {min-height: 200px;} +.official-img {background-image: url('/static/images/wechat.jpg'); background-repeat: no-repeat; background-size: contain; flex: 1 1 50%; aspect-ratio: 1 / 1; background-position: center;} +.official-content {flex: 0 0 50%;} diff --git a/module/admin/view/index.html.php b/module/admin/view/index.html.php index dbc150d456..5ece0d1329 100755 --- a/module/admin/view/index.html.php +++ b/module/admin/view/index.html.php @@ -42,6 +42,11 @@
admin->officialAccount?>
+
+
+
+
+
admin->openClass?>
diff --git a/www/static/images/wechat.jpg b/www/static/images/wechat.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7f66f85d1a177091dbb242e769ebc1e1f457eb7b GIT binary patch literal 27899 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 Date: Mon, 30 Jan 2023 17:11:28 +0800 Subject: [PATCH 003/191] * Add extension list. --- module/admin/control.php | 5 ++++- module/admin/css/index.css | 6 ++++-- module/admin/view/index.html.php | 13 +++++++------ 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/module/admin/control.php b/module/admin/control.php index 3d2d0cbe16..f05ab4299d 100755 --- a/module/admin/control.php +++ b/module/admin/control.php @@ -34,8 +34,11 @@ class admin extends control $this->loadModel('misc'); + $extensions = $this->loadModel('extension')->getExtensionsByAPI('byUpdatedTime', '', 0, 6); + $this->view->title = $this->lang->admin->common; $this->view->position[] = $this->lang->admin->index; + $this->view->extensions = isset($extensions->extensions) ? (array)$extensions->extensions : array(); $this->display(); } @@ -235,7 +238,7 @@ class admin extends control /** * Set closed features config. - * + * * @access public * @return void */ diff --git a/module/admin/css/index.css b/module/admin/css/index.css index ec95e71c69..a510ef026c 100755 --- a/module/admin/css/index.css +++ b/module/admin/css/index.css @@ -6,13 +6,15 @@ .admin > .side {flex: 1 1 40%; padding-left: 10px;} .panel-title {padding: 10px 0px;} .flex {display: flex;} -.panel {padding: 0 16px;} +.panel {padding: 0 0 0 16px;} .settings-list {display: flex; flex-wrap: wrap; padding: 12px 4px 16px 4px;} .settings-list > .setting-box {flex: 0 0 20%; padding: 18px 0;} .plugin-list {display: flex; flex-wrap: wrap; padding: 12px 4px 4px 4px;} -.plugin-list > .plugin-item {flex: 1 1 33%; padding: 16px 4px;} +.plugin-list > .plugin-item {flex: 1 1 30%; padding: 16px 4px; border: 1px solid #EDEEF2; border-radius: 4px; margin-right: 16px; padding: 0 10px; margin-bottom: 16px;} +.plugin-list > .plugin-item .ext-download {float: right; padding: 6px 0px;} +.plugin-list > .plugin-item .extension-desc {width: 175px; white-space: nowrap; overflow: hidden;} .bottom.flex > .official {flex: 1 1 30%;} .bottom.flex > .openClass {flex: 1 1 60%; margin-left: 20px;} diff --git a/module/admin/view/index.html.php b/module/admin/view/index.html.php index dbc150d456..7030bfeba8 100755 --- a/module/admin/view/index.html.php +++ b/module/admin/view/index.html.php @@ -31,12 +31,13 @@
admin->pluginRecommendation?>
-
1
-
2
-
3
-
4
-
5
-
6
+ +
+ +

name;?>

+

desc);?>

+
+
From 8b5f786bd23f441681b1b8608454d9d53a18cab6 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Mon, 30 Jan 2023 17:23:10 +0800 Subject: [PATCH 004/191] * Finish task #83329. --- module/admin/config.php | 17 ++++ module/admin/lang/zh-cn.php | 94 ++++++++++++++++++++++ module/admin/model.php | 59 ++++++++++++++ module/common/lang/menu.php | 152 ++++++++++++++++++------------------ module/common/model.php | 4 +- 5 files changed, 248 insertions(+), 78 deletions(-) diff --git a/module/admin/config.php b/module/admin/config.php index 8fa6c10599..858e34106c 100644 --- a/module/admin/config.php +++ b/module/admin/config.php @@ -6,3 +6,20 @@ $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('backup', 'action|trash', 'admin|xuanxuan', 'admin|license', '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'); +$config->admin->menuGroup['feature'] = array('custom|set', 'custom|product', 'custom|execution', 'custom|required', 'custom|kanban', 'approvalflow', 'measurement', 'meetingroom', 'custom|browsestoryconcept', 'custom|kanban'); +$config->admin->menuGroup['template'] = array('custom|set', 'baseline'); +$config->admin->menuGroup['message'] = array('mail', 'webhook', 'sms', 'message'); +$config->admin->menuGroup['dev'] = array('dev', 'entry'); +$config->admin->menuGroup['extension'] = array('extension'); +$config->admin->menuGroup['convert'] = array('convert'); + +$config->admin->menuModuleGroup['model']['custom|set'] = array('project', 'issue', 'risk', 'opportunity', 'nc'); +$config->admin->menuModuleGroup['model']['custom|required'] = array('project', 'build'); +$config->admin->menuModuleGroup['feature']['custom|set'] = array('todo', 'feedback', 'user', 'block', 'story', 'task', 'bug', 'testcase', 'testtask', 'feedback', 'user'); +$config->admin->menuModuleGroup['feature']['custom|required'] = array('bug', 'doc', 'product', 'story', 'productplan', 'release', 'task', 'bug', 'testcase', 'testsuite', 'testtask', 'testreport', 'caselib', 'doc', 'feedback', 'user'); +$config->admin->menuModuleGroup['template']['custom|set'] = array('baseline'); diff --git a/module/admin/lang/zh-cn.php b/module/admin/lang/zh-cn.php index 33831b046d..f8a4b2e1c6 100644 --- a/module/admin/lang/zh-cn.php +++ b/module/admin/lang/zh-cn.php @@ -142,3 +142,97 @@ $lang->admin->safe->noticeMode = '系统会在创建和修改用户、修改 $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->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['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['order'] = 10; + +$lang->admin->menuList->setting['subMenu']['mode'] = array('link' => "模式|custom|mode|", 'subModule' => 'custom'); +$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']['xuanxuan'] = array('link' => "聊天|admin|xuanxuan|"); +$lang->admin->menuList->setting['subMenu']['license'] = array('link' => "授权信息|admin|license|"); +$lang->admin->menuList->setting['subMenu']['safe'] = array('link' => "安全|admin|safe|"); +$lang->admin->menuList->setting['subMenu']['timezone'] = array('link' => "时区|custom|timezone|", 'subModule' => 'custom'); +$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['subMenu']['ldap'] = array('link' => "LDAP|ldap|set|", 'subModule' => 'ldap'); +$lang->admin->menuList->setting['subMenu']['libreoffice'] = array('link' => "Office|custom|libreoffice|", 'subModule' => 'custom'); + +$lang->admin->menuList->setting['dividerMenu'] = ',license,ldap,'; + +$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->switch['subMenu']['setmodule'] = array('link' => "功能设置|admin|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->feature['subMenu']['my'] = array('link' => "地盘|custom|set|module=todo", 'subModule' => 'custom'); +$lang->admin->menuList->feature['subMenu']['product'] = array('link' => "{$lang->productCommon}|custom|product|", 'subModule' => 'custom'); +$lang->admin->menuList->feature['subMenu']['execution'] = array('link' => "{$lang->execution->common}|custom|execution|", 'subModule' => 'custom'); +$lang->admin->menuList->feature['subMenu']['qa'] = array('link' => "测试|custom|required|module=bug", 'subModule' => 'custom'); +$lang->admin->menuList->feature['subMenu']['kanban'] = array('link' => "看板|custom|kanban|", 'subModule' => 'custom'); +$lang->admin->menuList->feature['subMenu']['doc'] = array('link' => "文档|custom|required|module=doc", 'subModule' => 'custom'); +$lang->admin->menuList->feature['subMenu']['feedback'] = array('link' => "反馈|custom|set|module=feedback", 'subModule' => 'custom'); +$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", 'subModule' => 'custom'); +$lang->admin->menuList->feature['subMenu']['meetingroom'] = array('link' => "会议室|meetingroom|browse|", 'subModule' => '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->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|", 'subModule' => 'message'); +$lang->admin->menuList->message['subMenu']['setting'] = array('link' => "设置|message|setting|", 'subModule' => 'message'); + +$lang->admin->menuList->dev['subMenu']['api'] = array('link' => "API|dev|api|", 'subModule' => 'dev'); +$lang->admin->menuList->dev['subMenu']['db'] = array('link' => "数据库|dev|db|", 'subModule' => 'dev'); +$lang->admin->menuList->dev['subMenu']['editor'] = array('link' => "编辑器|dev|editor|", 'subModule' => 'dev'); +$lang->admin->menuList->dev['subMenu']['entry'] = array('link' => "应用|entry|browse|", 'subModule' => 'entry'); diff --git a/module/admin/model.php b/module/admin/model.php index c6ec4bed40..bff5a3bc9d 100644 --- a/module/admin/model.php +++ b/module/admin/model.php @@ -247,4 +247,63 @@ class adminModel extends model if($user->birthday and $user->password == md5($user->birthday)) return true; return false; } + + public function setMenu() + { + $this->lang->switcherMenu = $this->getSwitcher(); + } + + /** + * Get switcher. + * + * @access public + * @return string + */ + public function getSwitcher() + { + $moduleName = $this->app->rawModule; + $methodName = $this->app->rawMethod; + $paramName = current($this->app->rawParams); + $currentMenu = 'setting'; + $currentMenuName = ''; + $link = $paramName ? helper::createLink($moduleName, $methodName, "param=$paramName") : helper::createLink($moduleName, $methodName); + + foreach($this->config->admin->menuGroup as $menuKey => $menuGroup) + { + if(in_array($moduleName, $menuGroup)) + { + $currentMenu = $menuKey; + break; + } + elseif(in_array("$moduleName|$methodName", $menuGroup)) + { + if($moduleName == 'custom' and ($methodName == 'required' or $methodName == 'set')) + { + if(in_array($paramName, $this->config->admin->menuModuleGroup[$menuKey]["custom|$methodName"])) + { + + $currentMenu = $menuKey; + break; + } + } + else + { + $currentMenu = $menuKey; + break; + } + } + } + + $currentMenuName = $this->lang->admin->menuList->$currentMenu['name']; + + $output = "
"; + + return $output; + } } diff --git a/module/common/lang/menu.php b/module/common/lang/menu.php index 3811a4194b..437636fe0c 100644 --- a/module/common/lang/menu.php +++ b/module/common/lang/menu.php @@ -572,82 +572,82 @@ $lang->company->menuOrder[30] = 'addUser'; /* Admin menu. */ $lang->admin->menu = new stdclass(); -$lang->admin->menu->index = array('link' => "$lang->indexPage|admin|index", 'alias' => 'register,certifytemail,certifyztmobile,ztcompany'); -$lang->admin->menu->company = array('link' => "{$lang->personnel->common}|company|browse|", 'subModule' => ',user,dept,group,'); -$lang->admin->menu->model = array('link' => "$lang->model|custom|browsestoryconcept|", 'class' => 'dropdown dropdown-hover', 'exclude' => 'custom-index,custom-set,custom-product,custom-execution,custom-kanban,custom-required,custom-flow,custom-score,custom-feedback,custom-timezone,custom-mode'); -$lang->admin->menu->custom = array('link' => "{$lang->custom->common}|custom|index", 'exclude' => 'custom-browsestoryconcept,custom-timezone,custom-estimate,custom-code,custom-mode'); -$lang->admin->menu->extension = array('link' => "{$lang->extension->common}|extension|browse", 'subModule' => 'extension'); -$lang->admin->menu->dev = array('link' => "$lang->redev|dev|api", 'alias' => 'db', 'subModule' => 'dev,editor,entry'); -$lang->admin->menu->message = array('link' => "{$lang->message->common}|message|index", 'subModule' => 'message,mail,webhook'); -$lang->admin->menu->system = array('link' => "{$lang->admin->system}|custom|mode", 'subModule' => 'cron,backup,action,admin,search,convert', 'exclude' => 'admin-index,admin-xuanxuan,admin-register,admin-ztcompany'); - -$lang->admin->menu->model['dropMenu'] = new stdclass(); -$lang->admin->menu->model['dropMenu']->allModel = array('link' => "{$lang->globalSetting}|custom|browsestoryconcept|", 'subModule' => 'measurement,report,sqlbuilder,subject,custom,meetingroom,baseline'); - -if($config->edition == 'max') $lang->admin->menu->model['dropMenu']->scrum = array('link' => "{$lang->scrumModel}|auditcl|scrumbrowse|processID=0&browseType=scrum", 'subModule' => 'auditcl,process,activity,zoutput,classify,'); -$lang->admin->menu->model['dropMenu']->waterfall = array('link' => "{$lang->waterfallModel}|stage|setType|", 'subModule' => 'stage,auditcl,cmcl,process,activity,zoutput,classify,reviewcl,reviewsetting,design'); - -$lang->admin->menu->allModel['subMenu'] = new stdclass(); -$lang->admin->menu->allModel['subMenu']->storyConcept = array('link' => "{$lang->storyConcept}|custom|browsestoryconcept|"); -$lang->admin->menu->allModel['subMenu']->code = array('link' => "{$lang->code}|custom|code|"); - -$lang->admin->menu->allModel['menuOrder'][5] = 'storyConcept'; -$lang->admin->menu->allModel['menuOrder'][30] = 'code'; - -$lang->admin->menu->waterfall['subMenu'] = new stdclass(); -$lang->admin->menu->waterfall['subMenu']->stage = array('link' => "{$lang->stage->common}|stage|setType|", 'subModule' => 'stage'); - -/* Admin menu order. */ -$lang->admin->menuOrder[5] = 'index'; -$lang->admin->menuOrder[10] = 'company'; -$lang->admin->menuOrder[15] = 'model'; -$lang->admin->menuOrder[20] = 'custom'; -$lang->admin->menuOrder[25] = 'message'; -$lang->admin->menuOrder[30] = 'extension'; -$lang->admin->menuOrder[35] = 'dev'; -$lang->admin->menuOrder[40] = 'system'; - -$lang->admin->menu->message['subMenu'] = new stdclass(); -$lang->admin->menu->message['subMenu']->message = array(); -$lang->admin->menu->message['subMenu']->mail = array('link' => "{$lang->mail->common}|mail|index", 'subModule' => 'mail'); -$lang->admin->menu->message['subMenu']->webhook = array('link' => "Webhook|webhook|browse", 'subModule' => 'webhook'); -$lang->admin->menu->message['subMenu']->browser = array('link' => "$lang->browser|message|browser"); -$lang->admin->menu->message['subMenu']->setting = array('link' => "$lang->settings|message|setting"); - -$lang->admin->menu->message['menuOrder'][5] = 'mail'; -$lang->admin->menu->message['menuOrder'][10] = 'webhook'; -$lang->admin->menu->message['menuOrder'][15] = 'browser'; -$lang->admin->menu->message['menuOrder'][20] = 'setting'; - -$lang->admin->menu->company['subMenu'] = new stdclass(); -$lang->admin->menu->company['subMenu']->browseUser = array('link' => "{$lang->user->common}|company|browse", 'subModule' => 'user'); -$lang->admin->menu->company['subMenu']->dept = array('link' => "{$lang->dept->common}|dept|browse", 'subModule' => 'dept'); -$lang->admin->menu->company['subMenu']->browseGroup = array('link' => "{$lang->priv}|group|browse", 'subModule' => 'group'); - -$lang->admin->menu->dev['subMenu'] = new stdclass(); -$lang->admin->menu->dev['subMenu']->api = array('link' => "API|dev|api"); -$lang->admin->menu->dev['subMenu']->db = array('link' => "$lang->db|dev|db"); -$lang->admin->menu->dev['subMenu']->editor = array('link' => "$lang->editor|dev|editor"); -$lang->admin->menu->dev['subMenu']->entry = array('link' => "{$lang->admin->entry}|entry|browse", 'subModule' => 'entry'); - -$lang->admin->menu->dev['menuOrder'][5] = 'api'; -$lang->admin->menu->dev['menuOrder'][10] = 'db'; -$lang->admin->menu->dev['menuOrder'][15] = 'editor'; -$lang->admin->menu->dev['menuOrder'][20] = 'entry'; - -$lang->admin->menu->system['subMenu'] = new stdclass(); -$lang->admin->menu->system['subMenu']->mode = array('link' => "{$lang->custom->mode}|custom|mode"); -$lang->admin->menu->system['subMenu']->setModule = array('link' => "{$lang->admin->module}|admin|setmodule"); -$lang->admin->menu->system['subMenu']->backup = array('link' => "{$lang->backup->common}|backup|index"); -$lang->admin->menu->system['subMenu']->trash = array('link' => "{$lang->action->trash}|action|trash"); -$lang->admin->menu->system['subMenu']->safe = array('link' => "$lang->security|admin|safe", 'alias' => 'checkweak,resetpwdsetting'); -$lang->admin->menu->system['subMenu']->cron = array('link' => "{$lang->admin->cron}|cron|index", 'subModule' => 'cron'); -$lang->admin->menu->system['subMenu']->timezone = array('link' => "$lang->timezone|custom|timezone"); -$lang->admin->menu->system['subMenu']->buildIndex = array('link' => "{$lang->admin->buildIndex}|search|buildindex|"); -$lang->admin->menu->system['subMenu']->tableEngine = array('link' => "{$lang->admin->tableEngine}|admin|tableengine|"); -if(version_compare(phpversion(), 5.6) > 0) $lang->admin->menu->system['subMenu']->convertJira = array('link' => "{$lang->convert->importJira}|convert|convertjira|", 'subModule' => 'convert'); - -$lang->admin->dividerMenu = ',company,message,system,'; +//$lang->admin->menu->index = array('link' => "$lang->indexPage|admin|index", 'alias' => 'register,certifytemail,certifyztmobile,ztcompany'); +//$lang->admin->menu->company = array('link' => "{$lang->personnel->common}|company|browse|", 'subModule' => ',user,dept,group,'); +//$lang->admin->menu->model = array('link' => "$lang->model|custom|browsestoryconcept|", 'class' => 'dropdown dropdown-hover', 'exclude' => 'custom-index,custom-set,custom-product,custom-execution,custom-kanban,custom-required,custom-flow,custom-score,custom-feedback,custom-timezone,custom-mode'); +//$lang->admin->menu->custom = array('link' => "{$lang->custom->common}|custom|index", 'exclude' => 'custom-browsestoryconcept,custom-timezone,custom-estimate,custom-code,custom-mode'); +//$lang->admin->menu->extension = array('link' => "{$lang->extension->common}|extension|browse", 'subModule' => 'extension'); +//$lang->admin->menu->dev = array('link' => "$lang->redev|dev|api", 'alias' => 'db', 'subModule' => 'dev,editor,entry'); +//$lang->admin->menu->message = array('link' => "{$lang->message->common}|message|index", 'subModule' => 'message,mail,webhook'); +//$lang->admin->menu->system = array('link' => "{$lang->admin->system}|custom|mode", 'subModule' => 'cron,backup,action,admin,search,convert', 'exclude' => 'admin-index,admin-xuanxuan,admin-register,admin-ztcompany'); +// +//$lang->admin->menu->model['dropMenu'] = new stdclass(); +//$lang->admin->menu->model['dropMenu']->allModel = array('link' => "{$lang->globalSetting}|custom|browsestoryconcept|", 'subModule' => 'measurement,report,sqlbuilder,subject,custom,meetingroom,baseline'); +// +//if($config->edition == 'max') $lang->admin->menu->model['dropMenu']->scrum = array('link' => "{$lang->scrumModel}|auditcl|scrumbrowse|processID=0&browseType=scrum", 'subModule' => 'auditcl,process,activity,zoutput,classify,'); +//$lang->admin->menu->model['dropMenu']->waterfall = array('link' => "{$lang->waterfallModel}|stage|setType|", 'subModule' => 'stage,auditcl,cmcl,process,activity,zoutput,classify,reviewcl,reviewsetting,design'); +// +//$lang->admin->menu->allModel['subMenu'] = new stdclass(); +//$lang->admin->menu->allModel['subMenu']->storyConcept = array('link' => "{$lang->storyConcept}|custom|browsestoryconcept|"); +//$lang->admin->menu->allModel['subMenu']->code = array('link' => "{$lang->code}|custom|code|"); +// +//$lang->admin->menu->allModel['menuOrder'][5] = 'storyConcept'; +//$lang->admin->menu->allModel['menuOrder'][30] = 'code'; +// +//$lang->admin->menu->waterfall['subMenu'] = new stdclass(); +//$lang->admin->menu->waterfall['subMenu']->stage = array('link' => "{$lang->stage->common}|stage|setType|", 'subModule' => 'stage'); +// +///* Admin menu order. */ +//$lang->admin->menuOrder[5] = 'index'; +//$lang->admin->menuOrder[10] = 'company'; +//$lang->admin->menuOrder[15] = 'model'; +//$lang->admin->menuOrder[20] = 'custom'; +//$lang->admin->menuOrder[25] = 'message'; +//$lang->admin->menuOrder[30] = 'extension'; +//$lang->admin->menuOrder[35] = 'dev'; +//$lang->admin->menuOrder[40] = 'system'; +// +//$lang->admin->menu->message['subMenu'] = new stdclass(); +//$lang->admin->menu->message['subMenu']->message = array(); +//$lang->admin->menu->message['subMenu']->mail = array('link' => "{$lang->mail->common}|mail|index", 'subModule' => 'mail'); +//$lang->admin->menu->message['subMenu']->webhook = array('link' => "Webhook|webhook|browse", 'subModule' => 'webhook'); +//$lang->admin->menu->message['subMenu']->browser = array('link' => "$lang->browser|message|browser"); +//$lang->admin->menu->message['subMenu']->setting = array('link' => "$lang->settings|message|setting"); +// +//$lang->admin->menu->message['menuOrder'][5] = 'mail'; +//$lang->admin->menu->message['menuOrder'][10] = 'webhook'; +//$lang->admin->menu->message['menuOrder'][15] = 'browser'; +//$lang->admin->menu->message['menuOrder'][20] = 'setting'; +// +//$lang->admin->menu->company['subMenu'] = new stdclass(); +//$lang->admin->menu->company['subMenu']->browseUser = array('link' => "{$lang->user->common}|company|browse", 'subModule' => 'user'); +//$lang->admin->menu->company['subMenu']->dept = array('link' => "{$lang->dept->common}|dept|browse", 'subModule' => 'dept'); +//$lang->admin->menu->company['subMenu']->browseGroup = array('link' => "{$lang->priv}|group|browse", 'subModule' => 'group'); +// +//$lang->admin->menu->dev['subMenu'] = new stdclass(); +//$lang->admin->menu->dev['subMenu']->api = array('link' => "API|dev|api"); +//$lang->admin->menu->dev['subMenu']->db = array('link' => "$lang->db|dev|db"); +//$lang->admin->menu->dev['subMenu']->editor = array('link' => "$lang->editor|dev|editor"); +//$lang->admin->menu->dev['subMenu']->entry = array('link' => "{$lang->admin->entry}|entry|browse", 'subModule' => 'entry'); +// +//$lang->admin->menu->dev['menuOrder'][5] = 'api'; +//$lang->admin->menu->dev['menuOrder'][10] = 'db'; +//$lang->admin->menu->dev['menuOrder'][15] = 'editor'; +//$lang->admin->menu->dev['menuOrder'][20] = 'entry'; +// +//$lang->admin->menu->system['subMenu'] = new stdclass(); +//$lang->admin->menu->system['subMenu']->mode = array('link' => "{$lang->custom->mode}|custom|mode"); +//$lang->admin->menu->system['subMenu']->setModule = array('link' => "{$lang->admin->module}|admin|setmodule"); +//$lang->admin->menu->system['subMenu']->backup = array('link' => "{$lang->backup->common}|backup|index"); +//$lang->admin->menu->system['subMenu']->trash = array('link' => "{$lang->action->trash}|action|trash"); +//$lang->admin->menu->system['subMenu']->safe = array('link' => "$lang->security|admin|safe", 'alias' => 'checkweak,resetpwdsetting'); +//$lang->admin->menu->system['subMenu']->cron = array('link' => "{$lang->admin->cron}|cron|index", 'subModule' => 'cron'); +//$lang->admin->menu->system['subMenu']->timezone = array('link' => "$lang->timezone|custom|timezone"); +//$lang->admin->menu->system['subMenu']->buildIndex = array('link' => "{$lang->admin->buildIndex}|search|buildindex|"); +//$lang->admin->menu->system['subMenu']->tableEngine = array('link' => "{$lang->admin->tableEngine}|admin|tableengine|"); +//if(version_compare(phpversion(), 5.6) > 0) $lang->admin->menu->system['subMenu']->convertJira = array('link' => "{$lang->convert->importJira}|convert|convertjira|", 'subModule' => 'convert'); +// +//$lang->admin->dividerMenu = ',company,message,system,'; $lang->subject->menu = new stdclass(); $lang->subject->menu->storyConcept = array('link' => "{$lang->storyConcept}|custom|browsestoryconcept|"); diff --git a/module/common/model.php b/module/common/model.php index 504f4c49a8..d5a533f37a 100644 --- a/module/common/model.php +++ b/module/common/model.php @@ -913,9 +913,9 @@ class commonModel extends model */ public static function printHomeButton($tab) { - global $lang; - global $config; + global $lang, $config, $app; + if($tab == 'admin') $app->control->loadModel('admin')->setMenu(); if(!$tab) return; $icon = zget($lang->navIcons, $tab, ''); From e7468f169986e79b76973f2e70d95545d4055d26 Mon Sep 17 00:00:00 2001 From: guofeilong Date: Tue, 31 Jan 2023 08:27:03 +0800 Subject: [PATCH 005/191] * code for css in admin.html --- module/admin/css/index.css | 5 +++-- module/admin/view/index.html.php | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/module/admin/css/index.css b/module/admin/css/index.css index 434a6828ab..3a060cdaf5 100755 --- a/module/admin/css/index.css +++ b/module/admin/css/index.css @@ -12,9 +12,10 @@ .settings-list > .setting-box {flex: 0 0 20%; padding: 18px 0;} .plugin-list {display: flex; flex-wrap: wrap; padding: 12px 4px 4px 4px;} -.plugin-list > .plugin-item {flex: 1 1 30%; padding: 16px 4px; border: 1px solid #EDEEF2; border-radius: 4px; margin-right: 16px; padding: 0 10px; margin-bottom: 16px;} +.plugin-list > .plugin-item {flex: 1 1 30%; padding: 16px 4px; border: 1px solid #EDEEF2; border-radius: 4px; margin-right: 16px; margin-bottom: 16px;} .plugin-list > .plugin-item .ext-download {float: right; padding: 6px 0px;} -.plugin-list > .plugin-item .extension-desc {width: 175px; white-space: nowrap; overflow: hidden;} +.plugin-list > .plugin-item > .plug-title {height: 16px; overflow: hidden;} +.plugin-list > .plugin-item .extension-desc {overflow: hidden; height: 16px;} .bottom.flex > .official {flex: 1 1 30%; margin-right: 20px;} .bottom.flex > .openClass {flex: 1 1 60%;} diff --git a/module/admin/view/index.html.php b/module/admin/view/index.html.php index 7ea660e9e2..07a6b96023 100755 --- a/module/admin/view/index.html.php +++ b/module/admin/view/index.html.php @@ -34,7 +34,7 @@
-

name;?>

+

name;?>

desc);?>

From 0959b76706906bd4d1d115379d4b09a89a3da69a Mon Sep 17 00:00:00 2001 From: guofeilong Date: Tue, 31 Jan 2023 09:14:53 +0800 Subject: [PATCH 006/191] * code for css in plug --- module/admin/css/index.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/admin/css/index.css b/module/admin/css/index.css index 3a060cdaf5..ea345fbbd3 100755 --- a/module/admin/css/index.css +++ b/module/admin/css/index.css @@ -12,7 +12,7 @@ .settings-list > .setting-box {flex: 0 0 20%; padding: 18px 0;} .plugin-list {display: flex; flex-wrap: wrap; padding: 12px 4px 4px 4px;} -.plugin-list > .plugin-item {flex: 1 1 30%; padding: 16px 4px; border: 1px solid #EDEEF2; border-radius: 4px; margin-right: 16px; margin-bottom: 16px;} +.plugin-list > .plugin-item {flex: 1 1 26%; padding: 16px 4px; border: 1px solid #EDEEF2; border-radius: 4px; margin-right: 16px; margin-bottom: 16px; width: 0px;} .plugin-list > .plugin-item .ext-download {float: right; padding: 6px 0px;} .plugin-list > .plugin-item > .plug-title {height: 16px; overflow: hidden;} .plugin-list > .plugin-item .extension-desc {overflow: hidden; height: 16px;} From ffe1ccdbe8e418f7882beebaced83de2cdef0910 Mon Sep 17 00:00:00 2001 From: guofeilong Date: Tue, 31 Jan 2023 10:25:38 +0800 Subject: [PATCH 007/191] * code for lang --- module/admin/css/index.css | 6 +++--- module/admin/lang/de.php | 16 +++++++++++----- module/admin/lang/en.php | 18 ++++++++++++------ module/admin/lang/fr.php | 16 +++++++++++----- module/admin/lang/vi.php | 17 ++++++++++++----- module/admin/lang/zh-cn.php | 18 ++++++++++-------- module/admin/view/index.html.php | 6 +++++- 7 files changed, 64 insertions(+), 33 deletions(-) diff --git a/module/admin/css/index.css b/module/admin/css/index.css index ea345fbbd3..1fec45f6e9 100755 --- a/module/admin/css/index.css +++ b/module/admin/css/index.css @@ -2,7 +2,7 @@ #zentaoLinks {margin-top: 20px;} #zentaoLinks .panel .panel-heading {padding: 6px 10px;} .admin {display: flex; background: unset;} -.admin > .main {flex: 1 1 60%; padding-right: 10px;} +.admin > .main {flex: 1 1 60%; padding-right: 20px;} .admin > .side {flex: 1 1 40%; padding-left: 10px;} .panel-title {padding: 10px 0px;} .flex {display: flex;} @@ -20,6 +20,6 @@ .bottom.flex > .official {flex: 1 1 30%; margin-right: 20px;} .bottom.flex > .openClass {flex: 1 1 60%;} -.official.panel > .main-panel {min-height: 200px;} .official-img {background-image: url('/static/images/wechat.jpg'); background-repeat: no-repeat; background-size: contain; flex: 1 1 50%; aspect-ratio: 1 / 1; background-position: center;} -.official-content {flex: 0 0 50%;} +.official-content {flex: 0 0 50%; display: flex; flex-direction: column; justify-content: center;} +.official-content > .content {color: #838A9D;} diff --git a/module/admin/lang/de.php b/module/admin/lang/de.php index 47418888f7..f0f7ca2c3c 100755 --- a/module/admin/lang/de.php +++ b/module/admin/lang/de.php @@ -25,11 +25,17 @@ $lang->admin->resetPWDSetting = 'Reset password Setting'; $lang->admin->tableEngine = 'Table Engine'; $lang->admin->setModuleIndex = 'Set Module'; -$lang->admin->api = 'API'; -$lang->admin->log = 'Log'; -$lang->admin->setting = 'Einstellungen'; -$lang->admin->days = 'Gültige Tage'; -$lang->admin->resetPWDByMail = 'Reset the password via the email'; +$lang->admin->api = 'API'; +$lang->admin->log = 'Log'; +$lang->admin->setting = 'Einstellungen'; +$lang->admin->pluginRecommendation = 'Recommended plug-ins'; +$lang->admin->zentaoInfo = 'ZenTao information'; +$lang->admin->officialAccount = 'WeChat Official Account'; +$lang->admin->publicClass = 'Public class'; +$lang->admin->days = 'Gültige Tage'; +$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...'; diff --git a/module/admin/lang/en.php b/module/admin/lang/en.php index 914214cb1a..6553136041 100755 --- a/module/admin/lang/en.php +++ b/module/admin/lang/en.php @@ -25,11 +25,17 @@ $lang->admin->resetPWDSetting = 'Reset password Setting'; $lang->admin->tableEngine = 'Table Engine'; $lang->admin->setModuleIndex = 'Set Module'; -$lang->admin->api = 'API'; -$lang->admin->log = 'Log'; -$lang->admin->setting = 'Setting'; -$lang->admin->days = 'Valid Day'; -$lang->admin->resetPWDByMail = 'Reset the password via the email'; +$lang->admin->api = 'API'; +$lang->admin->log = 'Log'; +$lang->admin->setting = 'Setting'; +$lang->admin->pluginRecommendation = 'Recommended plug-ins'; +$lang->admin->zentaoInfo = 'ZenTao information'; +$lang->admin->officialAccount = 'WeChat Official Account'; +$lang->admin->publicClass = 'Public class'; +$lang->admin->days = 'Valid Day'; +$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...'; @@ -141,4 +147,4 @@ $lang->admin->safe->resetPWDList[0] = 'Off'; $lang->admin->safe->noticeMode = 'The password will be checked when creating and modifying user information, and changing passwords.'; $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.'; \ No newline at end of file +$lang->admin->safe->noticeGd = 'Your server does not have GD module installed, you cannot use the Captcha function, Please use it after installation.'; diff --git a/module/admin/lang/fr.php b/module/admin/lang/fr.php index 745c72f69b..97c4bacb02 100755 --- a/module/admin/lang/fr.php +++ b/module/admin/lang/fr.php @@ -25,11 +25,17 @@ $lang->admin->resetPWDSetting = 'Reset password Setting'; $lang->admin->tableEngine = 'Table Engine'; $lang->admin->setModuleIndex = 'Set Module'; -$lang->admin->api = 'API'; -$lang->admin->log = 'Log'; -$lang->admin->setting = 'Paramétrage'; -$lang->admin->days = 'Durée de conservation'; -$lang->admin->resetPWDByMail = 'Reset the password via the email'; +$lang->admin->api = 'API'; +$lang->admin->log = 'Log'; +$lang->admin->setting = 'Paramétrage'; +$lang->admin->pluginRecommendation = 'Recommended plug-ins'; +$lang->admin->zentaoInfo = 'ZenTao information'; +$lang->admin->officialAccount = 'WeChat Official Account'; +$lang->admin->publicClass = 'Public class'; +$lang->admin->days = 'Durée de conservation'; +$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...'; diff --git a/module/admin/lang/vi.php b/module/admin/lang/vi.php index 4b6e64b021..3c099f1faf 100755 --- a/module/admin/lang/vi.php +++ b/module/admin/lang/vi.php @@ -22,10 +22,17 @@ $lang->admin->captcha = 'Mã xác thực'; $lang->admin->getCaptcha = 'Gửi Mã xác thực'; $lang->admin->register = 'Register'; -$lang->admin->api = 'API'; -$lang->admin->log = 'Nhật ký'; -$lang->admin->setting = 'Thiết lập'; -$lang->admin->days = 'Ngày hợp lệ'; +$lang->admin->api = 'API'; +$lang->admin->log = 'Nhật ký'; +$lang->admin->setting = 'Thiết lập'; +$lang->admin->pluginRecommendation = 'Recommended plug-ins'; +$lang->admin->zentaoInfo = 'ZenTao information'; +$lang->admin->officialAccount = 'WeChat Official Account'; +$lang->admin->publicClass = 'Public class'; +$lang->admin->days = 'Ngày hợp lệ'; +$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->info = new stdclass(); $lang->admin->info->version = 'Phiên bản hiện tại là %s. '; @@ -84,4 +91,4 @@ $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.'; \ No newline at end of file +$lang->admin->safe->noticeGd = 'Your server does not have GD module installed, you cannot use the Captcha function, Please use it after installation.'; diff --git a/module/admin/lang/zh-cn.php b/module/admin/lang/zh-cn.php index 6a37c3cd4a..bd5c9ccf23 100755 --- a/module/admin/lang/zh-cn.php +++ b/module/admin/lang/zh-cn.php @@ -31,17 +31,19 @@ $lang->admin->setting = '设置'; $lang->admin->pluginRecommendation = '插件推荐'; $lang->admin->zentaoInfo = '禅道信息'; $lang->admin->officialAccount = '官方公众号'; -$lang->admin->openClass = '公开课'; +$lang->admin->publicClass = '公开课'; $lang->admin->days = '日志保存天数'; $lang->admin->resetPWDByMail = '通过邮箱重置密码'; +$lang->admin->followUs = '扫码关注公众号'; +$lang->admin->followUsContent = '随时查看禅道动态、活动信息、也可获取帮助支持'; -$lang->admin->changeEngine = "更换到InnoDB"; -$lang->admin->changingTable = '正在更换数据表%s引擎...'; -$lang->admin->changeSuccess = '已经更换数据表%s引擎为InnoDB。'; -$lang->admin->changeFail = "更换数据表%s引擎失败,原因:%s。"; -$lang->admin->errorInnodb = '您当前的数据库不支持使用InnoDB数据表引擎。'; -$lang->admin->changeFinished = "更换数据库引擎完毕。"; -$lang->admin->engineInfo = "表%s的引擎是%s。"; +$lang->admin->changeEngine = "更换到InnoDB"; +$lang->admin->changingTable = '正在更换数据表%s引擎...'; +$lang->admin->changeSuccess = '已经更换数据表%s引擎为InnoDB。'; +$lang->admin->changeFail = "更换数据表%s引擎失败,原因:%s。"; +$lang->admin->errorInnodb = '您当前的数据库不支持使用InnoDB数据表引擎。'; +$lang->admin->changeFinished = "更换数据库引擎完毕。"; +$lang->admin->engineInfo = "表%s的引擎是%s。"; $lang->admin->engineSummary['hasMyISAM'] = "有%s个表不是InnoDB引擎"; $lang->admin->engineSummary['allInnoDB'] = "所有的表都是InnoDB引擎了"; diff --git a/module/admin/view/index.html.php b/module/admin/view/index.html.php index 07a6b96023..c6de813d35 100755 --- a/module/admin/view/index.html.php +++ b/module/admin/view/index.html.php @@ -46,11 +46,15 @@
+

admin->followUs?>

+
admin->followUsContent?>
-
admin->openClass?>
+
admin->publicClass?>
+
+
From 0ab09e26c2da208e9d3094d016470ed2bee46443 Mon Sep 17 00:00:00 2001 From: guofeilong Date: Tue, 31 Jan 2023 10:46:16 +0800 Subject: [PATCH 008/191] * code for task #83433 --- module/admin/css/index.css | 6 +++++- module/admin/view/index.html.php | 12 ++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/module/admin/css/index.css b/module/admin/css/index.css index 1fec45f6e9..bae5ed20db 100755 --- a/module/admin/css/index.css +++ b/module/admin/css/index.css @@ -18,8 +18,12 @@ .plugin-list > .plugin-item .extension-desc {overflow: hidden; height: 16px;} .bottom.flex > .official {flex: 1 1 30%; margin-right: 20px;} -.bottom.flex > .openClass {flex: 1 1 60%;} +.bottom.flex > .publicClass {flex: 1 1 60%;} .official-img {background-image: url('/static/images/wechat.jpg'); background-repeat: no-repeat; background-size: contain; flex: 1 1 50%; aspect-ratio: 1 / 1; background-position: center;} .official-content {flex: 0 0 50%; display: flex; flex-direction: column; justify-content: center;} .official-content > .content {color: #838A9D;} + +.classList > .classItem {flex: 0 0 50%;} +.classItem > .classImg {background-image: url('/static/images/wechat.jpg'); background-repeat: no-repeat; background-size: contain; flex: 1 1 50%; aspect-ratio: 1 / 1; } +.classItem > .classContent {flex: 1 1 50%;} diff --git a/module/admin/view/index.html.php b/module/admin/view/index.html.php index c6de813d35..85d19c2a24 100755 --- a/module/admin/view/index.html.php +++ b/module/admin/view/index.html.php @@ -51,9 +51,17 @@
-
+
admin->publicClass?>
-
+
+
+
+
+
+
+
+
+
From e11aa068a3e14e22bb47ea4cb3ba746dcc91f527 Mon Sep 17 00:00:00 2001 From: guofeilong Date: Tue, 31 Jan 2023 10:54:49 +0800 Subject: [PATCH 009/191] * code for style in offical-content --- module/admin/css/index.css | 3 ++- module/admin/view/index.html.php | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/module/admin/css/index.css b/module/admin/css/index.css index bae5ed20db..b2a3fe6eb1 100755 --- a/module/admin/css/index.css +++ b/module/admin/css/index.css @@ -22,7 +22,8 @@ .official-img {background-image: url('/static/images/wechat.jpg'); background-repeat: no-repeat; background-size: contain; flex: 1 1 50%; aspect-ratio: 1 / 1; background-position: center;} .official-content {flex: 0 0 50%; display: flex; flex-direction: column; justify-content: center;} -.official-content > .content {color: #838A9D;} +.official-content > .content {color: #838A9D; font-size: 12px;} +.official-content > .title {color: #313C52; font-size: 13px;} .classList > .classItem {flex: 0 0 50%;} .classItem > .classImg {background-image: url('/static/images/wechat.jpg'); background-repeat: no-repeat; background-size: contain; flex: 1 1 50%; aspect-ratio: 1 / 1; } diff --git a/module/admin/view/index.html.php b/module/admin/view/index.html.php index 85d19c2a24..650d5840d9 100755 --- a/module/admin/view/index.html.php +++ b/module/admin/view/index.html.php @@ -46,7 +46,7 @@
-

admin->followUs?>

+
admin->followUs?>
admin->followUsContent?>
From d795f17a8e185c87c00d663d09ebe05e840c0722 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Tue, 31 Jan 2023 13:23:05 +0800 Subject: [PATCH 010/191] * Finish task #83329. --- .../xuan/common/ext/lang/zh-cn/xuanxuan.php | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/xuanxuan/extension/xuan/common/ext/lang/zh-cn/xuanxuan.php b/xuanxuan/extension/xuan/common/ext/lang/zh-cn/xuanxuan.php index d38395c37b..ce9fc2f385 100644 --- a/xuanxuan/extension/xuan/common/ext/lang/zh-cn/xuanxuan.php +++ b/xuanxuan/extension/xuan/common/ext/lang/zh-cn/xuanxuan.php @@ -1,28 +1,28 @@ xuanxuan = new stdclass(); -if($config->vision != 'lite') -{ - $lang->admin->menu->xuanxuan = array('link' => '聊天|admin|xuanxuan', 'subModule' => 'client,setting'); - $lang->admin->menuOrder[6] = 'xuanxuan'; -} - -$lang->admin->menu->xuanxuan['subMenu'] = new stdclass(); -$lang->admin->menu->xuanxuan['subMenu']->index = array('link' => '首页|admin|xuanxuan'); -$lang->admin->menu->xuanxuan['subMenu']->setting = array('link' => '参数|setting|xuanxuan'); -$lang->admin->menu->xuanxuan['subMenu']->update = array('link' => '更新|client|browse', 'subModule' => 'client'); - -$lang->admin->menu->xuanxuan['menuOrder'][0] = 'index'; -$lang->admin->menu->xuanxuan['menuOrder'][5] = 'setting'; -$lang->admin->menu->xuanxuan['menuOrder'][10] = 'update'; +//if($config->vision != 'lite') +//{ +// $lang->admin->menu->xuanxuan = array('link' => '聊天|admin|xuanxuan', 'subModule' => 'client,setting'); +// $lang->admin->menuOrder[6] = 'xuanxuan'; +//} +// +//$lang->admin->menu->xuanxuan['subMenu'] = new stdclass(); +//$lang->admin->menu->xuanxuan['subMenu']->index = array('link' => '首页|admin|xuanxuan'); +//$lang->admin->menu->xuanxuan['subMenu']->setting = array('link' => '参数|setting|xuanxuan'); +//$lang->admin->menu->xuanxuan['subMenu']->update = array('link' => '更新|client|browse', 'subModule' => 'client'); +// +//$lang->admin->menu->xuanxuan['menuOrder'][0] = 'index'; +//$lang->admin->menu->xuanxuan['menuOrder'][5] = 'setting'; +//$lang->admin->menu->xuanxuan['menuOrder'][10] = 'update'; global $config; -if($config->edition != 'open') -{ - $lang->admin->menu->xuanxuan['subModule'] = 'client,setting,conference'; - $lang->admin->menu->xuanxuan['subMenu']->conference = array('link' => '音视频|conference|admin'); - $lang->admin->menu->xuanxuan['menuOrder'][7] = 'conference'; - $lang->navGroup->conference = 'admin'; -} +//if($config->edition != 'open') +//{ +// $lang->admin->menu->xuanxuan['subModule'] = 'client,setting,conference'; +// $lang->admin->menu->xuanxuan['subMenu']->conference = array('link' => '音视频|conference|admin'); +// $lang->admin->menu->xuanxuan['menuOrder'][7] = 'conference'; +// $lang->navGroup->conference = 'admin'; +//} $lang->navGroup->im = 'admin'; $lang->navGroup->setting = 'admin'; From 062200535c2b54a09eb91a22d43f20a4f1f53d13 Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Tue, 31 Jan 2023 13:54:21 +0800 Subject: [PATCH 011/191] * Modify page style. --- module/admin/config.php | 32 +++++++++++ module/admin/control.php | 22 ++++++-- module/admin/model.php | 93 ++++++++++++++++++++++++++++++++ module/admin/view/index.html.php | 31 ++++++----- 4 files changed, 162 insertions(+), 16 deletions(-) diff --git a/module/admin/config.php b/module/admin/config.php index 858e34106c..0a9ddb1c0f 100755 --- a/module/admin/config.php +++ b/module/admin/config.php @@ -23,3 +23,35 @@ $config->admin->menuModuleGroup['model']['custom|required'] = array('project', $config->admin->menuModuleGroup['feature']['custom|set'] = array('todo', 'feedback', 'user', 'block', 'story', 'task', 'bug', 'testcase', 'testtask', 'feedback', 'user'); $config->admin->menuModuleGroup['feature']['custom|required'] = array('bug', 'doc', 'product', 'story', 'productplan', 'release', 'task', 'bug', 'testcase', 'testsuite', 'testtask', 'testreport', 'caselib', 'doc', 'feedback', 'user'); $config->admin->menuModuleGroup['template']['custom|set'] = array('baseline'); + +$config->admin->plugIns[203] = new stdClass(); +$config->admin->plugIns[203]->name = '人力资源日历'; +$config->admin->plugIns[203]->desc = '禅道人力资源日历插件可以帮助项目管理者查看不同维度下的消耗工时、未完成工作量、并行工作量及负载率,同时组织维度待处理状态下实现了模拟负载的功能,帮助管理者详细了解成员的工作负载情况,更好的进行项目人力资源调度。'; +$config->admin->plugIns[203]->viewLink = 'https://www.zentao.net/extension-viewExt-203.html'; + +$config->admin->plugIns[198] = new stdClass(); +$config->admin->plugIns[198]->name = '需求池插件'; +$config->admin->plugIns[198]->desc = '本插件为禅道需求池管理插件,包括:创建需求池 需求池权限管理 收集需求并向需求池录入需求 记录需求提出人信息 评审需求 拆分用户需求、研发需求 需求跟踪矩阵'; +$config->admin->plugIns[198]->viewLink = 'https://www.zentao.net/extension-viewExt-198.html'; + +$config->admin->plugIns[27] = new stdClass(); +$config->admin->plugIns[27]->name = 'Excel导出/导入'; +$config->admin->plugIns[27]->desc = '安装该插件可以支持Excel导出和任务、需求、Bug、用例导入功能。更新提示:新增任务、需求、Bug的excel导入功能。'; +$config->admin->plugIns[27]->viewLink = 'https://www.zentao.net/extension-viewExt-27.html'; + +$config->admin->plugIns[26] = new stdClass(); +$config->admin->plugIns[26]->name = '甘特图'; +$config->admin->plugIns[26]->desc = '禅道甘特图插件 运用此插件可以查看甘特图,维护任务关系。'; +$config->admin->plugIns[26]->viewLink = 'https://www.zentao.net/extension-viewExt-26.html'; + +$config->admin->plugIns[30] = new stdClass(); +$config->admin->plugIns[30]->name = '日志日历'; +$config->admin->plugIns[30]->desc = '运用此插件可以实现工作日志的添加、编辑、查看、删除、导出等功能,方便用户管理工作日志。'; +$config->admin->plugIns[30]->viewLink = 'https://www.zentao.net/extension-viewExt-30.html'; + +//$config->admin->plugIns[] = new stdClass(); +//$config->admin->plugIns[]->name = ''; +//$config->admin->plugIns[]->desc = ''; +//$config->admin->plugIns[]->viewLink = 'https://www.zentao.net/extension-viewExt-203.html'; + +$config->admin->apiRoot = 'https://www.zentao.net/'; diff --git a/module/admin/control.php b/module/admin/control.php index f05ab4299d..52e29309a3 100755 --- a/module/admin/control.php +++ b/module/admin/control.php @@ -34,11 +34,25 @@ class admin extends control $this->loadModel('misc'); - $extensions = $this->loadModel('extension')->getExtensionsByAPI('byUpdatedTime', '', 0, 6); + /* Check internet. */ + $curl = curl_init(); + curl_setopt($curl, CURLOPT_URL, 'https://api.zentao.net/extension-apiGetExtensions.json'); + curl_setopt($curl, CURLOPT_TIMEOUT_MS, 1000); + curl_setopt($curl, CURLOPT_CONNECTTIMEOUT_MS, 1000); + curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); + curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); + curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); + $connected = (bool)curl_exec($curl); + curl_close($curl); - $this->view->title = $this->lang->admin->common; - $this->view->position[] = $this->lang->admin->index; - $this->view->extensions = isset($extensions->extensions) ? (array)$extensions->extensions : array(); + $clientLang = $this->app->getClientLang(); + + $this->view->title = $this->lang->admin->common; + $this->view->position[] = $this->lang->admin->index; + $this->view->extensions = $this->admin->getExtensionsByAPI('extension', 6, $connected); + $this->view->hasInternet = $connected; + $this->view->publicClass = ($connected and strpos($clientLang, 'zh') === 0) ? $this->admin->getPublicClassByAPI() : array(); + $this->view->clientLang = $clientLang; $this->display(); } diff --git a/module/admin/model.php b/module/admin/model.php index bff5a3bc9d..bab50d297b 100755 --- a/module/admin/model.php +++ b/module/admin/model.php @@ -13,6 +13,11 @@ loadModel('extension')->getExtensionsByAPI($searchType, $param, 0, $limit); + $extensions = isset($extensions->extensions) ? (array)$extensions->extensions : array(); + } + else + { + if($this->config->edition == 'open') + { + $extensions = array( + $this->config->admin->plugIns[27], + $this->config->admin->plugIns[26], + $this->config->admin->plugIns[30] + ); + } + else + { + $extensions = array( + $this->config->admin->plugIns[198], + $this->config->admin->plugIns[203] + ); + } + } + + return $extensions; + } + + /** + * Fetch data from an api. + * + * @param string $url + * @access public + * @return mixed + */ + public function fetchAPI($url) + { + $version = $this->loadModel('upgrade')->getOpenVersion(str_replace('.', '_', $this->config->version)); + $version = str_replace('_', '.', $version); + + $url .= (strpos($url, '?') === false ? '?' : '&') . 'lang=' . str_replace('-', '_', $this->app->getClientLang()) . '&managerVersion=' . self::EXT_MANAGER_VERSION . '&zentaoVersion=' . $version; + $result = json_decode(preg_replace('/[[:cntrl:]]/mu', '', common::http($url))); + + if(!isset($result->status)) return false; + if($result->status != 'success') return false; + if(isset($result->data)) return json_decode($result->data); + } + + /** + * Get public class from zentao.net. + * + * @param int $limit + * @access public + * @return void + */ + public function getPublicClassByAPI($limit = 2) + { + $apiURL = $this->config->admin->apiRoot . "publicclass.json"; + $data = $this->fetchAPI($apiURL); + $courses = $data->videos; + + $index = 1; + $publicClass = array(); + foreach($courses as $course) + { + if($index > $limit) return $publicClass; + + $publicClass[$index] = new stdClass(); + $publicClass[$index]->name = $course->title; + $publicClass[$index]->image = $this->config->admin->apiRoot . $course->image->list[0]->smallURL; + $publicClass[$index]->viewLink = $this->config->admin->apiRoot . "{$course->alias}-{$course->id}.html"; + $index++; + } + return $publicClass; + } } diff --git a/module/admin/view/index.html.php b/module/admin/view/index.html.php index 650d5840d9..921593cb0a 100755 --- a/module/admin/view/index.html.php +++ b/module/admin/view/index.html.php @@ -11,6 +11,7 @@ */ ?> +
@@ -28,6 +29,8 @@
10
+ +
admin->pluginRecommendation?>
@@ -40,34 +43,38 @@
+ +
admin->officialAccount?>
-
-
-
-
admin->followUs?>
+
+
+
+
admin->followUs?>
admin->followUsContent?>
+
admin->publicClass?>
-
-
-
-
-
-
-
-
+
+ +
+
+
name;?>
+
+
+
admin->zentaoInfo?>
+
From 73ff7ad4444eb361363ef7d264742fe60932ce53 Mon Sep 17 00:00:00 2001 From: guofeilong Date: Tue, 31 Jan 2023 14:50:09 +0800 Subject: [PATCH 012/191] * code for add style in clientList --- module/admin/view/index.html.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/module/admin/view/index.html.php b/module/admin/view/index.html.php index 921593cb0a..75d3d363aa 100755 --- a/module/admin/view/index.html.php +++ b/module/admin/view/index.html.php @@ -33,7 +33,7 @@
admin->pluginRecommendation?>
-
+
>
@@ -45,14 +45,15 @@
+
admin->officialAccount?>
-
admin->followUs?>
-
admin->followUsContent?>
+
admin->followUs?>
+
admin->followUsContent?>
@@ -61,7 +62,7 @@
admin->publicClass?>
-
+
name;?>
@@ -69,6 +70,7 @@
+
From 85ee9918c09457a3000d61600b747b414cd20452 Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Tue, 31 Jan 2023 15:25:46 +0800 Subject: [PATCH 013/191] * Modify website check. --- module/admin/control.php | 21 ++++++--------------- module/admin/model.php | 23 ++++++++++++++++++++++- 2 files changed, 28 insertions(+), 16 deletions(-) diff --git a/module/admin/control.php b/module/admin/control.php index 52e29309a3..8a7a31e2c4 100755 --- a/module/admin/control.php +++ b/module/admin/control.php @@ -34,24 +34,15 @@ class admin extends control $this->loadModel('misc'); - /* Check internet. */ - $curl = curl_init(); - curl_setopt($curl, CURLOPT_URL, 'https://api.zentao.net/extension-apiGetExtensions.json'); - curl_setopt($curl, CURLOPT_TIMEOUT_MS, 1000); - curl_setopt($curl, CURLOPT_CONNECTTIMEOUT_MS, 1000); - curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); - curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); - curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); - $connected = (bool)curl_exec($curl); - curl_close($curl); - - $clientLang = $this->app->getClientLang(); + $hasInternet = $this->admin->checkInternet(); + $clientLang = $this->app->getClientLang(); $this->view->title = $this->lang->admin->common; $this->view->position[] = $this->lang->admin->index; - $this->view->extensions = $this->admin->getExtensionsByAPI('extension', 6, $connected); - $this->view->hasInternet = $connected; - $this->view->publicClass = ($connected and strpos($clientLang, 'zh') === 0) ? $this->admin->getPublicClassByAPI() : array(); + $this->view->extensions = $this->admin->getExtensionsByAPI('extension', strpos($clientLang, 'zh') === 0 ? 6 : 5, $hasInternet); + $this->view->patches = $this->admin->getExtensionsByAPI('patch', 3, $hasInternet); + $this->view->hasInternet = $hasInternet; + $this->view->publicClass = ($hasInternet and strpos($clientLang, 'zh') === 0) ? $this->admin->getPublicClassByAPI() : array(); $this->view->clientLang = $clientLang; $this->display(); } diff --git a/module/admin/model.php b/module/admin/model.php index bab50d297b..04e69e624c 100755 --- a/module/admin/model.php +++ b/module/admin/model.php @@ -377,7 +377,7 @@ class adminModel extends model * * @param int $limit * @access public - * @return void + * @return array */ public function getPublicClassByAPI($limit = 2) { @@ -399,4 +399,25 @@ class adminModel extends model } return $publicClass; } + + /** + * Check internet. + * + * @access public + * @return bool + */ + public function checkInternet() + { + $curl = curl_init(); + curl_setopt($curl, CURLOPT_URL, 'https://api.zentao.net/extension-apiGetExtensions.json'); + curl_setopt($curl, CURLOPT_TIMEOUT_MS, 1000); + curl_setopt($curl, CURLOPT_CONNECTTIMEOUT_MS, 1000); + curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); + curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); + curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); + $connected = curl_exec($curl); + curl_close($curl); + + return (bool)$connected; + } } From 746bb0da844318aca78218799181248106e62240 Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Tue, 31 Jan 2023 16:14:18 +0800 Subject: [PATCH 014/191] * Modify language check. --- module/admin/control.php | 7 ++++--- module/admin/view/index.html.php | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/module/admin/control.php b/module/admin/control.php index 8a7a31e2c4..bde9def349 100755 --- a/module/admin/control.php +++ b/module/admin/control.php @@ -36,14 +36,15 @@ class admin extends control $hasInternet = $this->admin->checkInternet(); $clientLang = $this->app->getClientLang(); + $langNotCN = common::checkNotCN(); $this->view->title = $this->lang->admin->common; $this->view->position[] = $this->lang->admin->index; - $this->view->extensions = $this->admin->getExtensionsByAPI('extension', strpos($clientLang, 'zh') === 0 ? 6 : 5, $hasInternet); + $this->view->extensions = $this->admin->getExtensionsByAPI('extension', $langNotCN ? 5 : 6, $hasInternet); $this->view->patches = $this->admin->getExtensionsByAPI('patch', 3, $hasInternet); $this->view->hasInternet = $hasInternet; - $this->view->publicClass = ($hasInternet and strpos($clientLang, 'zh') === 0) ? $this->admin->getPublicClassByAPI() : array(); - $this->view->clientLang = $clientLang; + $this->view->publicClass = ($hasInternet and !$langNotCN) ? $this->admin->getPublicClassByAPI() : array(); + $this->view->langNotCN = $langNotCN; $this->display(); } diff --git a/module/admin/view/index.html.php b/module/admin/view/index.html.php index 921593cb0a..1688bddff6 100755 --- a/module/admin/view/index.html.php +++ b/module/admin/view/index.html.php @@ -71,7 +71,7 @@
- +
admin->zentaoInfo?>
From 7af8d535f17eea0d227a406c5d64c11089b04618 Mon Sep 17 00:00:00 2001 From: wangyidong Date: Tue, 31 Jan 2023 16:15:00 +0800 Subject: [PATCH 015/191] * code for task #83439. --- module/admin/config.php | 2 +- module/admin/lang/zh-cn.php | 85 ++++++++--- module/admin/model.php | 136 +++++++++++++++--- module/common/model.php | 2 +- module/extension/control.php | 1 + .../xuan/admin/ext/lang/zh-cn/xuanxuan.php | 7 + .../xuan/common/ext/lang/zh-cn/xuanxuan.php | 5 - 7 files changed, 187 insertions(+), 51 deletions(-) diff --git a/module/admin/config.php b/module/admin/config.php index 858e34106c..c8204d927b 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('backup', 'action|trash', 'admin|xuanxuan', 'admin|license', 'admin|safe', 'custom|timezone', 'search|buildindex', 'admin|tableengine', 'ldap', 'custom|libreoffice'); +$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['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/zh-cn.php b/module/admin/lang/zh-cn.php index ec1cc400d2..3ee65899c4 100755 --- a/module/admin/lang/zh-cn.php +++ b/module/admin/lang/zh-cn.php @@ -178,6 +178,7 @@ $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'] = '二次开发'; @@ -186,57 +187,99 @@ $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|", 'subModule' => 'custom'); +$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']['xuanxuan'] = array('link' => "聊天|admin|xuanxuan|"); -$lang->admin->menuList->setting['subMenu']['license'] = array('link' => "授权信息|admin|license|"); -$lang->admin->menuList->setting['subMenu']['safe'] = array('link' => "安全|admin|safe|"); -$lang->admin->menuList->setting['subMenu']['timezone'] = array('link' => "时区|custom|timezone|", 'subModule' => 'custom'); +$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['subMenu']['ldap'] = array('link' => "LDAP|ldap|set|", 'subModule' => 'ldap'); -$lang->admin->menuList->setting['subMenu']['libreoffice'] = array('link' => "Office|custom|libreoffice|", 'subModule' => 'custom'); -$lang->admin->menuList->setting['dividerMenu'] = ',license,ldap,'; +$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->feature['subMenu']['my'] = array('link' => "地盘|custom|set|module=todo", 'subModule' => 'custom'); -$lang->admin->menuList->feature['subMenu']['product'] = array('link' => "{$lang->productCommon}|custom|product|", 'subModule' => 'custom'); -$lang->admin->menuList->feature['subMenu']['execution'] = array('link' => "{$lang->execution->common}|custom|execution|", 'subModule' => 'custom'); -$lang->admin->menuList->feature['subMenu']['qa'] = array('link' => "测试|custom|required|module=bug", 'subModule' => 'custom'); -$lang->admin->menuList->feature['subMenu']['kanban'] = array('link' => "看板|custom|kanban|", 'subModule' => 'custom'); -$lang->admin->menuList->feature['subMenu']['doc'] = array('link' => "文档|custom|required|module=doc", 'subModule' => 'custom'); -$lang->admin->menuList->feature['subMenu']['feedback'] = array('link' => "反馈|custom|set|module=feedback", 'subModule' => 'custom'); +$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", 'subModule' => 'custom'); +$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|", 'subModule' => 'message'); -$lang->admin->menuList->message['subMenu']['setting'] = array('link' => "设置|message|setting|", 'subModule' => 'message'); +$lang->admin->menuList->message['subMenu']['message'] = array('link' => "浏览器|message|browser|"); +$lang->admin->menuList->message['subMenu']['setting'] = array('link' => "设置|message|setting|"); -$lang->admin->menuList->dev['subMenu']['api'] = array('link' => "API|dev|api|", 'subModule' => 'dev'); -$lang->admin->menuList->dev['subMenu']['db'] = array('link' => "数据库|dev|db|", 'subModule' => 'dev'); -$lang->admin->menuList->dev['subMenu']['editor'] = array('link' => "编辑器|dev|editor|", 'subModule' => 'dev'); +$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'; diff --git a/module/admin/model.php b/module/admin/model.php index bff5a3bc9d..ec4f3af852 100755 --- a/module/admin/model.php +++ b/module/admin/model.php @@ -248,59 +248,149 @@ class adminModel extends model return false; } + /** + * Set admin menu. + * + * @access public + * @return void + */ public function setMenu() { - $this->lang->switcherMenu = $this->getSwitcher(); + $this->sortMenu(); + + $menuKey = $this->getMenuKey(); + if(empty($menuKey)) return; + + $this->lang->switcherMenu = $this->getSwitcher($menuKey); + if(isset($this->lang->admin->menuList->$menuKey)) + { + if(isset($this->lang->admin->menuList->$menuKey['subMenu'])) $this->lang->admin->menu = $this->lang->admin->menuList->$menuKey['subMenu']; + if(isset($this->lang->admin->menuList->$menuKey['menuOrder'])) $this->lang->admin->menuOrder = $this->lang->admin->menuList->$menuKey['menuOrder']; + if(isset($this->lang->admin->menuList->$menuKey['dividerMenu'])) $this->lang->admin->dividerMenu = $this->lang->admin->menuList->$menuKey['dividerMenu']; + } } /** - * Get switcher. + * sort menu. + * + * @access public + * @return void + */ + public function sortMenu() + { + $orders = array(); + $disabled = array(); + foreach($this->lang->admin->menuList as $menuKey => $menu) + { + $menu['disabled'] = false; + if(isset($menu['link'])) + { + 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 = $menu['menuOrder']; + ksort($menuOrder); + /* Check sub menu priv. */ + 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; + } + + $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) + { + $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; + } + + /** + * Get menu key * * @access public * @return string */ - public function getSwitcher() + public function getMenuKey() { - $moduleName = $this->app->rawModule; - $methodName = $this->app->rawMethod; - $paramName = current($this->app->rawParams); - $currentMenu = 'setting'; - $currentMenuName = ''; - $link = $paramName ? helper::createLink($moduleName, $methodName, "param=$paramName") : helper::createLink($moduleName, $methodName); + $moduleName = $this->app->rawModule; + $methodName = $this->app->rawMethod; + $paramName = $this->app->rawParams ? reset($this->app->rawParams) : ''; foreach($this->config->admin->menuGroup as $menuKey => $menuGroup) { if(in_array($moduleName, $menuGroup)) { - $currentMenu = $menuKey; - break; + return $menuKey; } elseif(in_array("$moduleName|$methodName", $menuGroup)) { if($moduleName == 'custom' and ($methodName == 'required' or $methodName == 'set')) { - if(in_array($paramName, $this->config->admin->menuModuleGroup[$menuKey]["custom|$methodName"])) - { - - $currentMenu = $menuKey; - break; - } + if(in_array($paramName, $this->config->admin->menuModuleGroup[$menuKey]["custom|$methodName"])) return $menuKey; } else { - $currentMenu = $menuKey; - break; + return $menuKey; } } } + return null; + } - $currentMenuName = $this->lang->admin->menuList->$currentMenu['name']; + /** + * Get switcher. + * + * @param string $currentMenuKey + * @access public + * @return string + */ + public function getSwitcher($currentMenuKey = 'setting') + { + if(empty($currentMenuKey)) return null; - $output = "
"; diff --git a/module/common/lang/de.php b/module/common/lang/de.php index 400a8dd593..f3f247a320 100644 --- a/module/common/lang/de.php +++ b/module/common/lang/de.php @@ -80,7 +80,7 @@ $lang->noData = 'Kein Datensatz'; $lang->fullscreen = 'Fullscreen'; $lang->retrack = 'Retrack'; $lang->whitelist = 'Weiße Liste'; -$lang->globalSetting = 'Global Setting'; +$lang->globalSetting = 'Common'; $lang->waterfallModel = 'Waterfall'; $lang->scrumModel = 'Scrum'; $lang->all = 'All'; @@ -248,7 +248,7 @@ $lang->indexPage = 'Index'; $lang->model = 'Model'; $lang->redev = 'Develop'; $lang->browser = 'Browser'; -$lang->db = 'Database'; +$lang->database = 'Database'; $lang->editor = 'Editor'; $lang->timezone = 'Timezone'; $lang->security = 'Security'; diff --git a/module/common/lang/en.php b/module/common/lang/en.php index 7986be63c8..30eeff46b7 100644 --- a/module/common/lang/en.php +++ b/module/common/lang/en.php @@ -80,7 +80,7 @@ $lang->noData = 'No data.'; $lang->fullscreen = 'Fullscreen'; $lang->retrack = 'Retrack'; $lang->whitelist = 'Access whitelist'; -$lang->globalSetting = 'Global Setting'; +$lang->globalSetting = 'Common'; $lang->waterfallModel = 'Waterfall'; $lang->scrumModel = 'Scrum'; $lang->all = 'All'; @@ -248,7 +248,7 @@ $lang->indexPage = 'Index'; $lang->model = 'Model'; $lang->redev = 'Develop'; $lang->browser = 'Browser'; -$lang->db = 'Database'; +$lang->database = 'Database'; $lang->editor = 'Editor'; $lang->timezone = 'Timezone'; $lang->security = 'Security'; diff --git a/module/common/lang/fr.php b/module/common/lang/fr.php index e5fffcfc7d..20c52b0b7d 100644 --- a/module/common/lang/fr.php +++ b/module/common/lang/fr.php @@ -80,7 +80,7 @@ $lang->noData = 'No data.'; $lang->fullscreen = 'Plein Ecran'; $lang->retrack = 'Réduire'; $lang->whitelist = 'Liste blanche'; -$lang->globalSetting = 'Global Setting'; +$lang->globalSetting = 'Common'; $lang->waterfallModel = 'Waterfall'; $lang->scrumModel = 'Scrum'; $lang->all = 'All'; @@ -248,7 +248,7 @@ $lang->indexPage = 'Index'; $lang->model = 'Model'; $lang->redev = 'Develop'; $lang->browser = 'Browser'; -$lang->db = 'Database'; +$lang->database = 'Database'; $lang->editor = 'Editor'; $lang->timezone = 'Timezone'; $lang->security = 'Security'; diff --git a/module/common/lang/menu.php b/module/common/lang/menu.php index 437636fe0c..c5b2aab74e 100644 --- a/module/common/lang/menu.php +++ b/module/common/lang/menu.php @@ -571,83 +571,7 @@ $lang->company->menuOrder[25] = 'batchAddUser'; $lang->company->menuOrder[30] = 'addUser'; /* Admin menu. */ -$lang->admin->menu = new stdclass(); -//$lang->admin->menu->index = array('link' => "$lang->indexPage|admin|index", 'alias' => 'register,certifytemail,certifyztmobile,ztcompany'); -//$lang->admin->menu->company = array('link' => "{$lang->personnel->common}|company|browse|", 'subModule' => ',user,dept,group,'); -//$lang->admin->menu->model = array('link' => "$lang->model|custom|browsestoryconcept|", 'class' => 'dropdown dropdown-hover', 'exclude' => 'custom-index,custom-set,custom-product,custom-execution,custom-kanban,custom-required,custom-flow,custom-score,custom-feedback,custom-timezone,custom-mode'); -//$lang->admin->menu->custom = array('link' => "{$lang->custom->common}|custom|index", 'exclude' => 'custom-browsestoryconcept,custom-timezone,custom-estimate,custom-code,custom-mode'); -//$lang->admin->menu->extension = array('link' => "{$lang->extension->common}|extension|browse", 'subModule' => 'extension'); -//$lang->admin->menu->dev = array('link' => "$lang->redev|dev|api", 'alias' => 'db', 'subModule' => 'dev,editor,entry'); -//$lang->admin->menu->message = array('link' => "{$lang->message->common}|message|index", 'subModule' => 'message,mail,webhook'); -//$lang->admin->menu->system = array('link' => "{$lang->admin->system}|custom|mode", 'subModule' => 'cron,backup,action,admin,search,convert', 'exclude' => 'admin-index,admin-xuanxuan,admin-register,admin-ztcompany'); -// -//$lang->admin->menu->model['dropMenu'] = new stdclass(); -//$lang->admin->menu->model['dropMenu']->allModel = array('link' => "{$lang->globalSetting}|custom|browsestoryconcept|", 'subModule' => 'measurement,report,sqlbuilder,subject,custom,meetingroom,baseline'); -// -//if($config->edition == 'max') $lang->admin->menu->model['dropMenu']->scrum = array('link' => "{$lang->scrumModel}|auditcl|scrumbrowse|processID=0&browseType=scrum", 'subModule' => 'auditcl,process,activity,zoutput,classify,'); -//$lang->admin->menu->model['dropMenu']->waterfall = array('link' => "{$lang->waterfallModel}|stage|setType|", 'subModule' => 'stage,auditcl,cmcl,process,activity,zoutput,classify,reviewcl,reviewsetting,design'); -// -//$lang->admin->menu->allModel['subMenu'] = new stdclass(); -//$lang->admin->menu->allModel['subMenu']->storyConcept = array('link' => "{$lang->storyConcept}|custom|browsestoryconcept|"); -//$lang->admin->menu->allModel['subMenu']->code = array('link' => "{$lang->code}|custom|code|"); -// -//$lang->admin->menu->allModel['menuOrder'][5] = 'storyConcept'; -//$lang->admin->menu->allModel['menuOrder'][30] = 'code'; -// -//$lang->admin->menu->waterfall['subMenu'] = new stdclass(); -//$lang->admin->menu->waterfall['subMenu']->stage = array('link' => "{$lang->stage->common}|stage|setType|", 'subModule' => 'stage'); -// -///* Admin menu order. */ -//$lang->admin->menuOrder[5] = 'index'; -//$lang->admin->menuOrder[10] = 'company'; -//$lang->admin->menuOrder[15] = 'model'; -//$lang->admin->menuOrder[20] = 'custom'; -//$lang->admin->menuOrder[25] = 'message'; -//$lang->admin->menuOrder[30] = 'extension'; -//$lang->admin->menuOrder[35] = 'dev'; -//$lang->admin->menuOrder[40] = 'system'; -// -//$lang->admin->menu->message['subMenu'] = new stdclass(); -//$lang->admin->menu->message['subMenu']->message = array(); -//$lang->admin->menu->message['subMenu']->mail = array('link' => "{$lang->mail->common}|mail|index", 'subModule' => 'mail'); -//$lang->admin->menu->message['subMenu']->webhook = array('link' => "Webhook|webhook|browse", 'subModule' => 'webhook'); -//$lang->admin->menu->message['subMenu']->browser = array('link' => "$lang->browser|message|browser"); -//$lang->admin->menu->message['subMenu']->setting = array('link' => "$lang->settings|message|setting"); -// -//$lang->admin->menu->message['menuOrder'][5] = 'mail'; -//$lang->admin->menu->message['menuOrder'][10] = 'webhook'; -//$lang->admin->menu->message['menuOrder'][15] = 'browser'; -//$lang->admin->menu->message['menuOrder'][20] = 'setting'; -// -//$lang->admin->menu->company['subMenu'] = new stdclass(); -//$lang->admin->menu->company['subMenu']->browseUser = array('link' => "{$lang->user->common}|company|browse", 'subModule' => 'user'); -//$lang->admin->menu->company['subMenu']->dept = array('link' => "{$lang->dept->common}|dept|browse", 'subModule' => 'dept'); -//$lang->admin->menu->company['subMenu']->browseGroup = array('link' => "{$lang->priv}|group|browse", 'subModule' => 'group'); -// -//$lang->admin->menu->dev['subMenu'] = new stdclass(); -//$lang->admin->menu->dev['subMenu']->api = array('link' => "API|dev|api"); -//$lang->admin->menu->dev['subMenu']->db = array('link' => "$lang->db|dev|db"); -//$lang->admin->menu->dev['subMenu']->editor = array('link' => "$lang->editor|dev|editor"); -//$lang->admin->menu->dev['subMenu']->entry = array('link' => "{$lang->admin->entry}|entry|browse", 'subModule' => 'entry'); -// -//$lang->admin->menu->dev['menuOrder'][5] = 'api'; -//$lang->admin->menu->dev['menuOrder'][10] = 'db'; -//$lang->admin->menu->dev['menuOrder'][15] = 'editor'; -//$lang->admin->menu->dev['menuOrder'][20] = 'entry'; -// -//$lang->admin->menu->system['subMenu'] = new stdclass(); -//$lang->admin->menu->system['subMenu']->mode = array('link' => "{$lang->custom->mode}|custom|mode"); -//$lang->admin->menu->system['subMenu']->setModule = array('link' => "{$lang->admin->module}|admin|setmodule"); -//$lang->admin->menu->system['subMenu']->backup = array('link' => "{$lang->backup->common}|backup|index"); -//$lang->admin->menu->system['subMenu']->trash = array('link' => "{$lang->action->trash}|action|trash"); -//$lang->admin->menu->system['subMenu']->safe = array('link' => "$lang->security|admin|safe", 'alias' => 'checkweak,resetpwdsetting'); -//$lang->admin->menu->system['subMenu']->cron = array('link' => "{$lang->admin->cron}|cron|index", 'subModule' => 'cron'); -//$lang->admin->menu->system['subMenu']->timezone = array('link' => "$lang->timezone|custom|timezone"); -//$lang->admin->menu->system['subMenu']->buildIndex = array('link' => "{$lang->admin->buildIndex}|search|buildindex|"); -//$lang->admin->menu->system['subMenu']->tableEngine = array('link' => "{$lang->admin->tableEngine}|admin|tableengine|"); -//if(version_compare(phpversion(), 5.6) > 0) $lang->admin->menu->system['subMenu']->convertJira = array('link' => "{$lang->convert->importJira}|convert|convertjira|", 'subModule' => 'convert'); -// -//$lang->admin->dividerMenu = ',company,message,system,'; +$lang->admin->menu = new stdclass(); $lang->subject->menu = new stdclass(); $lang->subject->menu->storyConcept = array('link' => "{$lang->storyConcept}|custom|browsestoryconcept|"); diff --git a/module/common/lang/zh-cn.php b/module/common/lang/zh-cn.php index de9520beef..3cc4ed7fc8 100644 --- a/module/common/lang/zh-cn.php +++ b/module/common/lang/zh-cn.php @@ -80,7 +80,7 @@ $lang->noData = '暂无'; $lang->fullscreen = '全屏'; $lang->retrack = '收起'; $lang->whitelist = '访问白名单'; -$lang->globalSetting = '全局设置'; +$lang->globalSetting = '通用'; $lang->waterfallModel = '瀑布模型'; $lang->scrumModel = '敏捷模型'; $lang->all = '所有'; @@ -248,7 +248,7 @@ $lang->indexPage = '首页'; $lang->model = '模型'; $lang->redev = '二次开发'; $lang->browser = '浏览器'; -$lang->db = '数据库'; +$lang->database = '数据库'; $lang->editor = '编辑器'; $lang->timezone = '时区'; $lang->security = '安全'; diff --git a/module/search/control.php b/module/search/control.php index fc3594ff97..470b8b8775 100644 --- a/module/search/control.php +++ b/module/search/control.php @@ -197,8 +197,6 @@ class search extends control } $this->lang->navGroup->search = 'admin'; - $this->lang->search->menu = $this->lang->admin->menu; - $this->lang->search->menuOrder = $this->lang->admin->menuOrder; $this->view->title = $this->lang->search->buildIndex; $this->display(); diff --git a/xuanxuan/extension/xuan/admin/ext/lang/de/xuanxuan.php b/xuanxuan/extension/xuan/admin/ext/lang/de/xuanxuan.php index 4a945d126c..332adc1cc0 100644 --- a/xuanxuan/extension/xuan/admin/ext/lang/de/xuanxuan.php +++ b/xuanxuan/extension/xuan/admin/ext/lang/de/xuanxuan.php @@ -21,3 +21,10 @@ $lang->admin->sizeType = array(); $lang->admin->sizeType['K'] = 1024; $lang->admin->sizeType['M'] = 1024 * 1024; $lang->admin->sizeType['G'] = 1024 * 1024 * 1024; + +global $config; +if($config->vision != 'lite') +{ + $lang->admin->menuList->system['subMenu']['xuanxuan'] = array('link' => 'Desktop|admin|xuanxuan|', 'subModule' => 'client,setting'); + $lang->admin->menuList->system['menuOrder']['20'] = 'xuanxuan'; +} diff --git a/xuanxuan/extension/xuan/admin/ext/lang/en/xuanxuan.php b/xuanxuan/extension/xuan/admin/ext/lang/en/xuanxuan.php index 4a945d126c..332adc1cc0 100644 --- a/xuanxuan/extension/xuan/admin/ext/lang/en/xuanxuan.php +++ b/xuanxuan/extension/xuan/admin/ext/lang/en/xuanxuan.php @@ -21,3 +21,10 @@ $lang->admin->sizeType = array(); $lang->admin->sizeType['K'] = 1024; $lang->admin->sizeType['M'] = 1024 * 1024; $lang->admin->sizeType['G'] = 1024 * 1024 * 1024; + +global $config; +if($config->vision != 'lite') +{ + $lang->admin->menuList->system['subMenu']['xuanxuan'] = array('link' => 'Desktop|admin|xuanxuan|', 'subModule' => 'client,setting'); + $lang->admin->menuList->system['menuOrder']['20'] = 'xuanxuan'; +} diff --git a/xuanxuan/extension/xuan/admin/ext/lang/fr/xuanxuan.php b/xuanxuan/extension/xuan/admin/ext/lang/fr/xuanxuan.php index 4a945d126c..332adc1cc0 100644 --- a/xuanxuan/extension/xuan/admin/ext/lang/fr/xuanxuan.php +++ b/xuanxuan/extension/xuan/admin/ext/lang/fr/xuanxuan.php @@ -21,3 +21,10 @@ $lang->admin->sizeType = array(); $lang->admin->sizeType['K'] = 1024; $lang->admin->sizeType['M'] = 1024 * 1024; $lang->admin->sizeType['G'] = 1024 * 1024 * 1024; + +global $config; +if($config->vision != 'lite') +{ + $lang->admin->menuList->system['subMenu']['xuanxuan'] = array('link' => 'Desktop|admin|xuanxuan|', 'subModule' => 'client,setting'); + $lang->admin->menuList->system['menuOrder']['20'] = 'xuanxuan'; +} diff --git a/xuanxuan/extension/xuan/admin/ext/lang/zh-cn/xuanxuan.php b/xuanxuan/extension/xuan/admin/ext/lang/zh-cn/xuanxuan.php index 1e7555aefa..ab4ae61356 100644 --- a/xuanxuan/extension/xuan/admin/ext/lang/zh-cn/xuanxuan.php +++ b/xuanxuan/extension/xuan/admin/ext/lang/zh-cn/xuanxuan.php @@ -25,6 +25,6 @@ $lang->admin->sizeType['G'] = 1024 * 1024 * 1024; global $config; if($config->vision != 'lite') { - $lang->admin->menuList->setting['subMenu']['xuanxuan'] = array('link' => '聊天|admin|xuanxuan|', 'subModule' => 'client,setting'); - $lang->admin->menuList->setting['menuOrder']['20'] = 'xuanxuan'; + $lang->admin->menuList->system['subMenu']['xuanxuan'] = array('link' => '聊天|admin|xuanxuan|', 'subModule' => 'client,setting'); + $lang->admin->menuList->system['menuOrder']['20'] = 'xuanxuan'; } diff --git a/xuanxuan/extension/xuan/common/ext/lang/de/xuanxuan.php b/xuanxuan/extension/xuan/common/ext/lang/de/xuanxuan.php index 0a0bac6bf5..f83f28956d 100644 --- a/xuanxuan/extension/xuan/common/ext/lang/de/xuanxuan.php +++ b/xuanxuan/extension/xuan/common/ext/lang/de/xuanxuan.php @@ -1,28 +1,22 @@ xuanxuan = new stdclass(); -if($config->vision != 'lite') -{ - $lang->admin->menu->xuanxuan = array('link' => 'Desktop|admin|xuanxuan', 'subModule' => 'client,setting'); - $lang->admin->menuOrder[6] = 'xuanxuan'; -} - -$lang->admin->menu->xuanxuan['subMenu'] = new stdclass(); -$lang->admin->menu->xuanxuan['subMenu']->index = array('link' => 'Home|admin|xuanxuan'); -$lang->admin->menu->xuanxuan['subMenu']->setting = array('link' => 'Parameter|setting|xuanxuan'); -$lang->admin->menu->xuanxuan['subMenu']->update = array('link' => 'Update|client|browse', 'subModule' => 'client'); - -$lang->admin->menu->xuanxuan['menuOrder'][0] = 'index'; -$lang->admin->menu->xuanxuan['menuOrder'][5] = 'setting'; -$lang->admin->menu->xuanxuan['menuOrder'][10] = 'update'; +//$lang->admin->menu->xuanxuan['subMenu'] = new stdclass(); +//$lang->admin->menu->xuanxuan['subMenu']->index = array('link' => 'Home|admin|xuanxuan'); +//$lang->admin->menu->xuanxuan['subMenu']->setting = array('link' => 'Parameter|setting|xuanxuan'); +//$lang->admin->menu->xuanxuan['subMenu']->update = array('link' => 'Update|client|browse', 'subModule' => 'client'); +// +//$lang->admin->menu->xuanxuan['menuOrder'][0] = 'index'; +//$lang->admin->menu->xuanxuan['menuOrder'][5] = 'setting'; +//$lang->admin->menu->xuanxuan['menuOrder'][10] = 'update'; global $config; -if($config->edition != 'open') -{ - $lang->admin->menu->xuanxuan['subModule'] = 'client,setting,conference'; - $lang->admin->menu->xuanxuan['subMenu']->conference = array('link' => 'Conference|conference|admin'); - $lang->admin->menu->xuanxuan['menuOrder'][7] = 'conference'; - $lang->navGroup->conference = 'admin'; -} +//if($config->edition != 'open') +//{ +// $lang->admin->menu->xuanxuan['subModule'] = 'client,setting,conference'; +// $lang->admin->menu->xuanxuan['subMenu']->conference = array('link' => 'Conference|conference|admin'); +// $lang->admin->menu->xuanxuan['menuOrder'][7] = 'conference'; +// $lang->navGroup->conference = 'admin'; +//} $lang->navGroup->im = 'admin'; $lang->navGroup->setting = 'admin'; diff --git a/xuanxuan/extension/xuan/common/ext/lang/en/xuanxuan.php b/xuanxuan/extension/xuan/common/ext/lang/en/xuanxuan.php index 0a0bac6bf5..f83f28956d 100644 --- a/xuanxuan/extension/xuan/common/ext/lang/en/xuanxuan.php +++ b/xuanxuan/extension/xuan/common/ext/lang/en/xuanxuan.php @@ -1,28 +1,22 @@ xuanxuan = new stdclass(); -if($config->vision != 'lite') -{ - $lang->admin->menu->xuanxuan = array('link' => 'Desktop|admin|xuanxuan', 'subModule' => 'client,setting'); - $lang->admin->menuOrder[6] = 'xuanxuan'; -} - -$lang->admin->menu->xuanxuan['subMenu'] = new stdclass(); -$lang->admin->menu->xuanxuan['subMenu']->index = array('link' => 'Home|admin|xuanxuan'); -$lang->admin->menu->xuanxuan['subMenu']->setting = array('link' => 'Parameter|setting|xuanxuan'); -$lang->admin->menu->xuanxuan['subMenu']->update = array('link' => 'Update|client|browse', 'subModule' => 'client'); - -$lang->admin->menu->xuanxuan['menuOrder'][0] = 'index'; -$lang->admin->menu->xuanxuan['menuOrder'][5] = 'setting'; -$lang->admin->menu->xuanxuan['menuOrder'][10] = 'update'; +//$lang->admin->menu->xuanxuan['subMenu'] = new stdclass(); +//$lang->admin->menu->xuanxuan['subMenu']->index = array('link' => 'Home|admin|xuanxuan'); +//$lang->admin->menu->xuanxuan['subMenu']->setting = array('link' => 'Parameter|setting|xuanxuan'); +//$lang->admin->menu->xuanxuan['subMenu']->update = array('link' => 'Update|client|browse', 'subModule' => 'client'); +// +//$lang->admin->menu->xuanxuan['menuOrder'][0] = 'index'; +//$lang->admin->menu->xuanxuan['menuOrder'][5] = 'setting'; +//$lang->admin->menu->xuanxuan['menuOrder'][10] = 'update'; global $config; -if($config->edition != 'open') -{ - $lang->admin->menu->xuanxuan['subModule'] = 'client,setting,conference'; - $lang->admin->menu->xuanxuan['subMenu']->conference = array('link' => 'Conference|conference|admin'); - $lang->admin->menu->xuanxuan['menuOrder'][7] = 'conference'; - $lang->navGroup->conference = 'admin'; -} +//if($config->edition != 'open') +//{ +// $lang->admin->menu->xuanxuan['subModule'] = 'client,setting,conference'; +// $lang->admin->menu->xuanxuan['subMenu']->conference = array('link' => 'Conference|conference|admin'); +// $lang->admin->menu->xuanxuan['menuOrder'][7] = 'conference'; +// $lang->navGroup->conference = 'admin'; +//} $lang->navGroup->im = 'admin'; $lang->navGroup->setting = 'admin'; diff --git a/xuanxuan/extension/xuan/common/ext/lang/fr/xuanxuan.php b/xuanxuan/extension/xuan/common/ext/lang/fr/xuanxuan.php index 0a0bac6bf5..f83f28956d 100644 --- a/xuanxuan/extension/xuan/common/ext/lang/fr/xuanxuan.php +++ b/xuanxuan/extension/xuan/common/ext/lang/fr/xuanxuan.php @@ -1,28 +1,22 @@ xuanxuan = new stdclass(); -if($config->vision != 'lite') -{ - $lang->admin->menu->xuanxuan = array('link' => 'Desktop|admin|xuanxuan', 'subModule' => 'client,setting'); - $lang->admin->menuOrder[6] = 'xuanxuan'; -} - -$lang->admin->menu->xuanxuan['subMenu'] = new stdclass(); -$lang->admin->menu->xuanxuan['subMenu']->index = array('link' => 'Home|admin|xuanxuan'); -$lang->admin->menu->xuanxuan['subMenu']->setting = array('link' => 'Parameter|setting|xuanxuan'); -$lang->admin->menu->xuanxuan['subMenu']->update = array('link' => 'Update|client|browse', 'subModule' => 'client'); - -$lang->admin->menu->xuanxuan['menuOrder'][0] = 'index'; -$lang->admin->menu->xuanxuan['menuOrder'][5] = 'setting'; -$lang->admin->menu->xuanxuan['menuOrder'][10] = 'update'; +//$lang->admin->menu->xuanxuan['subMenu'] = new stdclass(); +//$lang->admin->menu->xuanxuan['subMenu']->index = array('link' => 'Home|admin|xuanxuan'); +//$lang->admin->menu->xuanxuan['subMenu']->setting = array('link' => 'Parameter|setting|xuanxuan'); +//$lang->admin->menu->xuanxuan['subMenu']->update = array('link' => 'Update|client|browse', 'subModule' => 'client'); +// +//$lang->admin->menu->xuanxuan['menuOrder'][0] = 'index'; +//$lang->admin->menu->xuanxuan['menuOrder'][5] = 'setting'; +//$lang->admin->menu->xuanxuan['menuOrder'][10] = 'update'; global $config; -if($config->edition != 'open') -{ - $lang->admin->menu->xuanxuan['subModule'] = 'client,setting,conference'; - $lang->admin->menu->xuanxuan['subMenu']->conference = array('link' => 'Conference|conference|admin'); - $lang->admin->menu->xuanxuan['menuOrder'][7] = 'conference'; - $lang->navGroup->conference = 'admin'; -} +//if($config->edition != 'open') +//{ +// $lang->admin->menu->xuanxuan['subModule'] = 'client,setting,conference'; +// $lang->admin->menu->xuanxuan['subMenu']->conference = array('link' => 'Conference|conference|admin'); +// $lang->admin->menu->xuanxuan['menuOrder'][7] = 'conference'; +// $lang->navGroup->conference = 'admin'; +//} $lang->navGroup->im = 'admin'; $lang->navGroup->setting = 'admin'; From e91e8312b53b3860cf65d2b978f417b45c7dedcf Mon Sep 17 00:00:00 2001 From: wangyidong Date: Wed, 1 Feb 2023 13:20:49 +0800 Subject: [PATCH 028/191] * fix bug. --- module/admin/model.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/module/admin/model.php b/module/admin/model.php index 23888d990f..2e4feecb59 100755 --- a/module/admin/model.php +++ b/module/admin/model.php @@ -301,9 +301,9 @@ class adminModel extends model 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]); } @@ -311,6 +311,7 @@ class adminModel extends model if(!empty($menuOrder)) { $subMenuKey = reset($menuOrder); + list($label, $module, $method, $params) = explode('|', $menu['subMenu'][$subMenuKey]['link']); $menu['link'] = helper::createLink($module, $method, $params); } } From 88c564634efb8efd3931d2cc4927f7cfc7e32c53 Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Wed, 1 Feb 2023 13:40:08 +0800 Subject: [PATCH 029/191] * Optimize class style. --- module/admin/config.php | 10 ++++++++++ module/admin/css/index.css | 12 ++++++------ module/admin/model.php | 2 +- module/admin/view/index.html.php | 6 +++--- 4 files changed, 20 insertions(+), 10 deletions(-) diff --git a/module/admin/config.php b/module/admin/config.php index 5d9dc5023d..7652aef470 100755 --- a/module/admin/config.php +++ b/module/admin/config.php @@ -58,3 +58,13 @@ $config->admin->apiRoot = 'https://www.zentao.net/'; $config->admin->classURL = 'https://www.zentao.net/publicclass.html'; $config->admin->extensionURL = 'https://www.zentao.net/extension-browse.html'; +$config->admin->helpURL['setting'] = 'https://www.zentao.net/book/zentaopms/538.html'; +$config->admin->helpURL['user'] = 'https://www.zentao.net/book/zentaopms/538.html'; +$config->admin->helpURL['switch'] = 'https://www.zentao.net/book/zentaopms/538.html'; +$config->admin->helpURL['model'] = 'https://www.zentao.net/book/zentaopms/533.html'; +$config->admin->helpURL['feature'] = 'https://www.zentao.net/book/zentaopms/538.html'; +$config->admin->helpURL['template'] = 'https://www.zentao.net/book/zentaopms/538.html'; +$config->admin->helpURL['message'] = 'https://www.zentao.net/book/zentaopms/email-notification-541.html'; +$config->admin->helpURL['extension'] = 'https://www.zentao.net/book/zentaopms/536.html'; +$config->admin->helpURL['dev'] = 'https://www.zentao.net/book/zentaopms/537.html'; +$config->admin->helpURL['convert'] = 'https://www.zentao.net/book/zentaopms/656.html'; diff --git a/module/admin/css/index.css b/module/admin/css/index.css index 4e40802b34..6ddcdbe125 100755 --- a/module/admin/css/index.css +++ b/module/admin/css/index.css @@ -26,13 +26,13 @@ .official {justify-content: center;} .official > .panel-title {position: absolute; top: 0px;} -.official-img {background-image: url('/static/images/wechat.jpg'); background-repeat: no-repeat; background-size: contain; flex: 1 1 50%; aspect-ratio: 1 / 1; background-position: center;} -.official-content {flex: 0 0 50%; display: flex; flex-direction: column; justify-content: center;} +.official-img {background-image: url('/static/images/wechat.jpg'); background-repeat: no-repeat; background-size: contain; flex: 1 1 30%; aspect-ratio: 1 / 1; background-position: center;} +.official-content {flex: 0 0 60%; display: flex; flex-direction: column; justify-content: center; padding-left: 10px;} .official-content > .content {color: #838A9D; font-size: 12px;} .official-content > .title {color: #313C52; font-size: 13px;} -.classList > .classItem {flex: 1 1 30%; margin: 5px;} -.classItem > .imgBack {flex: 1 1 50%; background: #C8EDFF;} -.classItem > .imgBack > .classImg {background-repeat: no-repeat; background-size: contain; aspect-ratio: 1 / 1; background-position: center; margin: 0 20px;} -.classItem > .classContent {flex: 1 1 50%; padding: 5px; font-size: 14px; color: #0B0F18; text-align: center; overflow: hidden; height: 24px; font-weight: 700;} +.classList > .classItem {flex: 1 1 30%; margin: 5px; border: 1px solid #E3E4E9; border-radius: 4px; margin-bottom: 16px;} +.classItem > .imgBack {flex: 1 1 50%;} +.classItem > .imgBack > .classImg {background-repeat: no-repeat; background-size: contain; aspect-ratio: 16 / 9;} +.classItem > .classContent {flex: 1 1 50%; padding: 5px; font-size: 14px; color: #0B0F18; text-align: center; overflow: hidden; height: 30px; line-height: 22px; font-weight: 700;} .more {float: right; padding-right: 12px; font-weight: normal;} diff --git a/module/admin/model.php b/module/admin/model.php index 8f1802145d..11c636d2a9 100755 --- a/module/admin/model.php +++ b/module/admin/model.php @@ -485,7 +485,7 @@ class adminModel extends model $publicClass[$index] = new stdClass(); $publicClass[$index]->name = $course->title; $publicClass[$index]->image = $this->config->admin->apiRoot . $course->image->list[0]->largeURL; - $publicClass[$index]->viewLink = $this->config->admin->apiRoot . "{$course->alias}-{$course->id}.html"; + $publicClass[$index]->viewLink = $this->config->admin->apiRoot . 'publicclass/' . ($course->alias ? "{$course->alias}-" : '') . "{$course->id}.html"; $index ++; } return $publicClass; diff --git a/module/admin/view/index.html.php b/module/admin/view/index.html.php index a5f529e9db..3732407162 100755 --- a/module/admin/view/index.html.php +++ b/module/admin/view/index.html.php @@ -17,11 +17,11 @@
admin->setting?>
- admin->menuList as $menu):?> + admin->menuList as $menuKey => $menu):?>

- {$lang->help}", '_blank', 'class="text-muted setting-help"');?> + admin->helpURL[$menuKey], " {$lang->help}", '_blank', 'class="text-muted setting-help"');?>
@@ -65,7 +65,7 @@
- +
From 3e386ba9c84f15a5cf498eb51598ef13249050e2 Mon Sep 17 00:00:00 2001 From: guofeilong Date: Wed, 1 Feb 2023 13:50:27 +0800 Subject: [PATCH 030/191] * code for svg and handle conflict --- module/admin/css/index.css | 4 ++-- www/static/svg/admin-convert.svg | 4 ++++ www/static/svg/admin-dev.svg | 3 +++ www/static/svg/admin-extension.svg | 3 +++ www/static/svg/admin-feature.svg | 3 +++ www/static/svg/admin-message.svg | 3 +++ www/static/svg/admin-model.svg | 3 +++ www/static/svg/admin-setting.svg | 3 +++ www/static/svg/admin-switch.svg | 3 +++ www/static/svg/admin-template.svg | 3 +++ www/static/svg/admin-user.svg | 3 +++ 11 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 www/static/svg/admin-convert.svg create mode 100644 www/static/svg/admin-dev.svg create mode 100644 www/static/svg/admin-extension.svg create mode 100644 www/static/svg/admin-feature.svg create mode 100644 www/static/svg/admin-message.svg create mode 100644 www/static/svg/admin-model.svg create mode 100644 www/static/svg/admin-setting.svg create mode 100644 www/static/svg/admin-switch.svg create mode 100644 www/static/svg/admin-template.svg create mode 100644 www/static/svg/admin-user.svg diff --git a/module/admin/css/index.css b/module/admin/css/index.css index 6ddcdbe125..682431828d 100755 --- a/module/admin/css/index.css +++ b/module/admin/css/index.css @@ -31,8 +31,8 @@ .official-content > .content {color: #838A9D; font-size: 12px;} .official-content > .title {color: #313C52; font-size: 13px;} -.classList > .classItem {flex: 1 1 30%; margin: 5px; border: 1px solid #E3E4E9; border-radius: 4px; margin-bottom: 16px;} +.classList > .classItem {flex: 1 1 30%; margin: 5px; border: 1px solid #E3E4E9; border-radius: 4px; margin-bottom: 16px; align-items: center;} .classItem > .imgBack {flex: 1 1 50%;} -.classItem > .imgBack > .classImg {background-repeat: no-repeat; background-size: contain; aspect-ratio: 16 / 9;} +.classItem > .imgBack > .classImg {background-repeat: no-repeat; background-size: contain; aspect-ratio: 16 / 9; background-position: center; margin: 5px;} .classItem > .classContent {flex: 1 1 50%; padding: 5px; font-size: 14px; color: #0B0F18; text-align: center; overflow: hidden; height: 30px; line-height: 22px; font-weight: 700;} .more {float: right; padding-right: 12px; font-weight: normal;} diff --git a/www/static/svg/admin-convert.svg b/www/static/svg/admin-convert.svg new file mode 100644 index 0000000000..b1c768404e --- /dev/null +++ b/www/static/svg/admin-convert.svg @@ -0,0 +1,4 @@ + + + + diff --git a/www/static/svg/admin-dev.svg b/www/static/svg/admin-dev.svg new file mode 100644 index 0000000000..109dd69809 --- /dev/null +++ b/www/static/svg/admin-dev.svg @@ -0,0 +1,3 @@ + + + diff --git a/www/static/svg/admin-extension.svg b/www/static/svg/admin-extension.svg new file mode 100644 index 0000000000..ec7252642a --- /dev/null +++ b/www/static/svg/admin-extension.svg @@ -0,0 +1,3 @@ + + + diff --git a/www/static/svg/admin-feature.svg b/www/static/svg/admin-feature.svg new file mode 100644 index 0000000000..c1970dee4f --- /dev/null +++ b/www/static/svg/admin-feature.svg @@ -0,0 +1,3 @@ + + + diff --git a/www/static/svg/admin-message.svg b/www/static/svg/admin-message.svg new file mode 100644 index 0000000000..eaf9c09e4a --- /dev/null +++ b/www/static/svg/admin-message.svg @@ -0,0 +1,3 @@ + + + diff --git a/www/static/svg/admin-model.svg b/www/static/svg/admin-model.svg new file mode 100644 index 0000000000..3906e5484d --- /dev/null +++ b/www/static/svg/admin-model.svg @@ -0,0 +1,3 @@ + + + diff --git a/www/static/svg/admin-setting.svg b/www/static/svg/admin-setting.svg new file mode 100644 index 0000000000..a3ef612ac7 --- /dev/null +++ b/www/static/svg/admin-setting.svg @@ -0,0 +1,3 @@ + + + diff --git a/www/static/svg/admin-switch.svg b/www/static/svg/admin-switch.svg new file mode 100644 index 0000000000..c7b0d150dd --- /dev/null +++ b/www/static/svg/admin-switch.svg @@ -0,0 +1,3 @@ + + + diff --git a/www/static/svg/admin-template.svg b/www/static/svg/admin-template.svg new file mode 100644 index 0000000000..cc5862d186 --- /dev/null +++ b/www/static/svg/admin-template.svg @@ -0,0 +1,3 @@ + + + diff --git a/www/static/svg/admin-user.svg b/www/static/svg/admin-user.svg new file mode 100644 index 0000000000..a9f8169530 --- /dev/null +++ b/www/static/svg/admin-user.svg @@ -0,0 +1,3 @@ + + + From bbb4c36827df8297b5f74a315bf6b4b1a0acb6aa Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Wed, 1 Feb 2023 14:01:05 +0800 Subject: [PATCH 031/191] * Optimiza page style. --- module/admin/css/index.css | 1 + 1 file changed, 1 insertion(+) diff --git a/module/admin/css/index.css b/module/admin/css/index.css index 682431828d..f8ef34da91 100755 --- a/module/admin/css/index.css +++ b/module/admin/css/index.css @@ -36,3 +36,4 @@ .classItem > .imgBack > .classImg {background-repeat: no-repeat; background-size: contain; aspect-ratio: 16 / 9; background-position: center; margin: 5px;} .classItem > .classContent {flex: 1 1 50%; padding: 5px; font-size: 14px; color: #0B0F18; text-align: center; overflow: hidden; height: 30px; line-height: 22px; font-weight: 700;} .more {float: right; padding-right: 12px; font-weight: normal;} +.panel.publicClass {padding: 0 10px;} From 8daa3273d0031f7089041174115bcd0d996e5875 Mon Sep 17 00:00:00 2001 From: guofeilong Date: Wed, 1 Feb 2023 14:05:23 +0800 Subject: [PATCH 032/191] * code for css in setting-box --- module/admin/css/index.css | 3 ++- module/admin/view/index.html.php | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/module/admin/css/index.css b/module/admin/css/index.css index f8ef34da91..4d098d99b6 100755 --- a/module/admin/css/index.css +++ b/module/admin/css/index.css @@ -11,7 +11,8 @@ .settings.panel, .plug.panel {margin-bottom: 16px;} .settings-list {display: flex; flex-wrap: wrap; padding: 0 4px 16px 4px;} -.settings-list > .setting-box {flex: 1 1 18%; padding: 8px; border: 1px solid #E3E4E9; margin-right: 10px; margin-top: 16px;} +.settings-list > .setting-box {flex: 1 1 18%; padding: 8px; border: 1px solid #E3E4E9; margin-right: 10px; margin-top: 16px; display: flex; flex-direction: column; justify-content: space-between} +.settings-list > .setting-box > h4 > img {padding-right: 16px;} .settings-list > .setting-box > .setting-desc {padding-bottom: 16px;} .plugin-list {display: flex; flex-wrap: wrap; padding: 12px 4px 4px 4px;} diff --git a/module/admin/view/index.html.php b/module/admin/view/index.html.php index 3732407162..79e67fc1e8 100755 --- a/module/admin/view/index.html.php +++ b/module/admin/view/index.html.php @@ -19,7 +19,7 @@
admin->menuList as $menuKey => $menu):?>
-

+

admin->helpURL[$menuKey], " {$lang->help}", '_blank', 'class="text-muted setting-help"');?>
From a56ebbab5750390e9a3840dcb8d7c4c5fb2be1ac Mon Sep 17 00:00:00 2001 From: guofeilong Date: Wed, 1 Feb 2023 14:07:20 +0800 Subject: [PATCH 033/191] * change svg name --- www/static/svg/{admin-setting.svg => admin-system.svg} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename www/static/svg/{admin-setting.svg => admin-system.svg} (100%) diff --git a/www/static/svg/admin-setting.svg b/www/static/svg/admin-system.svg similarity index 100% rename from www/static/svg/admin-setting.svg rename to www/static/svg/admin-system.svg From 9f7d184aaa54feff87b545401d49cd88d65950c2 Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Wed, 1 Feb 2023 14:22:47 +0800 Subject: [PATCH 034/191] * Modify system block style. --- module/admin/config.php | 2 +- module/admin/css/index.css | 2 +- module/admin/js/index.js | 10 ++++++++++ module/admin/view/index.html.php | 2 +- 4 files changed, 13 insertions(+), 3 deletions(-) create mode 100644 module/admin/js/index.js diff --git a/module/admin/config.php b/module/admin/config.php index 69836737b0..f86f03b0f5 100755 --- a/module/admin/config.php +++ b/module/admin/config.php @@ -58,7 +58,7 @@ $config->admin->apiRoot = 'https://www.zentao.net/'; $config->admin->classURL = 'https://www.zentao.net/publicclass.html'; $config->admin->extensionURL = 'https://www.zentao.net/extension-browse.html'; -$config->admin->helpURL['setting'] = 'https://www.zentao.net/book/zentaopms/538.html'; +$config->admin->helpURL['system'] = 'https://www.zentao.net/book/zentaopms/538.html'; $config->admin->helpURL['user'] = 'https://www.zentao.net/book/zentaopms/538.html'; $config->admin->helpURL['switch'] = 'https://www.zentao.net/book/zentaopms/538.html'; $config->admin->helpURL['model'] = 'https://www.zentao.net/book/zentaopms/533.html'; diff --git a/module/admin/css/index.css b/module/admin/css/index.css index 4d098d99b6..bec672d81e 100755 --- a/module/admin/css/index.css +++ b/module/admin/css/index.css @@ -11,7 +11,7 @@ .settings.panel, .plug.panel {margin-bottom: 16px;} .settings-list {display: flex; flex-wrap: wrap; padding: 0 4px 16px 4px;} -.settings-list > .setting-box {flex: 1 1 18%; padding: 8px; border: 1px solid #E3E4E9; margin-right: 10px; margin-top: 16px; display: flex; flex-direction: column; justify-content: space-between} +.settings-list > .setting-box {flex: 1 1 18%; padding: 8px; border: 1px solid #E3E4E9; margin-right: 10px; margin-top: 16px; display: flex; flex-direction: column; justify-content: space-between; cursor: pointer;} .settings-list > .setting-box > h4 > img {padding-right: 16px;} .settings-list > .setting-box > .setting-desc {padding-bottom: 16px;} diff --git a/module/admin/js/index.js b/module/admin/js/index.js new file mode 100644 index 0000000000..13f5dd6f7b --- /dev/null +++ b/module/admin/js/index.js @@ -0,0 +1,10 @@ +$(function() +{ + $(document).on('click', '.setting-box', function() + { + location.href = $(this).data('link'); + }).on('click', '.setting-box a', function(e) + { + e.stopPropagation(); + }); +}); diff --git a/module/admin/view/index.html.php b/module/admin/view/index.html.php index 79e67fc1e8..b51dccd305 100755 --- a/module/admin/view/index.html.php +++ b/module/admin/view/index.html.php @@ -18,7 +18,7 @@
admin->setting?>
admin->menuList as $menuKey => $menu):?> -
+
'>

admin->helpURL[$menuKey], " {$lang->help}", '_blank', 'class="text-muted setting-help"');?> From 04000584544d661b7331852cf55635329a069cd5 Mon Sep 17 00:00:00 2001 From: guofeilong Date: Wed, 1 Feb 2023 14:43:39 +0800 Subject: [PATCH 035/191] * code for add css --- module/admin/css/index.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/admin/css/index.css b/module/admin/css/index.css index bec672d81e..dd554b6acc 100755 --- a/module/admin/css/index.css +++ b/module/admin/css/index.css @@ -12,7 +12,7 @@ .settings-list {display: flex; flex-wrap: wrap; padding: 0 4px 16px 4px;} .settings-list > .setting-box {flex: 1 1 18%; padding: 8px; border: 1px solid #E3E4E9; margin-right: 10px; margin-top: 16px; display: flex; flex-direction: column; justify-content: space-between; cursor: pointer;} -.settings-list > .setting-box > h4 > img {padding-right: 16px;} +.settings-list > .setting-box > h4 > img {padding-right: 10px; padding-bottom: 3px;} .settings-list > .setting-box > .setting-desc {padding-bottom: 16px;} .plugin-list {display: flex; flex-wrap: wrap; padding: 12px 4px 4px 4px;} From 78290d812fa8f8d583f575e21ea9cadbb05dbd13 Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Wed, 1 Feb 2023 14:50:02 +0800 Subject: [PATCH 036/191] * Optimize class style. --- module/admin/css/index.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/module/admin/css/index.css b/module/admin/css/index.css index bec672d81e..24eb85239b 100755 --- a/module/admin/css/index.css +++ b/module/admin/css/index.css @@ -34,7 +34,7 @@ .classList > .classItem {flex: 1 1 30%; margin: 5px; border: 1px solid #E3E4E9; border-radius: 4px; margin-bottom: 16px; align-items: center;} .classItem > .imgBack {flex: 1 1 50%;} -.classItem > .imgBack > .classImg {background-repeat: no-repeat; background-size: contain; aspect-ratio: 16 / 9; background-position: center; margin: 5px;} -.classItem > .classContent {flex: 1 1 50%; padding: 5px; font-size: 14px; color: #0B0F18; text-align: center; overflow: hidden; height: 30px; line-height: 22px; font-weight: 700;} +.classItem > .imgBack > .classImg {background-repeat: no-repeat; background-size: contain; aspect-ratio: 16 / 9; background-position: center; margin: 0px; border-radius: 4px;} +.classItem > .classContent {flex: 1 1 50%; padding: 5px; font-size: 14px; color: #0B0F18; text-align: center; overflow: hidden; height: 24px; margin-bottom: 6px; font-weight: 700;} .more {float: right; padding-right: 12px; font-weight: normal;} .panel.publicClass {padding: 0 10px;} From 84905c803d0ade9be1f3f86c52f5b0edfc5bed8e Mon Sep 17 00:00:00 2001 From: wangyidong Date: Wed, 1 Feb 2023 15:05:58 +0800 Subject: [PATCH 037/191] * code for task #83428. --- extension/lite/common/ext/lang/de/lite.php | 94 ------------------ extension/lite/common/ext/lang/en/lite.php | 94 ------------------ extension/lite/common/ext/lang/fr/lite.php | 94 ------------------ extension/lite/common/ext/lang/zh-cn/lite.php | 96 ------------------- module/admin/lang/menu.php | 14 ++- module/custom/view/required.html.php | 7 ++ module/custom/view/set.html.php | 13 ++- 7 files changed, 29 insertions(+), 383 deletions(-) diff --git a/extension/lite/common/ext/lang/de/lite.php b/extension/lite/common/ext/lang/de/lite.php index 0a74146ca0..ef7b1da49c 100644 --- a/extension/lite/common/ext/lang/de/lite.php +++ b/extension/lite/common/ext/lang/de/lite.php @@ -143,81 +143,6 @@ $lang->doc->menuOrder[30] = 'custom'; $lang->doc->menu->project['subMenu'] = new stdclass(); $lang->doc->menu->custom['subMenu'] = new stdclass(); -if(isset($lang->admin->menu->xuanxuan)) $xuanxuanMenu = $lang->admin->menu->xuanxuan; -/* Admin menu. */ -$lang->admin->menu = new stdclass(); -$lang->admin->menu->index = array('link' => "$lang->indexPage|admin|index", 'alias' => 'register,certifytemail,certifyztmobile,ztcompany'); -if(isset($xuanxuanMenu)) $lang->admin->menu->xuanxuan = $xuanxuanMenu; -$lang->admin->menu->company = array('link' => "{$lang->personnel->common}|company|browse|", 'subModule' => ',user,dept,group,'); -$lang->admin->menu->custom = array('link' => "{$lang->custom->common}|custom|index", 'exclude' => 'custom-browsestoryconcept,custom-timezone,custom-estimate'); -$lang->admin->menu->extension = array('link' => "{$lang->extension->common}|extension|browse", 'subModule' => 'extension'); -$lang->admin->menu->dev = array('link' => "$lang->redev|dev|api", 'alias' => 'db', 'subModule' => 'dev,editor,entry'); -$lang->admin->menu->message = array('link' => "{$lang->message->common}|message|index", 'subModule' => 'message,mail,webhook,sms'); -$lang->admin->menu->system = array('link' => "{$lang->admin->system}|backup|index", 'subModule' => 'cron,backup,action,admin,search,ldap', 'exclude' => 'admin-index,admin-xuanxuan,admin-register,admin-ztcompany'); - -if($config->vision != 'lite') $lang->admin->menu->xuanxuan['link'] = 'Chat|admin|xuanxuan'; - -/* Admin menu order. */ -$lang->admin->menuOrder = array(); -$lang->admin->menuOrder[5] = 'index'; -$lang->admin->menuOrder[6] = 'xuanxuan'; -$lang->admin->menuOrder[10] = 'company'; -$lang->admin->menuOrder[15] = 'custom'; -$lang->admin->menuOrder[20] = 'message'; -$lang->admin->menuOrder[25] = 'extension'; -$lang->admin->menuOrder[30] = 'dev'; -$lang->admin->menuOrder[35] = 'system'; - -$lang->admin->menu->message['subMenu'] = new stdclass(); -$lang->admin->menu->message['subMenu']->message = array(); -$lang->admin->menu->message['subMenu']->mail = array('link' => "{$lang->mail->common}|mail|index", 'subModule' => 'mail'); -$lang->admin->menu->message['subMenu']->webhook = array('link' => "Webhook|webhook|browse", 'subModule' => 'webhook'); - -if($config->edition != 'open') $lang->admin->menu->message['subMenu']->sms = array('link' => "Message|sms|index"); - -$lang->admin->menu->message['subMenu']->browser = array('link' => "$lang->browser|message|browser"); -$lang->admin->menu->message['subMenu']->setting = array('link' => "$lang->settings|message|setting"); - -$lang->admin->menu->message['menuOrder'][5] = 'mail'; -$lang->admin->menu->message['menuOrder'][10] = 'webhook'; -$lang->admin->menu->message['menuOrder'][11] = 'sms'; -$lang->admin->menu->message['menuOrder'][15] = 'browser'; -$lang->admin->menu->message['menuOrder'][20] = 'setting'; - -$lang->admin->menu->company['subMenu'] = new stdclass(); -$lang->admin->menu->company['subMenu']->browseUser = array('link' => "{$lang->user->common}|company|browse", 'subModule' => 'user'); -$lang->admin->menu->company['subMenu']->dept = array('link' => "{$lang->dept->common}|dept|browse", 'subModule' => 'dept'); -$lang->admin->menu->company['subMenu']->browseGroup = array('link' => "{$lang->priv}|group|browse", 'subModule' => 'group'); - -$lang->admin->menu->dev['subMenu'] = new stdclass(); -$lang->admin->menu->dev['subMenu']->api = array('link' => "API|dev|api"); -$lang->admin->menu->dev['subMenu']->db = array('link' => "$lang->db|dev|db"); -$lang->admin->menu->dev['subMenu']->editor = array('link' => "$lang->editor|dev|editor"); -$lang->admin->menu->dev['subMenu']->entry = array('link' => "{$lang->admin->entry}|entry|browse", 'subModule' => 'entry'); - -$lang->admin->menu->dev['menuOrder'][5] = 'api'; -$lang->admin->menu->dev['menuOrder'][10] = 'db'; -$lang->admin->menu->dev['menuOrder'][15] = 'editor'; -$lang->admin->menu->dev['menuOrder'][20] = 'entry'; - -$lang->admin->menu->system['subMenu'] = new stdclass(); -$lang->admin->menu->system['subMenu']->data = array('link' => "{$lang->admin->data}|backup|index", 'subModule' => 'action'); -$lang->admin->menu->system['subMenu']->safe = array('link' => "$lang->security|admin|safe", 'alias' => 'checkweak'); -$lang->admin->menu->system['subMenu']->cron = array('link' => "{$lang->admin->cron}|cron|index", 'subModule' => 'cron'); -$lang->admin->menu->system['subMenu']->timezone = array('link' => "$lang->timezone|custom|timezone"); -$lang->admin->menu->system['subMenu']->buildIndex = array('link' => "{$lang->admin->buildIndex}|search|buildindex|"); - -if($config->visions == ',lite,' and $config->edition != 'open') $lang->admin->menu->system['subMenu']->license = array('link' => "License|admin|license'", 'alias' => 'license'); -if($config->visions != ',lite,') unset($lang->admin->menu->system['subMenu']->buildIndex); - -if($config->edition != 'open') -{ - $lang->admin->menu->system['subMenu']->ldap = array('link' => 'LDAP|ldap|set', 'subModule' => 'ldap'); - $lang->admin->menu->system['subMenu']->libreoffice = array('link' => 'Office|custom|libreoffice'); -} - -$lang->admin->dividerMenu = ',company,message,system,'; - /* adjust items of search. */ $lang->searchObjects['all'] = 'All'; $lang->searchObjects['todo'] = 'Todo'; @@ -275,25 +200,6 @@ global $config; if(isset($config->xuanxuan) && strpos($config->visions, ',rnd,') === false) { $lang->xuanxuan = new stdclass(); - $lang->admin->menu->xuanxuan = array('link' => 'Chat|admin|xuanxuan', 'subModule' => 'client,setting'); - $lang->admin->menuOrder[6] = 'xuanxuan'; - - $lang->admin->menu->xuanxuan['subMenu'] = new stdclass(); - $lang->admin->menu->xuanxuan['subMenu']->index = array('link' => 'Home|admin|xuanxuan'); - $lang->admin->menu->xuanxuan['subMenu']->setting = array('link' => 'Parameter|setting|xuanxuan'); - $lang->admin->menu->xuanxuan['subMenu']->update = array('link' => 'Update|client|browse', 'subModule' => 'client'); - - $lang->admin->menu->xuanxuan['menuOrder'][0] = 'index'; - $lang->admin->menu->xuanxuan['menuOrder'][5] = 'setting'; - $lang->admin->menu->xuanxuan['menuOrder'][10] = 'update'; - - if($config->edition != 'open') - { - $lang->admin->menu->xuanxuan['subModule'] = 'client,setting,conference'; - $lang->admin->menu->xuanxuan['subMenu']->conference = array('link' => 'Conference|conference|admin'); - $lang->admin->menu->xuanxuan['menuOrder'][7] = 'conference'; - $lang->navGroup->conference = 'admin'; - } $lang->navGroup->im = 'admin'; $lang->navGroup->setting = 'admin'; diff --git a/extension/lite/common/ext/lang/en/lite.php b/extension/lite/common/ext/lang/en/lite.php index 0a74146ca0..ef7b1da49c 100644 --- a/extension/lite/common/ext/lang/en/lite.php +++ b/extension/lite/common/ext/lang/en/lite.php @@ -143,81 +143,6 @@ $lang->doc->menuOrder[30] = 'custom'; $lang->doc->menu->project['subMenu'] = new stdclass(); $lang->doc->menu->custom['subMenu'] = new stdclass(); -if(isset($lang->admin->menu->xuanxuan)) $xuanxuanMenu = $lang->admin->menu->xuanxuan; -/* Admin menu. */ -$lang->admin->menu = new stdclass(); -$lang->admin->menu->index = array('link' => "$lang->indexPage|admin|index", 'alias' => 'register,certifytemail,certifyztmobile,ztcompany'); -if(isset($xuanxuanMenu)) $lang->admin->menu->xuanxuan = $xuanxuanMenu; -$lang->admin->menu->company = array('link' => "{$lang->personnel->common}|company|browse|", 'subModule' => ',user,dept,group,'); -$lang->admin->menu->custom = array('link' => "{$lang->custom->common}|custom|index", 'exclude' => 'custom-browsestoryconcept,custom-timezone,custom-estimate'); -$lang->admin->menu->extension = array('link' => "{$lang->extension->common}|extension|browse", 'subModule' => 'extension'); -$lang->admin->menu->dev = array('link' => "$lang->redev|dev|api", 'alias' => 'db', 'subModule' => 'dev,editor,entry'); -$lang->admin->menu->message = array('link' => "{$lang->message->common}|message|index", 'subModule' => 'message,mail,webhook,sms'); -$lang->admin->menu->system = array('link' => "{$lang->admin->system}|backup|index", 'subModule' => 'cron,backup,action,admin,search,ldap', 'exclude' => 'admin-index,admin-xuanxuan,admin-register,admin-ztcompany'); - -if($config->vision != 'lite') $lang->admin->menu->xuanxuan['link'] = 'Chat|admin|xuanxuan'; - -/* Admin menu order. */ -$lang->admin->menuOrder = array(); -$lang->admin->menuOrder[5] = 'index'; -$lang->admin->menuOrder[6] = 'xuanxuan'; -$lang->admin->menuOrder[10] = 'company'; -$lang->admin->menuOrder[15] = 'custom'; -$lang->admin->menuOrder[20] = 'message'; -$lang->admin->menuOrder[25] = 'extension'; -$lang->admin->menuOrder[30] = 'dev'; -$lang->admin->menuOrder[35] = 'system'; - -$lang->admin->menu->message['subMenu'] = new stdclass(); -$lang->admin->menu->message['subMenu']->message = array(); -$lang->admin->menu->message['subMenu']->mail = array('link' => "{$lang->mail->common}|mail|index", 'subModule' => 'mail'); -$lang->admin->menu->message['subMenu']->webhook = array('link' => "Webhook|webhook|browse", 'subModule' => 'webhook'); - -if($config->edition != 'open') $lang->admin->menu->message['subMenu']->sms = array('link' => "Message|sms|index"); - -$lang->admin->menu->message['subMenu']->browser = array('link' => "$lang->browser|message|browser"); -$lang->admin->menu->message['subMenu']->setting = array('link' => "$lang->settings|message|setting"); - -$lang->admin->menu->message['menuOrder'][5] = 'mail'; -$lang->admin->menu->message['menuOrder'][10] = 'webhook'; -$lang->admin->menu->message['menuOrder'][11] = 'sms'; -$lang->admin->menu->message['menuOrder'][15] = 'browser'; -$lang->admin->menu->message['menuOrder'][20] = 'setting'; - -$lang->admin->menu->company['subMenu'] = new stdclass(); -$lang->admin->menu->company['subMenu']->browseUser = array('link' => "{$lang->user->common}|company|browse", 'subModule' => 'user'); -$lang->admin->menu->company['subMenu']->dept = array('link' => "{$lang->dept->common}|dept|browse", 'subModule' => 'dept'); -$lang->admin->menu->company['subMenu']->browseGroup = array('link' => "{$lang->priv}|group|browse", 'subModule' => 'group'); - -$lang->admin->menu->dev['subMenu'] = new stdclass(); -$lang->admin->menu->dev['subMenu']->api = array('link' => "API|dev|api"); -$lang->admin->menu->dev['subMenu']->db = array('link' => "$lang->db|dev|db"); -$lang->admin->menu->dev['subMenu']->editor = array('link' => "$lang->editor|dev|editor"); -$lang->admin->menu->dev['subMenu']->entry = array('link' => "{$lang->admin->entry}|entry|browse", 'subModule' => 'entry'); - -$lang->admin->menu->dev['menuOrder'][5] = 'api'; -$lang->admin->menu->dev['menuOrder'][10] = 'db'; -$lang->admin->menu->dev['menuOrder'][15] = 'editor'; -$lang->admin->menu->dev['menuOrder'][20] = 'entry'; - -$lang->admin->menu->system['subMenu'] = new stdclass(); -$lang->admin->menu->system['subMenu']->data = array('link' => "{$lang->admin->data}|backup|index", 'subModule' => 'action'); -$lang->admin->menu->system['subMenu']->safe = array('link' => "$lang->security|admin|safe", 'alias' => 'checkweak'); -$lang->admin->menu->system['subMenu']->cron = array('link' => "{$lang->admin->cron}|cron|index", 'subModule' => 'cron'); -$lang->admin->menu->system['subMenu']->timezone = array('link' => "$lang->timezone|custom|timezone"); -$lang->admin->menu->system['subMenu']->buildIndex = array('link' => "{$lang->admin->buildIndex}|search|buildindex|"); - -if($config->visions == ',lite,' and $config->edition != 'open') $lang->admin->menu->system['subMenu']->license = array('link' => "License|admin|license'", 'alias' => 'license'); -if($config->visions != ',lite,') unset($lang->admin->menu->system['subMenu']->buildIndex); - -if($config->edition != 'open') -{ - $lang->admin->menu->system['subMenu']->ldap = array('link' => 'LDAP|ldap|set', 'subModule' => 'ldap'); - $lang->admin->menu->system['subMenu']->libreoffice = array('link' => 'Office|custom|libreoffice'); -} - -$lang->admin->dividerMenu = ',company,message,system,'; - /* adjust items of search. */ $lang->searchObjects['all'] = 'All'; $lang->searchObjects['todo'] = 'Todo'; @@ -275,25 +200,6 @@ global $config; if(isset($config->xuanxuan) && strpos($config->visions, ',rnd,') === false) { $lang->xuanxuan = new stdclass(); - $lang->admin->menu->xuanxuan = array('link' => 'Chat|admin|xuanxuan', 'subModule' => 'client,setting'); - $lang->admin->menuOrder[6] = 'xuanxuan'; - - $lang->admin->menu->xuanxuan['subMenu'] = new stdclass(); - $lang->admin->menu->xuanxuan['subMenu']->index = array('link' => 'Home|admin|xuanxuan'); - $lang->admin->menu->xuanxuan['subMenu']->setting = array('link' => 'Parameter|setting|xuanxuan'); - $lang->admin->menu->xuanxuan['subMenu']->update = array('link' => 'Update|client|browse', 'subModule' => 'client'); - - $lang->admin->menu->xuanxuan['menuOrder'][0] = 'index'; - $lang->admin->menu->xuanxuan['menuOrder'][5] = 'setting'; - $lang->admin->menu->xuanxuan['menuOrder'][10] = 'update'; - - if($config->edition != 'open') - { - $lang->admin->menu->xuanxuan['subModule'] = 'client,setting,conference'; - $lang->admin->menu->xuanxuan['subMenu']->conference = array('link' => 'Conference|conference|admin'); - $lang->admin->menu->xuanxuan['menuOrder'][7] = 'conference'; - $lang->navGroup->conference = 'admin'; - } $lang->navGroup->im = 'admin'; $lang->navGroup->setting = 'admin'; diff --git a/extension/lite/common/ext/lang/fr/lite.php b/extension/lite/common/ext/lang/fr/lite.php index 0a74146ca0..ef7b1da49c 100644 --- a/extension/lite/common/ext/lang/fr/lite.php +++ b/extension/lite/common/ext/lang/fr/lite.php @@ -143,81 +143,6 @@ $lang->doc->menuOrder[30] = 'custom'; $lang->doc->menu->project['subMenu'] = new stdclass(); $lang->doc->menu->custom['subMenu'] = new stdclass(); -if(isset($lang->admin->menu->xuanxuan)) $xuanxuanMenu = $lang->admin->menu->xuanxuan; -/* Admin menu. */ -$lang->admin->menu = new stdclass(); -$lang->admin->menu->index = array('link' => "$lang->indexPage|admin|index", 'alias' => 'register,certifytemail,certifyztmobile,ztcompany'); -if(isset($xuanxuanMenu)) $lang->admin->menu->xuanxuan = $xuanxuanMenu; -$lang->admin->menu->company = array('link' => "{$lang->personnel->common}|company|browse|", 'subModule' => ',user,dept,group,'); -$lang->admin->menu->custom = array('link' => "{$lang->custom->common}|custom|index", 'exclude' => 'custom-browsestoryconcept,custom-timezone,custom-estimate'); -$lang->admin->menu->extension = array('link' => "{$lang->extension->common}|extension|browse", 'subModule' => 'extension'); -$lang->admin->menu->dev = array('link' => "$lang->redev|dev|api", 'alias' => 'db', 'subModule' => 'dev,editor,entry'); -$lang->admin->menu->message = array('link' => "{$lang->message->common}|message|index", 'subModule' => 'message,mail,webhook,sms'); -$lang->admin->menu->system = array('link' => "{$lang->admin->system}|backup|index", 'subModule' => 'cron,backup,action,admin,search,ldap', 'exclude' => 'admin-index,admin-xuanxuan,admin-register,admin-ztcompany'); - -if($config->vision != 'lite') $lang->admin->menu->xuanxuan['link'] = 'Chat|admin|xuanxuan'; - -/* Admin menu order. */ -$lang->admin->menuOrder = array(); -$lang->admin->menuOrder[5] = 'index'; -$lang->admin->menuOrder[6] = 'xuanxuan'; -$lang->admin->menuOrder[10] = 'company'; -$lang->admin->menuOrder[15] = 'custom'; -$lang->admin->menuOrder[20] = 'message'; -$lang->admin->menuOrder[25] = 'extension'; -$lang->admin->menuOrder[30] = 'dev'; -$lang->admin->menuOrder[35] = 'system'; - -$lang->admin->menu->message['subMenu'] = new stdclass(); -$lang->admin->menu->message['subMenu']->message = array(); -$lang->admin->menu->message['subMenu']->mail = array('link' => "{$lang->mail->common}|mail|index", 'subModule' => 'mail'); -$lang->admin->menu->message['subMenu']->webhook = array('link' => "Webhook|webhook|browse", 'subModule' => 'webhook'); - -if($config->edition != 'open') $lang->admin->menu->message['subMenu']->sms = array('link' => "Message|sms|index"); - -$lang->admin->menu->message['subMenu']->browser = array('link' => "$lang->browser|message|browser"); -$lang->admin->menu->message['subMenu']->setting = array('link' => "$lang->settings|message|setting"); - -$lang->admin->menu->message['menuOrder'][5] = 'mail'; -$lang->admin->menu->message['menuOrder'][10] = 'webhook'; -$lang->admin->menu->message['menuOrder'][11] = 'sms'; -$lang->admin->menu->message['menuOrder'][15] = 'browser'; -$lang->admin->menu->message['menuOrder'][20] = 'setting'; - -$lang->admin->menu->company['subMenu'] = new stdclass(); -$lang->admin->menu->company['subMenu']->browseUser = array('link' => "{$lang->user->common}|company|browse", 'subModule' => 'user'); -$lang->admin->menu->company['subMenu']->dept = array('link' => "{$lang->dept->common}|dept|browse", 'subModule' => 'dept'); -$lang->admin->menu->company['subMenu']->browseGroup = array('link' => "{$lang->priv}|group|browse", 'subModule' => 'group'); - -$lang->admin->menu->dev['subMenu'] = new stdclass(); -$lang->admin->menu->dev['subMenu']->api = array('link' => "API|dev|api"); -$lang->admin->menu->dev['subMenu']->db = array('link' => "$lang->db|dev|db"); -$lang->admin->menu->dev['subMenu']->editor = array('link' => "$lang->editor|dev|editor"); -$lang->admin->menu->dev['subMenu']->entry = array('link' => "{$lang->admin->entry}|entry|browse", 'subModule' => 'entry'); - -$lang->admin->menu->dev['menuOrder'][5] = 'api'; -$lang->admin->menu->dev['menuOrder'][10] = 'db'; -$lang->admin->menu->dev['menuOrder'][15] = 'editor'; -$lang->admin->menu->dev['menuOrder'][20] = 'entry'; - -$lang->admin->menu->system['subMenu'] = new stdclass(); -$lang->admin->menu->system['subMenu']->data = array('link' => "{$lang->admin->data}|backup|index", 'subModule' => 'action'); -$lang->admin->menu->system['subMenu']->safe = array('link' => "$lang->security|admin|safe", 'alias' => 'checkweak'); -$lang->admin->menu->system['subMenu']->cron = array('link' => "{$lang->admin->cron}|cron|index", 'subModule' => 'cron'); -$lang->admin->menu->system['subMenu']->timezone = array('link' => "$lang->timezone|custom|timezone"); -$lang->admin->menu->system['subMenu']->buildIndex = array('link' => "{$lang->admin->buildIndex}|search|buildindex|"); - -if($config->visions == ',lite,' and $config->edition != 'open') $lang->admin->menu->system['subMenu']->license = array('link' => "License|admin|license'", 'alias' => 'license'); -if($config->visions != ',lite,') unset($lang->admin->menu->system['subMenu']->buildIndex); - -if($config->edition != 'open') -{ - $lang->admin->menu->system['subMenu']->ldap = array('link' => 'LDAP|ldap|set', 'subModule' => 'ldap'); - $lang->admin->menu->system['subMenu']->libreoffice = array('link' => 'Office|custom|libreoffice'); -} - -$lang->admin->dividerMenu = ',company,message,system,'; - /* adjust items of search. */ $lang->searchObjects['all'] = 'All'; $lang->searchObjects['todo'] = 'Todo'; @@ -275,25 +200,6 @@ global $config; if(isset($config->xuanxuan) && strpos($config->visions, ',rnd,') === false) { $lang->xuanxuan = new stdclass(); - $lang->admin->menu->xuanxuan = array('link' => 'Chat|admin|xuanxuan', 'subModule' => 'client,setting'); - $lang->admin->menuOrder[6] = 'xuanxuan'; - - $lang->admin->menu->xuanxuan['subMenu'] = new stdclass(); - $lang->admin->menu->xuanxuan['subMenu']->index = array('link' => 'Home|admin|xuanxuan'); - $lang->admin->menu->xuanxuan['subMenu']->setting = array('link' => 'Parameter|setting|xuanxuan'); - $lang->admin->menu->xuanxuan['subMenu']->update = array('link' => 'Update|client|browse', 'subModule' => 'client'); - - $lang->admin->menu->xuanxuan['menuOrder'][0] = 'index'; - $lang->admin->menu->xuanxuan['menuOrder'][5] = 'setting'; - $lang->admin->menu->xuanxuan['menuOrder'][10] = 'update'; - - if($config->edition != 'open') - { - $lang->admin->menu->xuanxuan['subModule'] = 'client,setting,conference'; - $lang->admin->menu->xuanxuan['subMenu']->conference = array('link' => 'Conference|conference|admin'); - $lang->admin->menu->xuanxuan['menuOrder'][7] = 'conference'; - $lang->navGroup->conference = 'admin'; - } $lang->navGroup->im = 'admin'; $lang->navGroup->setting = 'admin'; diff --git a/extension/lite/common/ext/lang/zh-cn/lite.php b/extension/lite/common/ext/lang/zh-cn/lite.php index bf296cab43..dd43e3aeca 100644 --- a/extension/lite/common/ext/lang/zh-cn/lite.php +++ b/extension/lite/common/ext/lang/zh-cn/lite.php @@ -53,7 +53,6 @@ else $lang->task->common = '任务'; $lang->dashboard = isset($lang->dashboard->common) ? $lang->dashboard->common : $lang->dashboard; - /* Ticket. */ if($config->edition != 'open') $lang->feedback->menu->ticket = array('link' => '工单|ticket|browse|browseType=unclosed'); @@ -144,82 +143,6 @@ $lang->doc->menuOrder[30] = 'custom'; $lang->doc->menu->project['subMenu'] = new stdclass(); $lang->doc->menu->custom['subMenu'] = new stdclass(); -if(isset($lang->admin->menu->xuanxuan)) $xuanxuanMenu = $lang->admin->menu->xuanxuan; -/* Admin menu. */ -$lang->admin->menu = new stdclass(); -$lang->admin->menu->index = array('link' => "$lang->indexPage|admin|index", 'alias' => 'register,certifytemail,certifyztmobile,ztcompany'); -if(isset($xuanxuanMenu)) $lang->admin->menu->xuanxuan = $xuanxuanMenu; -$lang->admin->menu->company = array('link' => "{$lang->personnel->common}|company|browse|", 'subModule' => ',user,dept,group,'); -$lang->admin->menu->custom = array('link' => "{$lang->custom->common}|custom|index", 'exclude' => 'custom-browsestoryconcept,custom-timezone,custom-estimate'); -$lang->admin->menu->extension = array('link' => "{$lang->extension->common}|extension|browse", 'subModule' => 'extension'); -$lang->admin->menu->dev = array('link' => "$lang->redev|dev|api", 'alias' => 'db', 'subModule' => 'dev,editor,entry'); -$lang->admin->menu->message = array('link' => "{$lang->message->common}|message|index", 'subModule' => 'message,mail,webhook,sms'); -$lang->admin->menu->system = array('link' => "{$lang->admin->system}|backup|index", 'subModule' => 'cron,backup,action,admin,search,ldap', 'exclude' => 'admin-index,admin-xuanxuan,admin-register,admin-ztcompany'); - -if($config->vision != 'lite') $lang->admin->menu->xuanxuan['link'] = '聊天|admin|xuanxuan'; - -/* Admin menu order. */ -$lang->admin->menuOrder = array(); -$lang->admin->menuOrder[5] = 'index'; -$lang->admin->menuOrder[6] = 'xuanxuan'; -$lang->admin->menuOrder[10] = 'company'; -$lang->admin->menuOrder[15] = 'custom'; -$lang->admin->menuOrder[20] = 'message'; -$lang->admin->menuOrder[25] = 'extension'; -$lang->admin->menuOrder[30] = 'dev'; -$lang->admin->menuOrder[35] = 'system'; - -$lang->admin->menu->message['subMenu'] = new stdclass(); -$lang->admin->menu->message['subMenu']->message = array(); -$lang->admin->menu->message['subMenu']->mail = array('link' => "{$lang->mail->common}|mail|index", 'subModule' => 'mail'); -$lang->admin->menu->message['subMenu']->webhook = array('link' => "Webhook|webhook|browse", 'subModule' => 'webhook'); - -if($config->edition != 'open') $lang->admin->menu->message['subMenu']->sms = array('link' => "短信|sms|index"); - -$lang->admin->menu->message['subMenu']->browser = array('link' => "$lang->browser|message|browser"); -$lang->admin->menu->message['subMenu']->setting = array('link' => "$lang->settings|message|setting"); - -$lang->admin->menu->message['menuOrder'][5] = 'mail'; -$lang->admin->menu->message['menuOrder'][10] = 'webhook'; -$lang->admin->menu->message['menuOrder'][11] = 'sms'; -$lang->admin->menu->message['menuOrder'][15] = 'browser'; -$lang->admin->menu->message['menuOrder'][20] = 'setting'; - -$lang->admin->menu->company['subMenu'] = new stdclass(); -$lang->admin->menu->company['subMenu']->browseUser = array('link' => "{$lang->user->common}|company|browse", 'subModule' => 'user'); -$lang->admin->menu->company['subMenu']->dept = array('link' => "{$lang->dept->common}|dept|browse", 'subModule' => 'dept'); -$lang->admin->menu->company['subMenu']->browseGroup = array('link' => "{$lang->priv}|group|browse", 'subModule' => 'group'); - -$lang->admin->menu->dev['subMenu'] = new stdclass(); -$lang->admin->menu->dev['subMenu']->api = array('link' => "API|dev|api"); -$lang->admin->menu->dev['subMenu']->db = array('link' => "$lang->db|dev|db"); -$lang->admin->menu->dev['subMenu']->editor = array('link' => "$lang->editor|dev|editor"); -$lang->admin->menu->dev['subMenu']->entry = array('link' => "{$lang->admin->entry}|entry|browse", 'subModule' => 'entry'); - -$lang->admin->menu->dev['menuOrder'][5] = 'api'; -$lang->admin->menu->dev['menuOrder'][10] = 'db'; -$lang->admin->menu->dev['menuOrder'][15] = 'editor'; -$lang->admin->menu->dev['menuOrder'][20] = 'entry'; - -$lang->admin->menu->system['subMenu'] = new stdclass(); -$lang->admin->menu->system['subMenu']->backup = array('link' => "{$lang->backup->common}|backup|index"); -$lang->admin->menu->system['subMenu']->trash = array('link' => "{$lang->action->trash}|action|trash"); -$lang->admin->menu->system['subMenu']->safe = array('link' => "$lang->security|admin|safe", 'alias' => 'checkweak'); -$lang->admin->menu->system['subMenu']->cron = array('link' => "{$lang->admin->cron}|cron|index", 'subModule' => 'cron'); -$lang->admin->menu->system['subMenu']->timezone = array('link' => "$lang->timezone|custom|timezone"); -$lang->admin->menu->system['subMenu']->buildIndex = array('link' => "{$lang->admin->buildIndex}|search|buildindex|"); - -if($config->visions == ',lite,' and $config->edition != 'open') $lang->admin->menu->system['subMenu']->license = array('link' => "授权信息|admin|license'", 'alias' => 'license'); -if($config->visions != ',lite,') unset($lang->admin->menu->system['subMenu']->buildIndex); - -if($config->edition != 'open') -{ - $lang->admin->menu->system['subMenu']->ldap = array('link' => 'LDAP|ldap|set', 'subModule' => 'ldap'); - $lang->admin->menu->system['subMenu']->libreoffice = array('link' => 'Office|custom|libreoffice'); -} - -$lang->admin->dividerMenu = ',company,message,system,'; - /* adjust items of search. */ $lang->searchObjects['all'] = '全部'; $lang->searchObjects['todo'] = '待办'; @@ -277,25 +200,6 @@ global $config; if(isset($config->xuanxuan) && strpos($config->visions, ',rnd,') === false) { $lang->xuanxuan = new stdclass(); - $lang->admin->menu->xuanxuan = array('link' => '聊天|admin|xuanxuan', 'subModule' => 'client,setting'); - $lang->admin->menuOrder[6] = 'xuanxuan'; - - $lang->admin->menu->xuanxuan['subMenu'] = new stdclass(); - $lang->admin->menu->xuanxuan['subMenu']->index = array('link' => '首页|admin|xuanxuan'); - $lang->admin->menu->xuanxuan['subMenu']->setting = array('link' => '参数|setting|xuanxuan'); - $lang->admin->menu->xuanxuan['subMenu']->update = array('link' => '更新|client|browse', 'subModule' => 'client'); - - $lang->admin->menu->xuanxuan['menuOrder'][0] = 'index'; - $lang->admin->menu->xuanxuan['menuOrder'][5] = 'setting'; - $lang->admin->menu->xuanxuan['menuOrder'][10] = 'update'; - - if($config->edition != 'open') - { - $lang->admin->menu->xuanxuan['subModule'] = 'client,setting,conference'; - $lang->admin->menu->xuanxuan['subMenu']->conference = array('link' => '音视频|conference|admin'); - $lang->admin->menu->xuanxuan['menuOrder'][7] = 'conference'; - $lang->navGroup->conference = 'admin'; - } $lang->navGroup->im = 'admin'; $lang->navGroup->setting = 'admin'; diff --git a/module/admin/lang/menu.php b/module/admin/lang/menu.php index 4ec645fefb..53bbc299ba 100644 --- a/module/admin/lang/menu.php +++ b/module/admin/lang/menu.php @@ -65,7 +65,7 @@ $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['subMenu']['group'] = array('link' => "{$lang->priv}|group|browse|", 'subModule' => 'group'); $lang->admin->menuList->user['menuOrder']['5'] = 'dept'; $lang->admin->menuList->user['menuOrder']['10'] = 'user'; @@ -77,7 +77,7 @@ $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['subMenu']['waterfall'] = array('link' => "{$lang->waterfallModel}|stage|settype|", 'subModule' => 'stage'); $lang->admin->menuList->model['menuOrder']['5'] = 'common'; $lang->admin->menuList->model['menuOrder']['15'] = 'waterfall'; @@ -122,3 +122,13 @@ $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'; + +if($config->vision == 'lite') +{ + unset($lang->admin->menuList->system['subMenu']['mode']); + unset($lang->admin->menuList->system['subMenu']['buildindex']); + unset($lang->admin->menuList->system['subMenu']['tableengine']); + unset($lang->admin->menuList->system['menuOrder']['5']); + unset($lang->admin->menuList->system['menuOrder']['45']); + unset($lang->admin->menuList->system['menuOrder']['50']); +} diff --git a/module/custom/view/required.html.php b/module/custom/view/required.html.php index eb83cf9aa6..c98d668b19 100644 --- a/module/custom/view/required.html.php +++ b/module/custom/view/required.html.php @@ -11,6 +11,13 @@ */ ?> +