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_Install
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: * Install config
30: *
31: * @category Mage
32: * @package Mage_Install
33: * @author Magento Core Team <core@magentocommerce.com>
34: */
35: class Mage_Install_Model_Config extends Varien_Simplexml_Config
36: {
37:
38: const XML_PATH_WIZARD_STEPS = 'wizard/steps';
39: const XML_PATH_CHECK_WRITEABLE = 'check/filesystem/writeable';
40: const XML_PATH_CHECK_EXTENSIONS = 'check/php/extensions';
41:
42: public function __construct()
43: {
44: parent::__construct();
45: $this->loadString('<?xml version="1.0"?><config></config>');
46: Mage::getConfig()->loadModulesConfiguration('install.xml', $this);
47: }
48:
49: /**
50: * Get array of wizard steps
51: *
52: * array($inndex => Varien_Object )
53: *
54: * @return array
55: */
56: public function getWizardSteps()
57: {
58: $steps = array();
59: foreach ((array)$this->getNode(self::XML_PATH_WIZARD_STEPS) as $stepName => $step) {
60: $stepObject = new Varien_Object((array)$step);
61: $stepObject->setName($stepName);
62: $steps[] = $stepObject;
63: }
64: return $steps;
65: }
66:
67: /**
68: * Retrieve writable path for checking
69: *
70: * array(
71: * ['writeable'] => array(
72: * [$index] => array(
73: * ['path']
74: * ['recursive']
75: * )
76: * )
77: * )
78: *
79: * @return array
80: */
81: public function getPathForCheck()
82: {
83: $res = array();
84:
85: $items = (array) $this->getNode(self::XML_PATH_CHECK_WRITEABLE);
86:
87: foreach ($items as $item) {
88: $res['writeable'][] = (array) $item;
89: }
90:
91: return $res;
92: }
93:
94: /**
95: * Retrieve required PHP extensions
96: *
97: * @return array
98: */
99: public function getExtensionsForCheck()
100: {
101: $res = array();
102: $items = (array) $this->getNode(self::XML_PATH_CHECK_EXTENSIONS);
103:
104: foreach ($items as $name => $value) {
105: if (!empty($value)) {
106: $res[$name] = array();
107: foreach ($value as $subname => $subvalue) {
108: $res[$name][] = $subname;
109: }
110: }
111: else {
112: $res[$name] = (array) $value;
113: }
114: }
115:
116: return $res;
117: }
118:
119: }
120: