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