diff --git a/src/Components/UpdateSettings.php b/src/Components/UpdateSettings.php new file mode 100644 index 0000000..4992040 --- /dev/null +++ b/src/Components/UpdateSettings.php @@ -0,0 +1,45 @@ +getData(); + $arraySettings = $settings->all(); + $newFieldKeys = []; + foreach ($arraySettings['main']['fields'] as $fieldKey) { + $partsFieldKey = explode(".", $fieldKey); + + preg_match('/\[(.*?)\]/', $fieldKey, $matches); + $fieldName = ''; + if (isset($matches[1])) { + $fieldName = $matches[1]; + } + [,$fieldType] = $partsFieldKey; + if ($fieldType !== "phoneFields") { + $newFieldKeys[] = $fieldKey; + continue; + } + + [$preLastKey, $lastKey] = array_slice($partsFieldKey, -2, 2); + + if ($lastKey === "duplicates") { + $newFieldKeys[] = "contacts.phones.[$fieldName].duplicates"; + continue; + } + + $newFieldKeys[] = ($preLastKey === "phone") ? "data.phoneFields.[$fieldName].value.$lastKey" : $fieldKey; + } + + if (json_encode($arraySettings['main']['fields']) !== json_encode($newFieldKeys)) { + $settings->set('main.fields', $newFieldKeys); + $settingModel->setData($settings); + $settingModel->save(); + } + } +} \ No newline at end of file diff --git a/src/Forms/SettingsForm.php b/src/Forms/SettingsForm.php index 138f201..ab0dc4d 100644 --- a/src/Forms/SettingsForm.php +++ b/src/Forms/SettingsForm.php @@ -17,6 +17,7 @@ use SalesRender\Plugin\Components\Form\Form; use SalesRender\Plugin\Components\Translations\Translator; use SalesRender\Plugin\Instance\Excel\Components\Columns; +use SalesRender\Plugin\Instance\Excel\Components\UpdateSettings; use SalesRender\Plugin\Instance\Excel\ValuesList\FormatValues; class SettingsForm extends Form @@ -30,6 +31,9 @@ public function __construct() { $columns = new Columns(); $format = new FormatValues(); + + UpdateSettings::updatesOutdatedFields(); + parent::__construct( Translator::get( 'settings',