/**
  * Render sql select orders
  *
  * @return  $this
  */
 protected function _renderOrders()
 {
     if (!$this->_isOrdersRendered) {
         foreach ($this->_orders as $field => $direction) {
             $this->_select->order(new \Zend_Db_Expr($field . ' ' . $direction));
         }
         $this->_isOrdersRendered = true;
     }
     return $this;
 }
예제 #2
0
 /**
  * Order by qty
  *
  * @param \Magento\Framework\DB\Select $select
  * @return \Magento\Framework\DB\Select
  */
 protected function _loadPriceDataSelect($select)
 {
     $select->order('qty');
     return $select;
 }
예제 #3
0
 /**
  * Adds order by random to select object
  * Possible using integer field for optimization
  *
  * @param Select $select
  * @param string $field
  * @return $this
  */
 public function orderRand(Select $select, $field = null)
 {
     if ($field !== null) {
         $expression = new \Zend_Db_Expr(sprintf('RAND() * %s', $this->quoteIdentifier($field)));
         $select->columns(array('mage_rand' => $expression));
         $spec = new \Zend_Db_Expr('mage_rand');
     } else {
         $spec = new \Zend_Db_Expr('RAND()');
     }
     $select->order($spec);
     return $this;
 }
예제 #4
0
 /**
  * Process ORDER BY clause
  *
  * @param Select $select
  * @return void
  */
 protected function processSortOrder(Select $select)
 {
     foreach ($this->sortOrder as $direction => $column) {
         if (!in_array($direction, [Select::SQL_ASC, Select::SQL_DESC])) {
             $direction = '';
         }
         $expr = new \Zend_Db_Expr(sprintf('%s %s', $this->adapter->quoteIdentifier('lookup.' . $column), $direction));
         $select->order($expr);
     }
 }