/** * {@inheritdoc} */ protected function normalizeOptions(AttributeInterface $attribute) { $options = $attribute->getOptions(); if ($options->isEmpty()) { $options = ''; } else { $data = array(); foreach ($options as $option) { $item = array(); foreach ($option->getOptionValues() as $value) { $label = str_replace('{locale}', $value->getLocale(), self::LOCALIZABLE_PATTERN); $label = str_replace('{value}', $value->getValue(), $label); $item[] = $label; } $data[] = 'Code:' . $option->getCode() . self::ITEM_SEPARATOR . implode(self::ITEM_SEPARATOR, $item); } $options = implode(self::GROUP_SEPARATOR, $data); } return $options; }
/** * Update attribute option sorting * * @param AttributeInterface $attribute * @param array $sorting */ public function updateSorting(AttributeInterface $attribute, array $sorting = []) { foreach ($attribute->getOptions() as $option) { if (isset($sorting[$option->getId()])) { $option->setSortOrder($sorting[$option->getId()]); } else { $option->setSortOrder(0); } } $this->optionSaver->saveAll($attribute->getOptions()->toArray()); }
/** * Update attribute option sorting * * @param AttributeInterface $attribute * @param array $sorting */ public function updateSorting(AttributeInterface $attribute, array $sorting = []) { foreach ($attribute->getOptions() as $option) { if (isset($sorting[$option->getId()])) { $option->setSortOrder($sorting[$option->getId()]); } else { $option->setSortOrder(0); } $this->objectManager->persist($option); } $this->objectManager->flush(); }
/** * Normalize options * * @param AttributeInterface $attribute * * @return array */ protected function normalizeOptions(AttributeInterface $attribute) { $data = []; $options = $attribute->getOptions(); foreach ($options as $option) { $data[$option->getCode()] = []; foreach ($option->getOptionValues() as $value) { $data[$option->getCode()][$value->getLocale()] = $value->getValue(); } } return $data; }