From 4d400723ce18f612d94a427fc49637ec205122dd Mon Sep 17 00:00:00 2001 From: tianshujie Date: Fri, 3 Mar 2023 15:54:33 +0800 Subject: [PATCH] * Modify more select display method. --- framework/router.class.php | 2 +- module/custom/model.php | 30 +++++++++--------------- module/dev/model.php | 30 ++++++++++++++++-------- module/product/lang/de.php | 18 +++++++-------- module/product/lang/fr.php | 18 +++++++-------- module/product/lang/zh-cn.php | 16 ++++++------- module/product/view/browse.html.php | 36 ++++++++++++++--------------- 7 files changed, 76 insertions(+), 74 deletions(-) diff --git a/framework/router.class.php b/framework/router.class.php index aba0b08a3d..289e477a8c 100755 --- a/framework/router.class.php +++ b/framework/router.class.php @@ -124,7 +124,7 @@ class router extends baseRouter { foreach($lang->db->custom[$moduleName] as $section => $fields) { - if($section == 'featureBar') + if(in_array($section, array('featureBar', 'moreSelects'))) { foreach($fields as $featureBarMethod => $featureBarValues) { diff --git a/module/custom/model.php b/module/custom/model.php index af592282a0..f653a11289 100644 --- a/module/custom/model.php +++ b/module/custom/model.php @@ -30,7 +30,7 @@ class customModel extends model while($row = $stmt->fetch()) { /* Replace common lang for menu. */ - if(strpos($row->module, 'Menu') !== false or strpos($row->section, 'featureBar-') !== false or $row->section == 'mainNav') + if(strpos($row->module, 'Menu') !== false or strpos($row->section, 'featureBar-') !== false or $row->section == 'mainNav' or strpos($row->section, 'moreSelects-') !== false) { $row->value = strtr($row->value, $this->config->custom->commonLang); } @@ -53,27 +53,19 @@ class customModel extends model { if(isset($sectionLang[$customLang->module][$customLang->section]['all']) and isset($sectionLang[$customLang->module][$customLang->section][$currentLang]) and $customLang->lang == 'all') continue; - if(strpos($customLang->section, 'featureBar-') !== false) + if(strpos($customLang->section, 'featureBar-') !== false or strpos($customLang->section, 'moreSelects-') !== false) { - $sections = explode('-', $customLang->section); - $firstKey = $sections[0]; - $sectionIndex = count($sections) - 1; - $sectionArr = array($customLang->key => $customLang->value); - $oldSectionArr = empty($processedLang[$customLang->module]) ? array() : $processedLang[$customLang->module]; - $oldFeatureBar = empty($oldSectionArr[$firstKey]) ? array() : $oldSectionArr[$firstKey]; - if(!empty($oldSectionArr)) + $sections = explode('-', $customLang->section); + $sections = array_reverse($sections); + if(!isset($processedLang[$customLang->module])) $processedLang[$customLang->module] = array(); + $sectionArr = array($customLang->key => $customLang->value); + foreach($sections as $section) { - for($i = 0; $i <= $sectionIndex; $i ++) - { - $sectionKey = $sections[$i]; - $oldSectionArr = isset($oldSectionArr[$sectionKey]) ? $oldSectionArr[$sectionKey] : array(); - } - $sectionArr = array_merge($oldSectionArr, $sectionArr); + $sectionKey = key($sectionArr); + $sectionArr[$section] = $sectionArr; + unset($sectionArr[$sectionKey]); } - - for($index = $sectionIndex; $index >= 0; $index --) $sectionArr = array($sections[$index] => $sectionArr); - $sectionArr[$firstKey] = array_merge($oldFeatureBar, $sectionArr[$firstKey]); - $processedLang[$customLang->module] = $sectionArr; + if(!empty($sectionArr)) $processedLang[$customLang->module] = array_merge_recursive($processedLang[$customLang->module], $sectionArr); } else { diff --git a/module/dev/model.php b/module/dev/model.php index b68b9ce88b..f18e33f3ce 100644 --- a/module/dev/model.php +++ b/module/dev/model.php @@ -448,10 +448,10 @@ class devModel extends model foreach($featureBars as $feature => $featureName) { - $selectKey = $feature . 'Selects'; - if(isset($defaultLang->$module->$selectKey)) + $moreSelectsTags = isset($defaultLang->{$module}->moreSelects[$method][$feature]) ? $defaultLang->{$module}->moreSelects[$method][$feature] : ''; + if($moreSelectsTags) { - foreach($defaultLang->$module->$selectKey as $feature => $featureName) $originalLangs[$langKey . $feature] = $featureName; + foreach($moreSelectsTags as $tagKey => $tagName) $originalLangs["moreSelects-{$method}-{$feature}_" . $tagKey] = $tagName; continue; } $originalLangs[$langKey . $feature] = $featureName; @@ -530,16 +530,28 @@ class devModel extends model if($this->config->vision == 'lite' and isset($this->config->dev->liteTagMethod["$module-$method"])) $method = $this->config->dev->liteTagMethod["$module-$method"]; $method = str_replace('_', '-', $method); - $customeds = $this->loadModel('custom')->getItems("lang={$language}&module={$module}§ion=featureBar-$method&vision={$this->config->vision}"); - $langKey = "featureBar-{$method}_"; + $customeds['featureBar'] = $this->loadModel('custom')->getItems("lang={$language}&module={$module}§ion=featureBar-$method&vision={$this->config->vision}"); + $customeds['moreSelects'] = $this->dao->select('*')->from(TABLE_LANG)->where('`lang`')->eq($language)->andWhere('module')->eq($module)->andWhere('section')->like("moreSelects-$method%")->andWhere('vision')->eq($this->config->vision)->fetchAll(); break; } - foreach($customeds as $customed) + foreach($customeds as $type => $customed) { - $customedKey = $customed->key; - if($type == 'second') $customedKey = $customed->section . '_' . $customed->key; - $customedLangs[$langKey . $customedKey] = $customed->value; + if(is_array($customed)) + { + foreach($customed as $row) + { + $langKey = $type == 'featureBar' ? "featureBar-{$method}_" : $row->section . '_'; + $rowKey = $row->key; + $customedLangs[$langKey . $rowKey] = $row->value; + } + } + else + { + $customedKey = $customed->key; + if($type == 'second') $customedKey = $customed->section . '_' . $customed->key; + $customedLangs[$langKey . $customedKey] = $customed->value; + } } return $customedLangs; diff --git a/module/product/lang/de.php b/module/product/lang/de.php index d6ca40aefc..7e7686b8b8 100644 --- a/module/product/lang/de.php +++ b/module/product/lang/de.php @@ -232,15 +232,15 @@ $lang->product->featureBar['project']['doing'] = 'In Arbeit'; $lang->product->featureBar['project']['suspended'] = 'Ausgesetzt'; $lang->product->featureBar['project']['closed'] = 'Geschlossen'; -$lang->product->moreSelects['openedbyme'] = $lang->product->openedByMe; -$lang->product->moreSelects['reviewedbyme'] = $lang->product->reviewedByMe; -$lang->product->moreSelects['assignedbyme'] = $lang->product->assignedByMe; -$lang->product->moreSelects['closedbyme'] = $lang->product->closedByMe; -$lang->product->moreSelects['activestory'] = $lang->product->activeStory; -$lang->product->moreSelects['changingstory'] = $lang->product->changingStory; -$lang->product->moreSelects['reviewingstory'] = $lang->product->reviewingStory; -$lang->product->moreSelects['willclose'] = $lang->product->willClose; -$lang->product->moreSelects['closedstory'] = $lang->product->closedStory; +$lang->product->moreSelects['more']['openedbyme'] = $lang->product->openedByMe; +$lang->product->moreSelects['more']['reviewedbyme'] = $lang->product->reviewedByMe; +$lang->product->moreSelects['more']['assignedbyme'] = $lang->product->assignedByMe; +$lang->product->moreSelects['more']['closedbyme'] = $lang->product->closedByMe; +$lang->product->moreSelects['more']['activestory'] = $lang->product->activeStory; +$lang->product->moreSelects['more']['changingstory'] = $lang->product->changingStory; +$lang->product->moreSelects['more']['reviewingstory'] = $lang->product->reviewingStory; +$lang->product->moreSelects['more']['willclose'] = $lang->product->willClose; +$lang->product->moreSelects['more']['closedstory'] = $lang->product->closedStory; $lang->product->featureBar['dynamic']['all'] = 'All'; $lang->product->featureBar['dynamic']['today'] = 'Today'; diff --git a/module/product/lang/fr.php b/module/product/lang/fr.php index c724f9fd4b..1855f2a7f9 100644 --- a/module/product/lang/fr.php +++ b/module/product/lang/fr.php @@ -232,15 +232,15 @@ $lang->product->featureBar['project']['doing'] = 'En cours'; $lang->product->featureBar['project']['suspended'] = 'Suspendu'; $lang->product->featureBar['project']['closed'] = 'Fermé'; -$lang->product->moreSelects['openedbyme'] = $lang->product->openedByMe; -$lang->product->moreSelects['reviewedbyme'] = $lang->product->reviewedByMe; -$lang->product->moreSelects['assignedbyme'] = $lang->product->assignedByMe; -$lang->product->moreSelects['closedbyme'] = $lang->product->closedByMe; -$lang->product->moreSelects['activestory'] = $lang->product->activeStory; -$lang->product->moreSelects['changingstory'] = $lang->product->changingStory; -$lang->product->moreSelects['reviewingstory'] = $lang->product->reviewingStory; -$lang->product->moreSelects['willclose'] = $lang->product->willClose; -$lang->product->moreSelects['closedstory'] = $lang->product->closedStory; +$lang->product->moreSelects['more']['openedbyme'] = $lang->product->openedByMe; +$lang->product->moreSelects['more']['reviewedbyme'] = $lang->product->reviewedByMe; +$lang->product->moreSelects['more']['assignedbyme'] = $lang->product->assignedByMe; +$lang->product->moreSelects['more']['closedbyme'] = $lang->product->closedByMe; +$lang->product->moreSelects['more']['activestory'] = $lang->product->activeStory; +$lang->product->moreSelects['more']['changingstory'] = $lang->product->changingStory; +$lang->product->moreSelects['more']['reviewingstory'] = $lang->product->reviewingStory; +$lang->product->moreSelects['more']['willclose'] = $lang->product->willClose; +$lang->product->moreSelects['more']['closedstory'] = $lang->product->closedStory; $lang->product->featureBar['dynamic']['all'] = 'All'; $lang->product->featureBar['dynamic']['today'] = 'Today'; diff --git a/module/product/lang/zh-cn.php b/module/product/lang/zh-cn.php index d0d2d481c1..ed511328a7 100644 --- a/module/product/lang/zh-cn.php +++ b/module/product/lang/zh-cn.php @@ -233,14 +233,14 @@ $lang->product->featureBar['project']['suspended'] = '已挂起'; $lang->product->featureBar['project']['closed'] = '已关闭'; -$lang->product->moreSelects['reviewedbyme'] = $lang->product->reviewedByMe; -$lang->product->moreSelects['assignedbyme'] = $lang->product->assignedByMe; -$lang->product->moreSelects['closedbyme'] = $lang->product->closedByMe; -$lang->product->moreSelects['activestory'] = $lang->product->activeStory; -$lang->product->moreSelects['changingstory'] = $lang->product->changingStory; -$lang->product->moreSelects['reviewingstory'] = $lang->product->reviewingStory; -$lang->product->moreSelects['willclose'] = $lang->product->willClose; -$lang->product->moreSelects['closedstory'] = $lang->product->closedStory; +$lang->product->moreSelects['browse']['more']['reviewedbyme'] = $lang->product->reviewedByMe; +$lang->product->moreSelects['browse']['more']['assignedbyme'] = $lang->product->assignedByMe; +$lang->product->moreSelects['browse']['more']['closedbyme'] = $lang->product->closedByMe; +$lang->product->moreSelects['browse']['more']['activestory'] = $lang->product->activeStory; +$lang->product->moreSelects['browse']['more']['changingstory'] = $lang->product->changingStory; +$lang->product->moreSelects['browse']['more']['reviewingstory'] = $lang->product->reviewingStory; +$lang->product->moreSelects['browse']['more']['willclose'] = $lang->product->willClose; +$lang->product->moreSelects['browse']['more']['closedstory'] = $lang->product->closedStory; $lang->product->featureBar['dynamic']['all'] = '全部'; $lang->product->featureBar['dynamic']['today'] = '今天'; diff --git a/module/product/view/browse.html.php b/module/product/view/browse.html.php index 9144fa823a..fcb8e10d82 100755 --- a/module/product/view/browse.html.php +++ b/module/product/view/browse.html.php @@ -108,28 +108,26 @@ js::set('vision', $this->config->vision); if(isset($menuItem->hidden)) continue; if($menuItem->name == 'emptysr' && $storyType == 'story') continue; $menuBrowseType = strpos($menuItem->name, 'QUERY') === 0 ? 'bySearch' : $menuItem->name; - if($menuItem->name == 'more') + $moreSelects = empty($lang->product->moreSelects[$app->rawMethod][$menuItem->name]) ? '' : $lang->product->moreSelects[$app->rawMethod][$menuItem->name]; + if($moreSelects) { - if(!empty($lang->product->moreSelects)) + $moreLabel = $lang->more; + $moreLabelActive = ''; + $storyBrowseType = $this->session->storyBrowseType; + if(isset($moreSelects[$storyBrowseType])) { - $moreLabel = $lang->more; - $moreLabelActive = ''; - $storyBrowseType = $this->session->storyBrowseType; - if(isset($lang->product->moreSelects[$storyBrowseType])) - { - $moreLabel = "{$lang->product->moreSelects[$storyBrowseType]} {$pager->recTotal}"; - $moreLabelActive = 'btn-active-text'; - } - echo '
'; - echo html::a('javascript:;', $moreLabel . " ", '', "data-toggle='dropdown' class='btn btn-link $moreLabelActive'"); - echo "
'; + $moreLabel = "{$moreSelects[$storyBrowseType]} {$pager->recTotal}"; + $moreLabelActive = 'btn-active-text'; } + echo '
'; + echo html::a('javascript:;', $moreLabel . " ", '', "data-toggle='dropdown' class='btn btn-link $moreLabelActive'"); + echo "
'; } elseif($menuItem->name == 'QUERY') {