Algolia_Algoliasearch_Helper_Config::indexProductOnCategoryProductsUpdate PHP Метод

indexProductOnCategoryProductsUpdate() публичный Метод

public indexProductOnCategoryProductsUpdate ( $storeId = null )
    public function indexProductOnCategoryProductsUpdate($storeId = null)
    {
        return Mage::getStoreConfigFlag(self::INDEX_PRODUCT_ON_CATEGORY_PRODUCTS_UPDATE, $storeId);
    }

Usage Example

 protected function _registerCatalogCategoryEvent(Mage_Index_Model_Event $event)
 {
     switch ($event->getType()) {
         case Mage_Index_Model_Event::TYPE_SAVE:
             /** @var Mage_Catalog_Model_Category $category*/
             $category = $event->getDataObject();
             $productIds = array();
             if ($this->config->indexAllCategoryProductsOnCategoryUpdate()) {
                 $categories = array_merge(array($category->getId()), $category->getAllChildren(true));
                 $collection = Mage::getResourceModel('catalog/product_collection');
                 $collection->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id = entity_id', null, 'left');
                 $collection->addAttributeToFilter('category_id', array('in' => $categories));
                 $productIds = $collection->getAllIds();
             } elseif ($this->config->indexProductOnCategoryProductsUpdate()) {
                 $productIds = $category->getAffectedProductIds();
             }
             if (!$category->getData('is_active')) {
                 $categories = array_merge(array($category->getId()), $category->getAllChildren(true));
                 $event->addNewData('catalogsearch_delete_category_id', $categories);
                 if ($productIds) {
                     $event->addNewData('catalogsearch_update_product_id', $productIds);
                 }
             } elseif ($productIds) {
                 $event->addNewData('catalogsearch_update_product_id', $productIds);
                 $event->addNewData('catalogsearch_update_category_id', array($category->getId()));
             } elseif ($movedCategoryId = $category->getMovedCategoryId()) {
                 $event->addNewData('catalogsearch_update_category_id', array($movedCategoryId));
             } else {
                 $event->addNewData('catalogsearch_update_category_id', array($category->getId()));
             }
             break;
         case Mage_Index_Model_Event::TYPE_DELETE:
             /** @var $category Mage_Catalog_Model_Category */
             $category = $event->getDataObject();
             $event->addNewData('catalogsearch_delete_category_id', $category->getId());
             break;
     }
     return $this;
 }