coleção de opção de atributo de sorting magento por posição?

Saudações,

Estou tentando classificar uma série de valores de opções de atributos por sua “posição” como entrou no painel de gerenciamento de atributos. Parece que tentei tudo, alguém sabe como isso é possível?

Eu pensei com certeza que isso funcionaria:

$_collection = Mage::getResourceModel('eav/entity_attribute_option_collection') ->setStoreFilter(0) ->setAttributeFilter($_productAttribute->getId()) ->addAttributeToSort('position') ->load(); 

Mas não. Qualquer ajuda seria muito apreciada!

Já tive experiência com addAttributeToSort em um projeto anterior: talvez essa function não funcione até hoje, tente com setOrder (‘columname’) ou tente atualizar seu magento para a última versão

Trabalhando bem. No Magento 1.6 + use setOrder('sort_order') .

 $attribute = Mage::getModel('eav/entity_attribute')->load( $code, 'attribute_code'); $option_col = Mage::getResourceModel( 'eav/entity_attribute_option_collection') ->setAttributeFilter( $attribute->getId() ) ->setStoreFilter() ->setPositionOrder( 'ASC' ); $option_col->getSelect()->order('main_table.sort_order '.$orderby); 

No início do aplicativo / design / frontend / default / default / template / manapro / filtercheckboxes / items.phtml adicione o seguinte código:

 function cmp($a, $b){ if ($a == $b) return 0; return ($a['position'] < $b['position']) ? -1 : 1; } $array = $this->getItems(); usort($array, "cmp"); 

E substitua $ this-> getItems () com $ array no loop foreach.

À medida que a coleção eav carrega a consulta de junit de carga para coleta e usando a function de carga. então, se você adicionar ordem após

 Mage::getResourceModel('eav/entity_attribute_option_collection') 

Assim como:

 $_collection = Mage::getResourceModel('eav/entity_attribute_option_collection')->getSelect()->order('main_table.sort_order '.$orderby); $_collection->setStoreFilter(0) ->setAttributeFilter($_productAttribute->getId()) ->load();