*/ class Mage_Install_Model_Config extends Varien_Simplexml_Config { const XML_PATH_WIZARD_STEPS = 'wizard/steps'; const XML_PATH_CHECK_WRITEABLE = 'check/filesystem/writeable'; const XML_PATH_CHECK_EXTENSIONS = 'check/php/extensions'; public function __construct() { parent::__construct(); $this->loadString(''); Mage::getConfig()->loadModulesConfiguration('install.xml', $this); } /** * Get array of wizard steps * * array($inndex => Varien_Object ) * * @return array */ public function getWizardSteps() { $steps = array(); foreach ((array)$this->getNode(self::XML_PATH_WIZARD_STEPS) as $stepName => $step) { $stepObject = new Varien_Object((array)$step); $stepObject->setName($stepName); $steps[] = $stepObject; } return $steps; } /** * Retrieve writable path for checking * * array( * ['writeable'] => array( * [$index] => array( * ['path'] * ['recursive'] * ) * ) * ) * * @return array */ public function getPathForCheck() { $res = array(); $items = (array) $this->getNode(self::XML_PATH_CHECK_WRITEABLE); foreach ($items as $item) { $res['writeable'][] = (array) $item; } return $res; } /** * Retrieve required PHP extensions * * @return array */ public function getExtensionsForCheck() { $res = array(); $items = (array) $this->getNode(self::XML_PATH_CHECK_EXTENSIONS); foreach ($items as $name => $value) { if (!empty($value)) { $res[$name] = array(); foreach ($value as $subname => $subvalue) { $res[$name][] = $subname; } } else { $res[$name] = (array) $value; } } return $res; } }