Magento - получить все значения атрибутов
Мне необходимо получить список всех значений атрибута "цвет". когда я использую этот код
$name='color';
$attributeInfo = Mage::getResourceModel('eav/entity_attribute_collection')->setCodeFilter($name)->getFirstItem();
$attributeId = $attributeInfo->getAttributeId();
$attribute = Mage::getModel('catalog/resource_eav_attribute')->load($attributeId);
$attributeOptions = $attribute ->getSource()->getAllOptions(false);
В этом случае я получаю такой список:
(
[0] => Array
(
[value] => 6
[label] => blueAdmin
)
[1] => Array
(
[value] => 5
[label] => coralAdmin
)
[2] => Array
(
[value] => 3
[label] => redAdmin
)
[3] => Array
(
[value] => 4
[label] => limeAdmin
)
)
Это список всех значений, которые отображаются в административной части сайта. Как я могу получить список всех значений атрибутов, которые отображаются в магазине, а не в административной части сайта?
Спасибо.
1 ответ
Вы можете получить значения параметров атрибута для конкретного хранилища, установив идентификатор хранилища для атрибута до вызова getAllOptions(), например,
$attributeOptions = $attribute->setStoreId(1)->getSource()->getAllOptions(false);
получает значения параметров для магазина с идентификатором 1. Вы можете получить идентификатор текущего магазина с помощью
Mage::app()->getStore()->getId();
Так что-то вроде этого должно дать вам то, что вы хотите:
$storeId = Mage::app()->getStore()->getId();
$attributeOptions = $attribute->setStoreId($storeId)->getSource()->getAllOptions(false);