From 23e68416a236e16f2fc89911bf9d9bff96308b28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Wed, 13 Jun 2018 16:45:21 +0200 Subject: [PATCH] Improve isChecked --- CustomFields/CustomFieldChoice.php | 21 ++++++++++++--------- Resources/config/services.yml | 1 + 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/CustomFields/CustomFieldChoice.php b/CustomFields/CustomFieldChoice.php index 26d6394ed..2c0ea0fd4 100644 --- a/CustomFields/CustomFieldChoice.php +++ b/CustomFields/CustomFieldChoice.php @@ -363,17 +363,22 @@ class CustomFieldChoice extends AbstractCustomField public function isChecked(CustomField $cf, $choiceSlug, $data) { - $deserialized = $this->deserialize($data, $cf); - - if ($deserialized === null) { + if ($data === null) { return false; } - dump($deserialized); + if ($cf->getOptions()[self::MULTIPLE]) { - - return \in_array($choiceSlug, $deserialized); + if ($cf->getOptions()[self::ALLOW_OTHER]) { + return \in_array($choiceSlug, $data['_choices']); + } else { + return \in_array($choiceSlug, $data); + } } else { - return $data === $choiceSlug; + if ($cf->getOptions()[self::ALLOW_OTHER]) { + return $data['_choices'] === $choiceSlug; + } else { + return $data === $choiceSlug; + } } } @@ -389,8 +394,6 @@ class CustomFieldChoice extends AbstractCustomField public function extractOtherValue(CustomField $cf, array $data = null) { - dump('extracting'); - dump($data); return $data['_other']; } } diff --git a/Resources/config/services.yml b/Resources/config/services.yml index c33c13cd8..805b84887 100644 --- a/Resources/config/services.yml +++ b/Resources/config/services.yml @@ -6,6 +6,7 @@ services: class: Chill\CustomFieldsBundle\Service\CustomFieldProvider call: - [setContainer, ["@service_container"]] + Chill\CustomFieldsBundle\Service\CustomFieldProvider: '@chill.custom_field.provider' chill.custom_field.custom_field_choice_type: class: Chill\CustomFieldsBundle\Form\CustomFieldType