2012-03-17 4 views
0

Я использую следующий фрагмент кода, который позволяет пользователям устанавливать признанные продукты, которые будут отображаться на главной странице, но мне нужно расширить это, чтобы они также могли диктовать порядок сортировки элементов , По умолчанию он отображает producst в том порядке, в котором они были добавлены в Magento.Добавить сортировку в список товаров в magento

Для этого я создал атрибут «sort_order», который позволяет пользователям добавлять числовое значение, которое будет определять порядок сортировки при отображении на главной странице. Например, если у меня есть 4 продуктов, то порядок сортировки может отображаться как следует

Product1 - порядок сортировки 3 Продукта 2 - порядок сортировки 1 Продукта 3 - порядок сортировки 2 Продукт 4 - порядок сортировки 4

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

Если кто-нибудь может предложить некоторые советы, я был бы очень признателен

<div id="home-featured"> 
    <h2><?php echo $this->__('Featured') ?></h2> 
    <?php 
     // some helpers 
     $_helper = $this->helper('catalog/output'); 
     $storeId = Mage::app()->getStore()->getId(); 
     $catalog = $this->getLayout()->createBlock('catalog/product_list')->setStoreId($storeId); 

     // get all products that are marked as featured 
     $collection = Mage::getModel('catalog/product')->getCollection(); 
     $collection->addAttributeToSelect('featured_product'); 
     $collection->addFieldToFilter(array(
      array('attribute' => 'featured_product', 'eq' => true), 
     )); 

     // if no products are currently featured, display some text 
     if (!$collection->count()) : 
    ?> 
    <p class="note-msg"><?php echo $this->__('There are no featured products at the moment.') ?></p> 
    <?php else : ?> 
    <div class="category-products"> 
    <?php 
     $_collectionSize = $collection->count(); 
     $_columnCount = 4; 
     $i = 0; 

     foreach ($collection as $_product) : 
     $_product = Mage::getModel('catalog/product')->setStoreId($storeId)->load($_product->getId()); 
    ?> 
    <article> 
     <div class="product-image"><a href="<?php echo Mage::helper('fullurl')->getFullProductUrl($_product); ?>" title="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" ><img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->keepFrame(false)->resize(170); ?>" width="170" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" /></a></div> 
     <div class="featured-info"> 
     <h3><a href="<?php echo Mage::helper('fullurl')->getFullProductUrl($_product); ?>" title="<?php echo $this->stripTags($_product->getName(), null, true) ?>"><?php echo $_helper->productAttribute($_product, $_product->getName(), 'name') ?></a></h3> 
     <p><?php echo $_helper->productAttribute($_product, $_product->getShortDescription(), 'short_description ') ?></p> 
     <span class="link-dreambuilder"><a href="<?php echo $this->helper('wishlist')->getAddUrl($_product) ?>" ><?php echo $this->__('+ Add to Dream Builder') ?></a></span> </div> 
    </article> 
    <?php endforeach ?> 
    </div> 
    <?php endif ?> 
</div> 
+0

где ваша функция сортировки пытался? Я не видел выше ... –

ответ

3

в любом случае, здесь есть функция сортировки атрибут ..

addAttributeToSort($attribute, $dir='asc'); 
Смежные вопросы