Overview

Packages

  • currencysymbol
  • MAbout
  • Mage
    • Admin
    • Adminhtml
    • AdminNotification
    • Api
    • Api2
    • Authorizenet
    • Backup
    • Bundle
    • Captcha
    • Catalog
    • CatalogIndex
    • CatalogInventory
    • CatalogRule
    • CatalogSearch
    • Centinel
    • Checkout
    • Cms
    • Compiler
    • Connect
    • Contacts
    • Core
    • Cron
    • CurrencySymbol
    • Customer
    • Dataflow
    • Directory
    • DirtectPost
    • Downloadable
    • Eav
    • GiftMessage
    • GoogleAnalytics
    • GoogleBase
    • GoogleCheckout
    • ImportExport
    • Index
    • Install
    • Log
    • Media
    • Newsletter
    • Oauth
    • Page
    • PageCache
    • Paygate
    • Payment
    • Paypal
    • PaypalUk
    • Persistent
    • Poll
    • ProductAlert
    • Rating
    • Reports
    • Review
    • Rss
    • Rule
    • Sales
    • SalesRule
    • Sedfriend
    • Sendfriend
    • Shipping
    • Sitemap
    • Tag
    • Tax
    • Usa
    • Weee
    • Widget
    • Wishlist
    • XmlConnect
  • None
  • Phoenix
    • Moneybookers
  • PHP
  • Zend
    • Date
    • Mime
    • XmlRpc

Classes

  • Mage_Index_Adminhtml_ProcessController
  • Mage_Index_Block_Adminhtml_Notifications
  • Mage_Index_Block_Adminhtml_Process
  • Mage_Index_Block_Adminhtml_Process_Edit
  • Mage_Index_Block_Adminhtml_Process_Edit_Form
  • Mage_Index_Block_Adminhtml_Process_Edit_Tab_Main
  • Mage_Index_Block_Adminhtml_Process_Edit_Tabs
  • Mage_Index_Block_Adminhtml_Process_Grid
  • Mage_Index_Block_Adminhtml_Process_Grid_Massaction
  • Mage_Index_Helper_Data
  • Mage_Index_Model_Event
  • Mage_Index_Model_Indexer
  • Mage_Index_Model_Indexer_Abstract
  • Mage_Index_Model_Mysql4_Abstract
  • Mage_Index_Model_Mysql4_Event
  • Mage_Index_Model_Mysql4_Event_Collection
  • Mage_Index_Model_Mysql4_Process
  • Mage_Index_Model_Mysql4_Process_Collection
  • Mage_Index_Model_Mysql4_Setup
  • Mage_Index_Model_Observer
  • Mage_Index_Model_Process
  • Mage_Index_Model_Resource_Abstract
  • Mage_Index_Model_Resource_Event
  • Mage_Index_Model_Resource_Event_Collection
  • Mage_Index_Model_Resource_Helper_Mysql4
  • Mage_Index_Model_Resource_Process
  • Mage_Index_Model_Resource_Process_Collection
  • Mage_Index_Model_Resource_Setup
  • Overview
  • Package
  • Class
  • Tree
 1: <?php
 2: /**
 3:  * Magento
 4:  *
 5:  * NOTICE OF LICENSE
 6:  *
 7:  * This source file is subject to the Open Software License (OSL 3.0)
 8:  * that is bundled with this package in the file LICENSE.txt.
 9:  * It is also available through the world-wide-web at this URL:
10:  * http://opensource.org/licenses/osl-3.0.php
11:  * If you did not receive a copy of the license and are unable to
12:  * obtain it through the world-wide-web, please send an email
13:  * to license@magentocommerce.com so we can send you a copy immediately.
14:  *
15:  * DISCLAIMER
16:  *
17:  * Do not edit or add to this file if you wish to upgrade Magento to newer
18:  * versions in the future. If you wish to customize Magento for your
19:  * needs please refer to http://www.magentocommerce.com for more information.
20:  *
21:  * @category    Mage
22:  * @package     Mage_Index
23:  * @copyright   Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24:  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
25:  */
26: 
27: 
28: /**
29:  * Index Setup Model
30:  *
31:  * @category    Mage
32:  * @package     Mage_Index
33:  * @author      Magento Core Team <core@magentocommerce.com>
34:  */
35: class Mage_Index_Model_Resource_Setup extends Mage_Core_Model_Resource_Setup
36: {
37:     /**
38:      * Apply Index module DB updates and sync indexes declaration
39:      *
40:      * @return void
41:      */
42:     public function applyUpdates()
43:     {
44:         parent::applyUpdates();
45:         $this->_syncIndexes();
46:     }
47: 
48:     /**
49:      * Sync indexes declarations in config and in DB
50:      *
51:      * @return Mage_Index_Model_Resource_Setup
52:      */
53:     protected function _syncIndexes()
54:     {
55:         $connection = $this->getConnection();
56:         if (!$connection) {
57:             return $this;
58:         }
59:         $indexes = Mage::getConfig()->getNode(Mage_Index_Model_Process::XML_PATH_INDEXER_DATA);
60:         $indexCodes = array();
61:         foreach ($indexes->children() as $code => $index) {
62:             $indexCodes[] = $code;
63:         }
64:         $table = $this->getTable('index/process');
65:         $select = $connection->select()->from($table, 'indexer_code');
66:         $existingIndexes = $connection->fetchCol($select);
67:         $delete = array_diff($existingIndexes, $indexCodes);
68:         $insert = array_diff($indexCodes, $existingIndexes);
69: 
70:         if (!empty($delete)) {
71:             $connection->delete($table, $connection->quoteInto('indexer_code IN (?)', $delete));
72:         }
73:         if (!empty($insert)) {
74:             $insertData = array();
75:             foreach ($insert as $code) {
76:                 $insertData[] = array(
77:                     'indexer_code' => $code,
78:                     'status' => Mage_Index_Model_Process::STATUS_REQUIRE_REINDEX
79:                 );
80:             }
81:             if (method_exists($connection, 'insertArray')) {
82:                 $connection->insertArray($table, array('indexer_code', 'status'), $insertData);
83:             }
84:         }
85:     }
86: }
87: 
Magento 1.7.0.2 API documentation generated by ApiGen 2.8.0