/** * Collect validated attributes * * @param Mage_Catalog_Model_Resource_Product_Collection $productCollection * @return Mage_CatalogRule_Model_Rule_Condition_Product */ public function collectValidatedAttributes($productCollection) { $attribute = $this->getAttribute(); if ('category_ids' != $attribute) { if ($this->getAttributeObject()->isScopeGlobal()) { $attributes = $this->getRule()->getCollectedAttributes(); $attributes[$attribute] = true; $this->getRule()->setCollectedAttributes($attributes); $productCollection->addAttributeToSelect($attribute, 'left'); } else { $this->_entityAttributeValues = $productCollection->getAllAttributeValues($attribute); } } return $this; }
/** * Initialize product collection * * @param Mage_Catalog_Model_Resource_Product_Collection $collection * @return Mage_Catalog_Model_Layer */ public function prepareProductCollection($collection) { $collection->addAttributeToSelect(Mage::getSingleton('Mage_Catalog_Model_Config')->getProductAttributes())->addMinimalPrice()->addFinalPrice()->addTaxPercents()->addUrlRewrite($this->getCurrentCategory()->getId())->setVisibility(Mage::getSingleton('Mage_Catalog_Model_Product_Visibility')->getVisibleInCatalogIds()); return $this; }
/** * * @param Mage_Catalog_Model_Resource_Product_Collection $collection * @return Mage_Catalog_Model_Resource_Product_Collection */ protected function _prepareCollection($collection) { foreach ($this->getConditions() as $condition) { $collection->addFieldToFilter($condition['attribute'], array($condition['operator'] => $condition['value'])); } foreach ($this->_columns as $attr => $width) { $collection->addAttributeToSelect($attr); } return $collection; }
/** * @param Mage_Catalog_Model_Resource_Product_Collection $productCollection * * @return $this */ public function collectValidatedAttributes($productCollection) { $attribute = $this->getAttribute(); if (!in_array($attribute, array('category_ids', 'qty', 'php'))) { if ($attribute == 'image_size' || $attribute == 'small_image_size' || $attribute == 'thumbnail_size') { $attribute = str_replace('_size', '', $attribute); } $attributes = $this->getRule()->getCollectedAttributes(); $attributes[$attribute] = true; $this->getRule()->setCollectedAttributes($attributes); $productCollection->addAttributeToSelect($attribute, 'left'); } return $this; }