From 5f40ba749b2614764cdd83433d3287bcc50cbff9 Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Tue, 13 Apr 2021 11:43:12 -0400 Subject: [PATCH] APIv4 - Fix unserialize settings --- Civi/Api4/Action/Setting/Get.php | 6 +++--- tests/phpunit/api/v4/Entity/SettingTest.php | 7 +++++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/Civi/Api4/Action/Setting/Get.php b/Civi/Api4/Action/Setting/Get.php index 9a6539de66..6ce7b39b8e 100644 --- a/Civi/Api4/Action/Setting/Get.php +++ b/Civi/Api4/Action/Setting/Get.php @@ -55,9 +55,9 @@ class Get extends AbstractSettingAction { ]; } } - foreach ($result as $name => &$setting) { - if (isset($setting['value']) && !empty($meta[$name]['serialize'])) { - $setting['value'] = \CRM_Core_DAO::unSerializeField($setting['value'], $meta[$name]['serialize']); + foreach ($result as &$setting) { + if (isset($setting['value']) && !empty($meta[$setting['name']]['serialize'])) { + $setting['value'] = \CRM_Core_DAO::unSerializeField($setting['value'], $meta[$setting['name']]['serialize']); } } } diff --git a/tests/phpunit/api/v4/Entity/SettingTest.php b/tests/phpunit/api/v4/Entity/SettingTest.php index a19ef53c07..0a36570289 100644 --- a/tests/phpunit/api/v4/Entity/SettingTest.php +++ b/tests/phpunit/api/v4/Entity/SettingTest.php @@ -50,4 +50,11 @@ class SettingTest extends UnitTestCase { $this->assertContains('setting', $message); } + public function testSerailizedSetting() { + $settings = \Civi\Api4\Setting::get(FALSE) + ->addSelect('contact_edit_options') + ->execute(); + $this->assertTrue(is_array($settings[0]['value'])); + } + } -- 2.25.1