/** * 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); }
/** * @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; }
/** * 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); } }