From c1368f9668467dabfb104e97165e1c6f59b5ab6a Mon Sep 17 00:00:00 2001 From: Awilum Date: Wed, 5 Jun 2019 15:27:55 +0300 Subject: [PATCH] Flextype Box Plugin: Admin #125 #117 - Entries Controller/Views implementation --- .../app/Controllers/EntriesController.php | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/site/plugins/admin/app/Controllers/EntriesController.php b/site/plugins/admin/app/Controllers/EntriesController.php index a218cab0..d3db616b 100644 --- a/site/plugins/admin/app/Controllers/EntriesController.php +++ b/site/plugins/admin/app/Controllers/EntriesController.php @@ -584,26 +584,30 @@ class EntriesController extends Controller { $id = $request->getQueryParams()['id']; + $to_save_data = []; + $result_data = []; $data = $request->getParsedBody(); - $_data = []; - foreach($data as $key => $value) { $pos = strpos($key, '_json'); if ($pos === false) { - $_data[$key] = $value; + $to_save_data[$key] = $value; } else { - $_data[str_replace('_json','',$key)] = JsonParser::decode($value); + $to_save_data[str_replace('_json','',$key)] = JsonParser::decode($value); } } - Arr::delete($_data, 'slug'); - Arr::delete($_data, 'csrf_value'); - Arr::delete($_data, 'csrf_name'); - Arr::delete($_data, 'action'); - - if ($this->entries->update($id, $_data)) { + Arr::delete($to_save_data, 'slug'); + Arr::delete($to_save_data, 'csrf_value'); + Arr::delete($to_save_data, 'csrf_name'); + Arr::delete($to_save_data, 'action'); + + $entry = $this->entries->fetch($id); + + $result_data = array_merge($entry, $to_save_data); + + if ($this->entries->update($id, $result_data)) { $this->flash->addMessage('success', __('admin_message_entry_changes_saved')); } else { $this->flash->addMessage('error', __('admin_message_entry_changes_not_saved'));