/**
  * Add field filter to collection
  *
  * @param string|array $field
  * @param null|string|array $condition
  * @return $this
  */
 public function addFieldToFilter($field, $condition = null)
 {
     if ($field === 'store_id') {
         return $this->addStoreFilter($condition, false);
     }
     return parent::addFieldToFilter($field, $condition);
 }
示例#2
0
 /**
  * @inheritdoc
  */
 public function addFieldToFilter($field, $condition = null)
 {
     if (in_array($field, ['created_at', 'updated_at'], true)) {
         $field = 'main_table.' . $field;
     }
     return parent::addFieldToFilter($field, $condition);
 }
 /**
  * Multi store view.
  *
  * @param string|array      $field
  * @param null|string|array $condition
  */
 public function addFieldToFilter($field, $condition = null)
 {
     $attributes = array('name', 'status', 'click_url', 'target', 'image_alt', 'maintable');
     $storeViewId = $this->getStoreViewId();
     if (in_array($field, $attributes) && $storeViewId) {
         if (!in_array($field, $this->_addedTable)) {
             $sql = sprintf('main_table.banner_id = %s.banner_id AND %s.store_id = %s  AND %s.attribute_code = %s ', $this->getConnection()->quoteTableAs($field), $this->getConnection()->quoteTableAs($field), $this->getConnection()->quote($storeViewId), $this->getConnection()->quoteTableAs($field), $this->getConnection()->quote($field));
             $this->getSelect()->joinLeft(array($field => $this->getTable('magestore_bannerslider_value')), $sql, array());
             $this->_addedTable[] = $field;
         }
         $fieldNullCondition = $this->_translateCondition("{$field}.value", ['null' => TRUE]);
         $mainfieldCondition = $this->_translateCondition("main_table.{$field}", $condition);
         $fieldCondition = $this->_translateCondition("{$field}.value", $condition);
         $condition = $this->_implodeCondition($this->_implodeCondition($fieldNullCondition, $mainfieldCondition, \Zend_Db_Select::SQL_AND), $fieldCondition, \Zend_Db_Select::SQL_OR);
         $this->_select->where($condition, NULL, \Magento\Framework\DB\Select::TYPE_CONDITION);
         return $this;
     }
     if ($field == 'store_id') {
         $field = 'main_table.banner_id';
     }
     return parent::addFieldToFilter($field, $condition);
 }
 /**
  * Provide support for website id filter
  *
  * @param string $field
  * @param null|string|array $condition
  * @return $this
  */
 public function addFieldToFilter($field, $condition = null)
 {
     if ($field == 'website_ids') {
         return $this->addWebsiteFilter($condition);
     }
     parent::addFieldToFilter($field, $condition);
     return $this;
 }
示例#5
0
 /**
  * Checks if field is 'subscribers_total', 'subscribers_sent'
  * to add specific filter or adds reguler filter
  *
  * @param string $field
  * @param null|string|array $condition
  * @return $this
  */
 public function addFieldToFilter($field, $condition = null)
 {
     if (in_array($field, ['subscribers_total', 'subscribers_sent'])) {
         $this->addFieldToFilter('main_table.queue_id', ['in' => $this->_getIdsFromLink($field, $condition)]);
         return $this;
     } else {
         return parent::addFieldToFilter($field, $condition);
     }
 }