/** * @param AttributeInterface $attribute * @param array $data */ protected function addLabels(AttributeInterface $attribute, $data) { foreach ($data as $key => $label) { if (strpos($key, 'label-') !== false) { $locale = str_replace('label-', '', $key); $translation = $attribute->getTranslation($locale); $translation->setLabel($label); } } }
function it_throws_an_exception_if_no_groups_found($attributeGroupRepository, AttributeInterface $attribute, AttributeTranslation $translation) { $attribute->getId()->willReturn(null); $attribute->getAttributeType()->willReturn('pim_reference_data_simpleselect'); $data = ['labels' => ['en_US' => 'Test1', 'fr_FR' => 'Test2'], 'group' => 'marketing', 'attributeType' => 'pim_catalog_text']; $attribute->setLocale('en_US')->shouldBeCalled(); $attribute->setLocale('fr_FR')->shouldBeCalled(); $attribute->getTranslation()->willReturn($translation); $translation->setLabel('Test1')->shouldBeCalled(); $translation->setLabel('Test2')->shouldBeCalled(); $attributeGroupRepository->findOneByIdentifier('marketing')->willReturn(null); $this->shouldThrow(new \InvalidArgumentException('AttributeGroup "marketing" does not exist'))->during('update', [$attribute, $data]); }
/** * @param AttributeInterface $attribute * @param string $field * @param mixed $data * * @throws \InvalidArgumentException */ protected function setData(AttributeInterface $attribute, $field, $data) { if ('labels' === $field) { foreach ($data as $localeCode => $label) { $attribute->setLocale($localeCode); $translation = $attribute->getTranslation(); $translation->setLabel($label); } } elseif ('group' === $field) { $attributeGroup = $this->findAttributeGroup($data); if (null !== $attributeGroup) { $attribute->setGroup($attributeGroup); } else { throw new \InvalidArgumentException(sprintf('AttributeGroup "%s" does not exist', $data)); } } else { $this->accessor->setValue($attribute, $field, $data); } }
/** * @param AttributeInterface $attribute * @param array $data */ protected function setLabels(AttributeInterface $attribute, array $data) { foreach ($data as $localeCode => $label) { $attribute->setLocale($localeCode); $translation = $attribute->getTranslation(); $translation->setLabel($label); } }
/** * @param AttributeInterface $attribute * @param array $data */ protected function addLabels(AttributeInterface $attribute, $data) { foreach ($data['label'] as $locale => $label) { $translation = $attribute->getTranslation($locale); $translation->setLabel($label); } }