Esempio n. 1
0
 /**
  * @param Mage_Catalog_Model_Resource_Product_Collection $collection
  * @param string $currDir
  *
  * @return $this
  */
 public function apply($collection, $currDir)
 {
     if (!$this->isEnabled()) {
         return $this;
     }
     $sorters = $this->getSorters();
     if (Mage::getStoreConfig('amsorting/general/use_index')) {
         foreach ($sorters as $sorter) {
             $collection->joinField($sorter->getCode(), $sorter->getIndexTable(), $sorter->getCode(), 'id=entity_id', array('store_id' => Mage::app()->getStore()->getId()), 'left');
         }
     } else {
         $select = $collection->getSelect();
         $col = $select->getPart('columns');
         foreach ($sorters as $sorter) {
             $col[] = array('', $sorter->getColumnSelect(), $sorter->getCode());
         }
         $select->setPart('columns', $col);
     }
     $collection->getSelect()->order(new Zend_Db_Expr('(' . $sorters['dividend']->getCode() . '/' . $sorters['divider']->getCode() . ') ' . $currDir));
     return $this;
 }