diff --git a/packages/Webkul/Admin/src/Http/Controllers/ConfigurationController.php b/packages/Webkul/Admin/src/Http/Controllers/ConfigurationController.php
index 76632a9dc..6b5511876 100644
--- a/packages/Webkul/Admin/src/Http/Controllers/ConfigurationController.php
+++ b/packages/Webkul/Admin/src/Http/Controllers/ConfigurationController.php
@@ -83,7 +83,7 @@ class ConfigurationController extends Controller
$slugs = $this->getDefaultConfigSlugs();
if(count($slugs)) {
- return redirect()->route('admin.configuration.index', $slugs);
+ return redirect()->route('admin.configuration.index', $slugs);
}
return view($this->_config['view'], ['config' => $this->configTree]);
diff --git a/packages/Webkul/Admin/src/Resources/views/configuration/field-type.blade.php b/packages/Webkul/Admin/src/Resources/views/configuration/field-type.blade.php
index 7a0399cd1..2d7dc1a0f 100644
--- a/packages/Webkul/Admin/src/Resources/views/configuration/field-type.blade.php
+++ b/packages/Webkul/Admin/src/Resources/views/configuration/field-type.blade.php
@@ -10,15 +10,15 @@
$key = $item['key'];
$key = explode(".", $key);
- array_shift($key);
$firstField = current($key);
$secondField = next($key);
- $key = implode(".", $key);
+ $thirdField = end($key);
+
+ $name = $item['key'] . '.' . $field['name'];
- $name = $key . '.' . $field['name'];
?>
-
+
\ No newline at end of file
diff --git a/packages/Webkul/Core/src/Core.php b/packages/Webkul/Core/src/Core.php
index 9516f63d5..aeba6ae3c 100644
--- a/packages/Webkul/Core/src/Core.php
+++ b/packages/Webkul/Core/src/Core.php
@@ -545,8 +545,13 @@ class Core
}
}
- if(!$coreConfigValue)
+ if (!$coreConfigValue) {
+ $fields = explode(".", $field);
+ array_shift($fields);
+ $field = implode(".", $fields);
+
return Config::get($field);
+ }
return $coreConfigValue->value;
}
@@ -692,12 +697,7 @@ class Core
if (isset($coreData['fields'])) {
foreach ($coreData['fields'] as $field) {
- $key = $coreData['key'];
- $key = explode(".", $key);
- array_shift($key);
-
- $key = implode(".", $key);
- $name = $key . '.' . $field['name'];
+ $name = $coreData['key'] . '.' . $field['name'];
if ($name == $fieldName ) {
return $field;
diff --git a/packages/Webkul/Core/src/Repositories/CoreConfigRepository.php b/packages/Webkul/Core/src/Repositories/CoreConfigRepository.php
index fb9de9779..7a8852f81 100644
--- a/packages/Webkul/Core/src/Repositories/CoreConfigRepository.php
+++ b/packages/Webkul/Core/src/Repositories/CoreConfigRepository.php
@@ -38,83 +38,103 @@ class CoreConfigRepository extends Repository
unset($data['channel']);
}
- foreach ($data as $method => $value)
- {
- foreach ($value as $key => $formData)
- {
- foreach (array_keys($formData) as $title)
+ foreach ($data as $method => $fieldData) {
+ $recurssiveData = $this->recuressiveArray($fieldData , $method);
+
+ foreach ($recurssiveData as $fieldName => $value) {
+ $field = core()->getConfigField($fieldName);
+
+ $channel_based = false;
+ $locale_based = false;
+
+ if (isset($field['channel_based']) && $field['channel_based']) {
+ $channel_based = true;
+ }
+
+ if (isset($field['locale_based']) && $field['locale_based']) {
+ $locale_based = true;
+ }
+
+ if (isset($field['channel_based']) && $field['channel_based'])
{
- $fieldName = $method . '.' . $key . '.' .$title;
- $value = $formData[$title];
- $field = core()->getConfigField($fieldName);
-
- $channel_based = false;
- $locale_based = false;
-
- if (isset($field['channel_based']) && $field['channel_based']) {
- $channel_based = true;
+ if (isset($field['locale_based']) && $field['locale_based'])
+ {
+ $coreConfigValue = $this->model
+ ->where('code', $fieldName)
+ ->where('locale_code', $locale)
+ ->where('channel_code', $channel)
+ ->get();
}
-
- if (isset($field['locale_based']) && $field['locale_based']) {
- $locale_based = true;
+ else
+ {
+ $coreConfigValue = $this->model
+ ->where('code', $fieldName)
+ ->where('channel_code', $channel)
+ ->get();
}
-
- if (isset($field['channel_based']) && $field['channel_based'])
+ } else
+ {
+ if (isset($field['locale_based']) && $field['locale_based'])
{
- if (isset($field['locale_based']) && $field['locale_based'])
- {
- $coreConfigValue = $this->model
- ->where('code', $fieldName)
- ->where('locale_code', $locale)
- ->where('channel_code', $channel)
- ->get();
- }
- else
- {
- $coreConfigValue = $this->model
- ->where('code', $fieldName)
- ->where('channel_code', $channel)
- ->get();
- }
- } else
- {
- if (isset($field['locale_based']) && $field['locale_based'])
- {
- $coreConfigValue = $this->model
- ->where('code', $fieldName)
- ->where('locale_code', $locale)
- ->get();
- }
- else
- {
- $coreConfigValue = $this->model
- ->where('code', $fieldName)
- ->get();
- }
+ $coreConfigValue = $this->model
+ ->where('code', $fieldName)
+ ->where('locale_code', $locale)
+ ->get();
}
-
- if (!count($coreConfigValue) > 0)
+ else
{
- $this->model->create([
- 'code' => $fieldName,
- 'value' => $value,
- 'locale_code' => $locale_based ? $locale : null,
- 'channel_code' => $channel_based ? $channel : null
- ]);
- } else
- {
- $updataData['code'] = $fieldName;
- $updataData['value'] = $value;
- $updataData['locale_code'] = $locale_based ? $locale : null;
- $updataData['channel_code'] = $channel_based ? $channel : null;
+ $coreConfigValue = $this->model
+ ->where('code', $fieldName)
+ ->get();
+ }
+ }
- foreach ($coreConfigValue as $coreConfig)
- {
- $coreConfig->update($updataData);
- }
+ if (!count($coreConfigValue) > 0)
+ {
+ $this->model->create([
+ 'code' => $fieldName,
+ 'value' => $value,
+ 'locale_code' => $locale_based ? $locale : null,
+ 'channel_code' => $channel_based ? $channel : null
+ ]);
+ } else
+ {
+ $updataData['code'] = $fieldName;
+ $updataData['value'] = $value;
+ $updataData['locale_code'] = $locale_based ? $locale : null;
+ $updataData['channel_code'] = $channel_based ? $channel : null;
+
+ foreach ($coreConfigValue as $coreConfig)
+ {
+ $coreConfig->update($updataData);
}
}
}
}
}
+
+ /**
+ * @param array $formData
+ * @param string $method
+ * @return array
+ */
+ public function recuressiveArray(array $formData, $method) {
+ static $data =[];
+ foreach ($formData as $form => $formValue) {
+ $value = $method . '.' . $form;
+ if (is_array($formValue)) {
+ $this->recuressiveArray($formValue, $value);
+ } else {
+ $data[$value] = $formValue;
+ }
+ }
+
+ return $data;
+ }
+
+
+
+
+
+
}
\ No newline at end of file