/** * Test that adding field to filter by value which contains question mark produce correct SQL */ public function testAddFieldToFilterValueContainsQuestionMark() { $adapter = $this->_getAdapterMock('Zend_Db_Adapter_Pdo_Mysql', array('select', 'prepareSqlCondition', 'supportStraightJoin'), null); $adapter->expects($this->once())->method('prepareSqlCondition')->with('email', array('like' => 'value?'))->will($this->returnValue('email LIKE \'%value?%\'')); $adapter->expects($this->once())->method('select')->will($this->returnValue(new Varien_Db_Select($adapter))); $this->_collection->setConnection($adapter); $select = $this->_collection->getSelect()->from('test'); $this->_collection->addFieldToFilter('email', array('like' => 'value?')); $this->assertEquals("SELECT `test`.* FROM `test` WHERE (email LIKE '%value?%')", $select->assemble()); }
/** * Test that field is quoted when added to SQL via addFieldToFilter() */ public function testAddFieldToFilterFieldIsQuoted() { $adapter = $this->getMock('Zend_Db_Adapter_Pdo_Mysql', array('quoteIdentifier', 'prepareSqlCondition'), array(), '', false); $adapter->expects($this->once())->method('quoteIdentifier')->with('email')->will($this->returnValue('`email`')); $adapter->expects($this->any())->method('prepareSqlCondition')->with($this->stringContains('`email`'), $this->anything())->will($this->returnValue('`email` = "*****@*****.**"')); $this->_collection->setConnection($adapter); $select = $this->_collection->getSelect()->from('test'); $this->_collection->addFieldToFilter('email', array('eq' => '*****@*****.**')); $this->assertEquals('SELECT `test`.* FROM `test` WHERE (`email` = "*****@*****.**")', $select->assemble()); }
protected function callbackFilterItems(Varien_Data_Collection_Db $collection, $column) { $value = $column->getFilter()->getValue(); if ($value == null) { return; } /** @var $orderItemsCollection Varien_Data_Collection_Db */ $orderItemsCollection = Mage::helper('M2ePro/Component_Buy')->getCollection('Order_Item'); $orderItemsCollection->getSelect()->reset(Zend_Db_Select::COLUMNS); $orderItemsCollection->getSelect()->columns('order_id'); $orderItemsCollection->getSelect()->distinct(true); $orderItemsCollection->getSelect()->where('general_id LIKE ? OR sku LIKE ? OR title LIKE ?', '%' . $value . '%'); $ordersIds = $orderItemsCollection->getColumnValues('order_id'); $collection->addFieldToFilter('`main_table`.id', array('in' => $ordersIds)); }
/** * Remove Bronto Message Connection for Template * * @param Varien_Data_Collection_Db $collection * @param string $scope * @param string|int $scopeId */ public function unlinkEmails(Varien_Data_Collection_Db $collection, $scope, $scopeId) { switch ($scope) { case 'stores': case 'store': $storeId = $scopeId; break; case 'websites': case 'website': $storeId = Mage::app()->getWebsite($scopeId)->getStoreIds(); break; default: $storeId = false; break; } // create filter if ($storeId) { if (is_array($storeId)) { $filter = array('in' => $storeId); } else { $filter = array('eq' => $storeId); } $collection->addFieldToFilter('store_id', $filter); } // Delete Bronto Message connection to template foreach ($collection as $message) { $message->delete(); } }
public function callbackFilterMotorsSpecificsAttribute(Varien_Data_Collection_Db $collection, $column) { $value = $column->getFilter()->getValue(); if ($value == null) { return; } if (!$this->motorsSpecificsAttribute) { return; } $attributeCode = $this->motorsSpecificsAttribute->getAttributeCode(); if ($value == 1) { $collection->addFieldToFilter($attributeCode, array('notnull' => true)); $collection->addFieldToFilter($attributeCode, array('neq' => '\'\'')); $collection->addFieldToFilter('is_motors_attribute_in_product_attribute_set', array('notnull' => true)); } else { $collection->addFieldToFilter(array(array('attribute' => $attributeCode, 'null' => true), array('attribute' => $attributeCode, 'eq' => '\'\''), array('attribute' => 'is_motors_attribute_in_product_attribute_set', 'null' => true))); } }
public function callbackFilterMotorsAttribute(Varien_Data_Collection_Db $collection, $column) { $value = $column->getFilter()->getValue(); if (is_null($value)) { return; } if (!$this->motorsAttribute) { return; } if ($value == 1) { $attributeCode = $this->motorsAttribute->getAttributeCode(); $collection->addFieldToFilter($attributeCode, array('notnull' => true)); $collection->addFieldToFilter($attributeCode, array('neq' => '')); $collection->addFieldToFilter('is_motors_attribute_in_product_attribute_set', array('notnull' => true)); } else { $attributeId = $this->motorsAttribute->getId(); $storeId = $this->getListing()->getStoreId(); $joinCondition = 'eaa.entity_id = e.entity_id and eaa.attribute_id = ' . $attributeId; if (!$this->motorsAttribute->isScopeGlobal()) { $joinCondition .= ' and eaa.store_id = ' . $storeId; } $collection->getSelect()->joinLeft(array('eaa' => Mage::getSingleton('core/resource')->getTableName('catalog_product_entity_text')), $joinCondition, array('value')); $collection->getSelect()->orWhere('eaa.value IS NULL'); $collection->getSelect()->orWhere('eaa.value = \'\''); $collection->getSelect()->orWhere('eea.entity_attribute_id IS NULL'); } }
/** * Filter by customer ID, as 'type' field does not exist * * @param string $fieldName * @param array $condition * @return Mage_Log_Model_Mysql4_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); }
public function addFieldToFilter($fieldName, $fieldValue = null) { if ($fieldName == 'type') { if ($fieldValue == 'v') { return parent::addFieldToFilter('customer_id', array('null' => 1)); } else { return parent::addFieldToFilter('customer_id', array('moreq' => 1)); } } else { return parent::addFieldToFilter($fieldName, $fieldValue); } }
public function callbackFilterPartsCompatibilityAttribute(Varien_Data_Collection_Db $collection, $column) { $value = $column->getFilter()->getValue(); if ($value == null) { return; } if (!$this->partsCompatibilityAttribute) { return; } if ($value == 1) { $attributeCode = $this->partsCompatibilityAttribute->getAttributeCode(); $collection->addFieldToFilter($attributeCode, array('notnull' => true)); $collection->addFieldToFilter($attributeCode, array('neq' => '\'\'')); $collection->addFieldToFilter('is_parts_compatibility_attribute_in_product_attribute_set', array('notnull' => true)); } else { $attributeId = $this->partsCompatibilityAttribute->getId(); $storeId = $this->getListing()->getStoreId(); $collection->getSelect()->joinLeft(array('eaa' => Mage::getSingleton('core/resource')->getTableName('catalog_product_entity_text')), 'eaa.entity_id = e.entity_id and eaa.attribute_id = ' . $attributeId . ' and eaa.store_id = ' . $storeId); $collection->getSelect()->orWhere('eaa.value IS NULL'); $collection->getSelect()->orWhere('eaa.value = \'\''); $collection->getSelect()->orWhere('eea.entity_attribute_id IS NULL'); } }