From b671fcc76d90abe1592c86140e0be332859e602f Mon Sep 17 00:00:00 2001 From: songchenxuan Date: Tue, 16 Jul 2024 15:33:32 +0800 Subject: [PATCH] * [bug#123200,done,1h] add getFieldMap. --- module/pivot/config.php | 10 ++++++++-- module/pivot/control.php | 4 ++-- module/pivot/model.php | 13 +++++++++++-- 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/module/pivot/config.php b/module/pivot/config.php index 05d831abae..0cb103eea0 100644 --- a/module/pivot/config.php +++ b/module/pivot/config.php @@ -1,7 +1,13 @@ pivot = new stdclass(); -$config->pivot->widthInput = 128; -$config->pivot->widthDate = 248; +$config->pivot->objectTableFieldMap = array(); +$config->pivot->objectTableFieldMap['user.gender'] = array('module' => 'user', 'variable' => 'genderList'); + +if($config->edition != 'open') +{ + $config->pivot->objectTableFieldMap['feedback.solution'] = array('module' => 'feedback', 'variable' => 'solutionList'); +} $config->pivot->maxFeatureItem = 5; diff --git a/module/pivot/control.php b/module/pivot/control.php index fbf4c1ce7a..ed0b9eec1c 100644 --- a/module/pivot/control.php +++ b/module/pivot/control.php @@ -150,8 +150,8 @@ class pivot extends control $datas = $this->pivot->getDrillDatas($drill, $drillFields); $result = $this->pivot->processColData($drill->object, $cols, $datas); - $cols = $result['cols']; - $datas = $result['data']; + $cols = $result['cols']; + $datas = $result['data']; $this->view->cols = $cols; $this->view->datas = $datas; diff --git a/module/pivot/model.php b/module/pivot/model.php index 07f3ce4ec5..124866f7d8 100644 --- a/module/pivot/model.php +++ b/module/pivot/model.php @@ -2639,7 +2639,7 @@ class pivotModel extends model * @access public * @return array */ - public function processColData($object, $cols, $data) + public function processColData(string $object, array $cols, array $data): array { $objectFieldMap = $this->config->pivot->objectTableFieldMap; foreach($cols as $field => $col) @@ -2647,12 +2647,21 @@ class pivotModel extends model $objectField = $object . '.' . $field; if(!isset($objectFieldMap[$objectField])) continue; - $fieldMap = $objectFieldMap[$objectField]; + $fieldMap = $this->getFieldMap($objectFieldMap[$objectField]); foreach($data as $index => $obj) $data[$index]->$field = zget($fieldMap, $obj->$field, $obj->$field); } return array('cols' => $cols, 'data' => $data); } + + public function getFieldMap(array $moduleAndVar) + { + $module = $moduleAndVar['module']; + $variable = $moduleAndVar['variable']; + $this->app->loadLang($module); + + return $this->lang->$module->$variable; + } } /**