Example #1
0
 /**
  * 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;
 }