/** * Create attribute options * * @param AbstractAttribute $attribute * @param array $data */ protected function addOptions(AbstractAttribute $attribute, $data) { $options = array_filter(explode('|', $data['options'])); foreach ($options as $option) { $attributeOption = new AttributeOption(); $translations = explode(',', $option); foreach ($translations as $translation) { $translation = explode(':', $translation); $locale = reset($translation); $value = end($translation); if ($locale == 'Code') { $attributeOption->setCode($value); } else { $optionValue = new AttributeOptionValue(); $optionValue->setLocale($locale); $optionValue->setValue($value); $attributeOption->addOptionValue($optionValue); } } $attribute->addOption($attributeOption); } }
/** * Ensure at least one option for the attribute * * @param AbstractAttribute $entity */ protected function ensureOneOption(AbstractAttribute $entity) { $selectTypes = array('pim_catalog_simpleselect', 'pim_catalog_multiselect'); if (in_array($entity->getAttributeType(), $selectTypes) && count($entity->getOptions()) < 1) { $option = $this->attributeManager->createAttributeOption(); $option->setTranslatable(true); $entity->addOption($option); } }
/** * Create attribute options * * @param AbstractAttribute $attribute * @param array $data */ protected function addOptions(AbstractAttribute $attribute, $data) { if (count($data['options']) === 1) { $attribute->setBackendType('option'); } elseif (count($data['options']) > 1) { $attribute->setBackendType('option'); } foreach ($data['options'] as $code => $values) { $attributeOption = new AttributeOption(); $attributeOption->setCode($code); foreach ($values as $locale => $value) { $optionValue = new AttributeOptionValue(); $optionValue->setLocale($locale); $optionValue->setValue($value); $attributeOption->addOptionValue($optionValue); } $attribute->addOption($attributeOption); } }