/** * Add attribute to filter * * @param Mage_Eav_Model_Entity_Attribute_Abstract|string $attribute * @param array $condition * @param string $joinType * @return Mage_Review_Model_Resource_Review_Product_Collection */ public function addAttributeToFilter($attribute, $condition = null, $joinType = 'inner') { switch ($attribute) { case 'rt.review_id': case 'rt.created_at': case 'rt.status_id': case 'rdt.title': case 'rdt.nickname': case 'rdt.detail': $conditionSql = $this->_getConditionSql($attribute, $condition); $this->getSelect()->where($conditionSql); break; case 'stores': $this->setStoreFilter($condition); break; case 'type': if ($condition == 1) { $conditionParts = array($this->_getConditionSql('rdt.customer_id', array('is' => new Zend_Db_Expr('NULL'))), $this->_getConditionSql('rdt.store_id', array('eq' => Mage_Core_Model_App::ADMIN_STORE_ID))); $conditionSql = implode(' AND ', $conditionParts); } elseif ($condition == 2) { $conditionSql = $this->_getConditionSql('rdt.customer_id', array('gt' => 0)); } else { $conditionParts = array($this->_getConditionSql('rdt.customer_id', array('is' => new Zend_Db_Expr('NULL'))), $this->_getConditionSql('rdt.store_id', array('neq' => Mage_Core_Model_App::ADMIN_STORE_ID))); $conditionSql = implode(' AND ', $conditionParts); } $this->getSelect()->where($conditionSql); break; default: parent::addAttributeToFilter($attribute, $condition, $joinType); break; } return $this; }