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: class Mage_Index_Block_Adminhtml_Notifications extends Mage_Adminhtml_Block_Template
28: {
29: /**
30: * Get array of index names which require data reindex
31: *
32: * @return array
33: */
34: public function getProcessesForReindex()
35: {
36: $res = array();
37: $processes = Mage::getSingleton('index/indexer')->getProcessesCollection()->addEventsStats();
38: /** @var $process Mage_Index_Model_Process */
39: foreach ($processes as $process) {
40: if (($process->getStatus() == Mage_Index_Model_Process::STATUS_REQUIRE_REINDEX
41: || $process->getEvents() > 0) && $process->getIndexer()->isVisible()
42: ) {
43: $res[] = $process->getIndexer()->getName();
44: }
45: }
46: return $res;
47: }
48:
49: /**
50: * Get index management url
51: *
52: * @return string
53: */
54: public function getManageUrl()
55: {
56: return $this->getUrl('adminhtml/process/list');
57: }
58:
59: /**
60: * ACL validation before html generation
61: *
62: * @return string
63: */
64: protected function _toHtml()
65: {
66: if (Mage::getSingleton('admin/session')->isAllowed('system/index')) {
67: return parent::_toHtml();
68: }
69: return '';
70: }
71: }
72: