Сортировка параметров атрибута magento по позиции? - PullRequest
2 голосов
/ 21 февраля 2011

Привет,

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

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

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

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

Ответы [ 5 ]

1 голос
/ 07 марта 2011

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

0 голосов
/ 02 апреля 2015

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

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();
0 голосов
/ 01 апреля 2015

В начале app / 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 () на $массив в цикле foreach.

0 голосов
/ 08 ноября 2012
$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);
0 голосов
/ 08 февраля 2012

Работает отлично. В Magento 1.6 + используйте setOrder('sort_order').

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...