2013-08-04 6 views
1

Мне необходимо получить список всех значений атрибута «цвет». когда я использую этот код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 
      ) 
    ) 

Это список всех значений, которые отображаются в части администрации сайта. Как я могу получить список всех значений атрибутов, которые отображаются в магазине, а не на веб-сайте администрации?

спасибо.

ответ

2

Вы можете получить значение параметров атрибутов для конкретного магазина, установив идентификатор магазина на атрибуте перед вызовом 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); 
Смежные вопросы