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