示例#1
0
 /**
  * Redefine default filters
  *
  * @param string $field
  * @param mixed $condition
  * @return Varien_Data_Collection_Db
  */
 public function addFieldToFilter($field, $condition = null)
 {
     if ($field == 'stores') {
         return $this->addStoreFilter($condition);
     } else {
         return parent::addFieldToFilter($field, $condition);
     }
 }
 /**
  * Add field filter to collection
  *
  * @see self::_getConditionSql for $condition
  * @param string $field
  * @param null|string|array $condition
  * @return Mage_Eav_Model_Entity_Collection_Abstract
  */
 public function addFieldToFilter($field, $condition = null)
 {
     if ($field == 'name') {
         $conditionSql = $this->_getConditionSql($this->getConnection()->getIfNullSql('p.value', 'p_d.value'), $condition);
         $this->getSelect()->where($conditionSql, null, Varien_Db_Select::TYPE_CONDITION);
         return $this;
     } else {
         return parent::addFieldToFilter($field, $condition);
     }
 }
示例#3
0
 public function addFieldToFilter($field, $condition = null)
 {
     if ($field == 'receipient') {
         $correspondents = Mage::getModel('alekseon_mailTransport/sentEmail_correspondent')->getCollection()->addFieldToFilter('type', Alekseon_MailTransport_Model_SentEmail_Correspondent::TYPE_RECEIPIENT)->addFieldToFilter(array('name', 'email'), array($condition, $condition));
         $sentEmailsIds = array();
         foreach ($correspondents as $correspondent) {
             $sentEmailsIds[] = $correspondent->getSentemailId();
         }
         $field = $this->getResource()->getIdFieldName();
         $condition = array('in' => $sentEmailsIds);
     }
     return parent::addFieldToFilter($field, $condition);
 }
 /**
  * Redefining of standart field to filter adding, for aviability of
  * bit operations for display state
  *
  * @param unknown_type $field
  * @param null|string|array $condition
  * @return Enterprise_CatalogEvent_Model_Resource_Event_Collection
  */
 public function addFieldToFilter($field, $condition = null)
 {
     if ($field == 'display_state') {
         $field = $this->_getMappedField($field);
         if (is_array($condition) && isset($condition['eq'])) {
             $condition = $condition['eq'];
         }
         if (in_array((int) $condition, array(0, 1))) {
             $this->getSelect()->where('display_state = ?', (int) $condition);
             //$this->getSelect()->where('(' . $field . ' & ' . (int) $condition . ') = ' . (int) $condition);
         } else {
             $this->getSelect()->where('display_state=?', 0);
         }
         return $this;
     }
     if ($field == 'status') {
         $this->getSelect()->where($this->_getConditionSql($this->_getStatusColumnExpr(), $condition));
         return $this;
     }
     parent::addFieldToFilter($field, $condition);
     return $this;
 }
 /**
  * Add specified field to collection filter
  * Redeclared in order to be able to limit collection by specific website
  * @see self::applyWebsiteFilter()
  *
  * @param  string $field
  * @param  mixed $condition
  * @return Enterprise_GiftWrapping_Model_Resource_Wrapping_Collection
  */
 public function addFieldToFilter($field, $condition = null)
 {
     if ($field == 'website_ids') {
         return $this->applyWebsiteFilter($condition);
     }
     return parent::addFieldToFilter($field, $condition);
 }
示例#6
0
 /**
  * Filter by customer ID, as 'type' field does not exist
  *
  * @param string $fieldName
  * @param array $condition
  * @return Mage_Log_Model_Resource_Visitor_Collection
  */
 public function addFieldToFilter($fieldName, $condition = null)
 {
     if ($fieldName == 'type' && is_array($condition) && isset($condition['eq'])) {
         $fieldName = 'customer_id';
         if ($condition['eq'] === Mage_Log_Model_Visitor::VISITOR_TYPE_VISITOR) {
             $condition = array('null' => 1);
         } else {
             $condition = array('moreq' => 1);
         }
     }
     return parent::addFieldToFilter($this->_getFieldMap($fieldName), $condition);
 }
 /**
  * Add field filter to collection
  * If $attribute is an array will add OR condition with following format:
  * array(
  *     array('attribute'=>'firstname', 'like'=>'test%'),
  *     array('attribute'=>'lastname', 'like'=>'test%'),
  * )
  *
  * @see self::_getConditionSql for $condition
  *
  * @param string $field
  * @param null|string|array $condition
  * @return Mage_Eav_Model_Entity_Collection_Abstract
  */
 public function addFieldToFilter($field, $condition = null)
 {
     if (isset($this->_fields[$field])) {
         $field = $this->_fields[$field];
     }
     return parent::addFieldToFilter($field, $condition);
 }
示例#8
0
 /**
  * Checks if field is 'subscribers_total', 'subscribers_sent'
  * to add specific filter or adds reguler filter
  *
  * @param string $field
  * @param mixed $condition
  * @return Mage_Newsletter_Model_Resource_Queue_Collection
  */
 public function addFieldToFilter($field, $condition = null)
 {
     if (in_array($field, array('subscribers_total', 'subscribers_sent'))) {
         $this->addFieldToFilter('main_table.queue_id', array('in' => $this->_getIdsFromLink($field, $condition)));
         return $this;
     } else {
         return parent::addFieldToFilter($field, $condition);
     }
 }
 /**
  * Add field filter to collection
  *
  * @param string $field
  * @param null|string|array $condition
  * @return Mage_GoogleBase_Model_Resource_Item_Collection
  */
 public function addFieldToFilter($field, $condition = null)
 {
     if ($field == 'name') {
         $codeExpr = $this->getConnection()->getCheckSql('p.value IS NOT NULL', 'p.value', 'p_d.value');
         $conditionSql = $this->_getConditionSql($codeExpr, $condition);
         $this->getSelect()->where($conditionSql, null, Varien_Db_Select::TYPE_CONDITION);
     } else {
         parent::addFieldToFilter($field, $condition);
     }
     return $this;
 }
示例#10
0
 /**
  * Adds field to filter
  *
  * @param string $field
  * @param array $condition
  * @return Mage_Tag_Model_Resource_Tag_Collection
  */
 public function addFieldToFilter($field, $condition = null)
 {
     if ($this->getFlag('relation') && 'popularity' == $field) {
         // TOFIX
         $this->getSelect()->having($this->_getConditionSql('COUNT(relation.tag_relation_id)', $condition));
     } elseif ($this->getFlag('summary') && in_array($field, array('customers', 'products', 'uses', 'historical_uses', 'popularity'))) {
         $this->getSelect()->where($this->_getConditionSql('summary.' . $field, $condition));
     } else {
         parent::addFieldToFilter($field, $condition);
     }
     return $this;
 }
 /**
  * Callback function that filters collection by field "Used" from grid
  *
  * @param Mage_Core_Model_Resource_Db_Collection_Abstract $collection
  * @param Mage_Adminhtml_Block_Widget_Grid_Column $column
  */
 public function addIsUsedFilterCallback($collection, $column)
 {
     $filterValue = $column->getFilter()->getCondition();
     $collection->addFieldToFilter($this->getConnection()->getCheckSql('main_table.times_used > 0', 1, 0), array('eq' => $filterValue));
 }
示例#12
0
 /**
  * @param Mage_Core_Model_Resource_Db_Collection_Abstract $collection
  * @param array                                           $filters
  * @param array                                           $ifConditionals
  *
  * @return Mage_Core_Model_Resource_Db_Collection_Abstract
  */
 public function filterCollection(Mage_Core_Model_Resource_Db_Collection_Abstract $collection, array $filters, array $ifConditionals = [])
 {
     $filter = true;
     foreach ($ifConditionals as $ifConditional) {
         if ($ifConditional === 'false' || !(bool) $ifConditional) {
             $filter = false;
             break;
         }
     }
     if ($filter) {
         foreach ($filters as $field => $condition) {
             $collection->addFieldToFilter($field, $condition);
         }
     }
     return $collection;
 }