Algolia_Algoliasearch_Model_Indexer_Algoliacategories::_registerCatalogCategoryEvent PHP Method

_registerCatalogCategoryEvent() protected method

protected _registerCatalogCategoryEvent ( Mage_Index_Model_Event $event )
$event Mage_Index_Model_Event
    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;
    }