набор атрибутов сортировки magento по позиции?

Приветствую,

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

Я думал, что это сработает:

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

Но это не так. Любая помощь будет принята с благодарностью!

Solutions Collecting From Web of "набор атрибутов сортировки magento по позиции?"

Я уже привык к addAttributeToSort в предыдущем проекте: возможно, эта функция не работает до сегодняшнего дня, попробовав с помощью setOrder ('columname') или попробуй обновить пурпуру до последней версии

Отлично работает. В Magento 1.6 + используйте 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); 

В начале приложения / design / frontend / default / default / template / manapro / filtercheckboxes / items.phtml добавьте следующий код:

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

И замените $ this-> getItems () на $ array в цикле foreach.

По мере его сбора он загружает загрузку запроса присоединения к коллекции и использует функцию загрузки. так что если вы добавите заказ после

 Mage::getResourceModel('eav/entity_attribute_option_collection') 

как:

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