/** * Set order to result * * @param string $attribute * @param string $dir * @return $this */ public function setOrder($attribute, $dir = self::SORT_ORDER_DESC) { if ($attribute == 'wishlists') { $this->getSelect()->order($attribute . ' ' . $dir); } else { parent::setOrder($attribute, $dir); } return $this; }
/** * Add wishlist conditions to collection * * @param \Magento\Wishlist\Model\Resource\Item\Collection $collection * @return $this */ protected function _prepareCollection($collection) { $collection->setInStockFilter(true)->setOrder('added_at', 'ASC'); return $this; }
/** * Add sidebar conditions to collection * * @param \Magento\Wishlist\Model\Resource\Item\Collection $collection * @return $this */ protected function _prepareCollection($collection) { $collection->setCurPage(1)->setPageSize(3)->setInStockFilter(true)->setOrder('added_at'); return $this; }
/** * Add field filter to collection * * @param string|array $field * @param null|string|array $condition * @see self::_getConditionSql for $condition * @return \Magento\Framework\Data\Collection\Db */ public function addFieldToFilter($field, $condition = null) { switch ($field) { case 'product_name': $value = (string) $condition['like']; $value = trim(trim($value, "'"), "%"); return $this->addProductNameFilter($value); case 'store_id': if (isset($condition['eq'])) { return $this->addStoreFilter($condition); } break; case 'days_in_wishlist': if (!isset($condition['datetime'])) { return $this->addDaysFilter($condition); } } return parent::addFieldToFilter($field, $condition); }