From 2b64b892b1ca0dc57ba6dc10ecec972bc4f2fa2a Mon Sep 17 00:00:00 2001 From: daitingting Date: Fri, 16 Aug 2024 09:10:10 +0000 Subject: [PATCH] * [bug#53947,done,1h] Set field name. --- lib/pivotstate/pivotstate.class.php | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/lib/pivotstate/pivotstate.class.php b/lib/pivotstate/pivotstate.class.php index f6e66fd9fc..8cda7b3f0a 100644 --- a/lib/pivotstate/pivotstate.class.php +++ b/lib/pivotstate/pivotstate.class.php @@ -910,7 +910,8 @@ class pivotState $oldSetting = isset($oldFieldSettings[$field]) ? $oldFieldSettings[$field] : array(); if(!empty($oldSetting)) { - $newFieldSettings[$field] = $this->processFieldSettingLang($field, $oldSetting); + $newFieldSettings[$field] = $this->processFieldSettingLang($field, $oldSetting, $setting); + if($setting['type'] != $oldSetting['type'] && in_array($setting['type'], array('user', 'type'))) $newFieldSettings[$field]['type'] = $setting['type']; } else @@ -1007,17 +1008,23 @@ class pivotState * * @param string $field * @param array $fieldSetting + * @param array $newSetting * @access public * @return array */ - public function processFieldSettingLang($field, $fieldSetting) + public function processFieldSettingLang($field, $oldSetting, $newSetting = array()) { $lang = $this->clientLang; - if(isset($fieldSetting[$lang])) return $fieldSetting; + if(!empty($oldSetting[$lang])) return $oldSetting; - $fieldSetting[$lang] = isset($fieldSetting['name']) ? $fieldSetting['name'] : $field; + if(!empty($newSetting[$lang])) + { + $oldSetting[$lang] = $newSetting[$lang]; + return $oldSetting; + } - return $fieldSetting; + $oldSetting[$lang] = isset($oldSetting['name']) ? $oldSetting['name'] : $field; + return $oldSetting; } /**