/** * load theme xml */ public function __construct() { parent::__construct(); $this->settings = new Varien_Simplexml_Config(); $this->settings->loadFile(Mage::getBaseDir() . $this->_file); if (!$this->settings) { throw new Exception('Can not read theme config file ' . Mage::getBaseDir() . $this->_file); } }
/** * Assemble themes inheritance config * */ public function __construct(array $params = array()) { if (isset($params['designRoot'])) { if (!is_dir($params['designRoot'])) { throw new Mage_Core_Exception("Design root '{$params['designRoot']}' isn't a directory."); } $this->_designRoot = $params['designRoot']; } else { $this->_designRoot = Mage::getBaseDir('design'); } $this->_cacheChecksum = null; $this->setCacheId('config_theme'); $this->setCache(Mage::app()->getCache()); if (!$this->loadCache()) { $this->loadString('<theme />'); $path = str_replace('/', DS, $this->_designRoot . '/*/*/*/etc/theme.xml'); $files = glob($path); foreach ($files as $file) { $config = new Varien_Simplexml_Config(); $config->loadFile($file); list($area, $package, $theme) = $this->_getThemePathSegments($file); $this->setNode($area . '/' . $package . '/' . $theme, null); $this->getNode($area . '/' . $package . '/' . $theme)->extend($config->getNode()); } $this->saveCache(); } }
public function restoreAction() { $this->_stores = $this->getRequest()->getParam('stores', array(0)); $this->_clear = $this->getRequest()->getParam('clear_scope', true); if ($this->_clear) { if (!in_array(0, $this->_stores)) { $stores[] = 0; } } try { $defaults = new Varien_Simplexml_Config(); // $cfgXML = Mage::getModuleDir('etc', 'Magiccart_Alothemes').'/config.xml'; $cfgXML = Mage::getBaseDir() . '/app/code/local/Magiccart/Alothemes/etc/config.xml'; if (!file_exists($cfgXML)) { echo 'Not found file:' . $cfgXML; return; } $defaults->loadFile($cfgXML); $this->_restoreSettings($defaults->getNode('default/alothemes')->children(), 'alothemes'); Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('Default Settings for magicinstall Design Theme has been restored.')); } catch (Exception $e) { Mage::getSingleton('adminhtml/session')->addError(Mage::helper('adminhtml')->__('An error occurred while restoring theme settings.')); } $this->getResponse()->setRedirect($this->getUrl("*/*/")); }
function getRewritesList() { $moduleFiles = glob(Mage::getBaseDir('etc') . DS . 'modules' . DS . '*.xml'); if (!$moduleFiles) { return false; } // load file contents $unsortedConfig = new Varien_Simplexml_Config(); $unsortedConfig->loadString('<config/>'); $fileConfig = new Varien_Simplexml_Config(); foreach ($moduleFiles as $filePath) { $fileConfig->loadFile($filePath); $unsortedConfig->extend($fileConfig); } // create sorted config [only active modules] $sortedConfig = new Varien_Simplexml_Config(); $sortedConfig->loadString('<config><modules/></config>'); foreach ($unsortedConfig->getNode('modules')->children() as $moduleName => $moduleNode) { if ('true' === (string) $moduleNode->active) { $sortedConfig->getNode('modules')->appendChild($moduleNode); } } $fileConfig = new Varien_Simplexml_Config(); $_finalResult = array(); foreach ($sortedConfig->getNode('modules')->children() as $moduleName => $moduleNode) { $codePool = (string) $moduleNode->codePool; $configPath = BP . DS . 'app' . DS . 'code' . DS . $codePool . DS . uc_words($moduleName, DS) . DS . 'etc' . DS . 'config.xml'; $fileConfig->loadFile($configPath); $rewriteBlocks = array('blocks', 'models', 'helpers'); foreach ($rewriteBlocks as $param) { if (!isset($_finalResult[$param])) { $_finalResult[$param] = array(); } if ($rewrites = $fileConfig->getXpath('global/' . $param . '/*/rewrite')) { foreach ($rewrites as $rewrite) { $parentElement = $rewrite->xpath('../..'); foreach ($parentElement[0] as $moduleKey => $moduleItems) { $moduleItemsArray['rewrite'] = array(); $moduleItemsArray['codePool'] = array(); foreach ($moduleItems->rewrite as $rewriteLine) { foreach ($rewriteLine as $key => $value) { $moduleItemsArray['rewrite'][$key] = (string) $value; $moduleItemsArray['codePool'][$key] = $codePool; } } if ($moduleItems->rewrite) { $_finalResult[$param] = array_merge_recursive($_finalResult[$param], array($moduleKey => $moduleItemsArray)); } } } } } } return $_finalResult; }
protected function _resetNode($xpath) { $store = $this->getRequest()->getParam('store', 0); $scope = $store ? 'stores' : 'default'; $tpl_settings_def = new Varien_Simplexml_Config(); $tpl_settings_def->loadFile(Mage::getBaseDir() . '/app/code/local/Etheme/Evoqueconfig/etc/config.xml'); $sets = $tpl_settings_def->getNode('default/evoqueconfig/evoqueconfig_' . $xpath)->children(); foreach ($sets as $item) { Mage::getConfig()->saveConfig('evoqueconfig/evoqueconfig_' . $xpath . '/' . $item->getName(), (string) $item, $scope, $store); } }
/** * Init License Config Information * XML Path: app/code/local/Magestore/license_certificates * * @param type $sourceData */ public function __construct($sourceData = null) { $certificateFolder = 'app/code/local/Magestore/license_certificates'; $certificateFolder = str_replace('/', DS, $certificateFolder); $configFiles = glob(BP . DS . $certificateFolder . DS . '*.xml'); $this->loadFile(current($configFiles)); while ($file = next($configFiles)) { $merge = new Varien_Simplexml_Config(); $merge->loadFile($file); $this->extend($merge); } }
/** * Load widget XML config and merge with theme widget config * * @param array $defaults * * @return Varien_Simplexml_Element */ protected function getFallbackConfig($defaults) { if ($this->_fallbackConfigXml === null) { $configFile = Mage::getSingleton('core/design_package')->getBaseDir(array('_area' => $defaults['_area'], '_package' => $defaults['_package'], '_theme' => $defaults['_theme'], '_type' => 'etc')) . DS . 'fallback.xml'; if (is_readable($configFile)) { $themeFallbackConfig = new Varien_Simplexml_Config(); $themeFallbackConfig->loadFile($configFile); if ($themeWidgetTypeConfig = $themeFallbackConfig->getNode('fallback')) { $this->_fallbackConfigXml = $themeWidgetTypeConfig; } } else { $this->_fallbackConfigXml = false; } } return $this->_fallbackConfigXml; }
public function restoreAction() { $this->_stores = $this->getRequest()->getParam('stores', array(0)); $this->_clear = $this->getRequest()->getParam('clear_scope', true); if ($this->_clear) { if (!in_array(0, $this->_stores)) { $stores[] = 0; } } try { $defaults = new Varien_Simplexml_Config(); $defaults->loadFile(Mage::getBaseDir() . '/app/code/local/MagenThemes/MTGhost/etc/config.xml'); $this->_restoreSettings($defaults->getNode('default/mtghost_design')->children(), 'mtghost_design'); Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('Default Settings for MTGhost Design Theme has been restored.')); } catch (Exception $e) { Mage::getSingleton('adminhtml/session')->addError(Mage::helper('adminhtml')->__('An error occurred while restoring theme settings.')); } $this->getResponse()->setRedirect($this->getUrl("*/*/")); }
public function saveAction() { if ($data = $this->getRequest()->getPost()) { $stores = $this->getRequest()->getParam('stores', array(0)); $setup_package = $this->getRequest()->getParam('setup_package', 0); $this->_clear = $this->getRequest()->getParam('clear_scope', false); $setup_pages = $this->getRequest()->getParam('setup_pages', 0); $setup_blocks = $this->getRequest()->getParam('setup_blocks', 0); if ($this->_clear) { if (!in_array(0, $this->_stores)) { $stores[] = 0; } } try { foreach ($stores as $store) { $scope = $store ? 'stores' : 'default'; Mage::getConfig()->saveConfig('design/header/logo_src', 'images/logo.gif', $scope, $store); Mage::getConfig()->saveConfig('design/footer/copyright', '© 2012 Magento Demo Store. All Rights Reserved.', $scope, $store); if ($setup_package) { Mage::getConfig()->saveConfig('design/package/name', 'default', $scope, $store); } } $defaults = new Varien_Simplexml_Config(); $defaults->loadFile(Mage::getBaseDir() . '/app/code/local/Meigee/ThemeOptionsBlacknwhite/etc/config.xml'); $this->_restoreSettings($defaults->getNode('default/meigee_blacknwhite_general')->children(), 'meigee_blacknwhite_general'); $this->_restoreSettings($defaults->getNode('default/meigee_blacknwhite_design')->children(), 'meigee_blacknwhite_design'); $this->_restoreSettings($defaults->getNode('default/meigee_blacknwhite_productpage')->children(), 'meigee_blacknwhite_productpage'); $this->_restoreSettings($defaults->getNode('default/meigee_blacknwhite_sidebar')->children(), 'meigee_blacknwhite_sidebar'); $this->_restoreSettings($defaults->getNode('default/meigee_blacknwhite_headerslider')->children(), 'meigee_blacknwhite_headerslider'); $this->_restoreSettings($defaults->getNode('default/meigee_blacknwhite_bgslider')->children(), 'meigee_blacknwhite_bgslider'); if ($setup_pages) { Mage::getModel('ThemeOptionsBlacknwhite/restore')->setupPages(); } if ($setup_blocks) { Mage::getModel('ThemeOptionsBlacknwhite/restore')->setupBlocks(); } Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('ThemeOptionsBlacknwhite')->__('Default settings has been restored. Please clear all the cache (System > Cache management)')); } catch (Exception $e) { Mage::getSingleton('adminhtml/session')->addError(Mage::helper('ThemeOptionsBlacknwhite')->__('An error occurred while restoring theme. ' . $e->getMessage())); } $this->getResponse()->setRedirect($this->getUrl("*/*/")); } }
public function restoreAction() { $this->_stores = $this->getRequest()->getParam('stores', array(0)); $this->_clear = $this->getRequest()->getParam('clear_scope', false); $setup_cms = $this->getRequest()->getParam('setup_cms', 0); if ($this->_clear) { if (!in_array(0, $this->_stores)) { $stores[] = 0; } } try { $defaults = new Varien_Simplexml_Config(); $defaults->loadFile(Mage::getBaseDir() . '/app/code/local/Queldorei/ShopperSettings/etc/config.xml'); $this->_restoreSettings($defaults->getNode('default/shoppersettings')->children(), 'shoppersettings'); if ($setup_cms) { Mage::getModel('shoppersettings/settings')->setupCms(); } Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('shoppersettings')->__('Default Settings for Shopper Theme has been restored. Please clear cache (System > Cache management) if you do not see changes in storefront')); } catch (Exception $e) { Mage::getSingleton('adminhtml/session')->addError(Mage::helper('shoppersettings')->__('An error occurred while restoring theme settings.')); } $this->getResponse()->setRedirect($this->getUrl("*/*/")); }
private function __construct() { $moduleFiles = glob(BP . '/app/etc/modules/*.xml'); $unsortedConfig = new Varien_Simplexml_Config(); $unsortedConfig->loadString('<config/>'); $fileConfig = new Varien_Simplexml_Config(); foreach ($moduleFiles as $filePath) { $fileConfig->loadFile($filePath); $unsortedConfig->extend($fileConfig); } // create sorted config [only active modules] #$sortedConfig = new Varien_Simplexml_Config(); #$sortedConfig->loadString('<config><modules/></config>'); $fileConfig = new Varien_Simplexml_Config(); foreach ($unsortedConfig->getNode('modules')->children() as $moduleName => $moduleNode) { if ('true' === (string) $moduleNode->active) { $codePool = (string) $moduleNode->codePool; $configPath = BP . '/app/code/' . $codePool . '/' . uc_words($moduleName, '/') . '/etc/config.xml'; $fileConfig->loadFile($configPath); $unsortedConfig->extend($fileConfig); } } $this->_config = $unsortedConfig; }
public function loadFile($file) { if (in_array($file, $this->_loadedFiles)) { return false; } $res = parent::loadFile($file); if ($res) { $this->addLoadedFile($file); } return $this; }
/** * Retrive possible conflicts list * * @return array */ public function getConflictList() { $moduleFiles = glob($this->_etcDir . 'modules' . DIRECTORY_SEPARATOR . '*.xml'); if (!$moduleFiles) { return false; } // load file contents $unsortedConfig = new Varien_Simplexml_Config(); $unsortedConfig->loadString('<config/>'); $fileConfig = new Varien_Simplexml_Config(); foreach ($moduleFiles as $filePath) { $fileConfig->loadFile($filePath); $unsortedConfig->extend($fileConfig); } // create sorted config [only active modules] $sortedConfig = new Varien_Simplexml_Config(); $sortedConfig->loadString('<config><modules/></config>'); foreach ($unsortedConfig->getNode('modules')->children() as $moduleName => $moduleNode) { if ('true' === (string) $moduleNode->active) { $sortedConfig->getNode('modules')->appendChild($moduleNode); } } $fileConfig = new Varien_Simplexml_Config(); $_finalResult = array(); foreach ($sortedConfig->getNode('modules')->children() as $moduleName => $moduleNode) { $codePool = (string) $moduleNode->codePool; $configPath = $this->_codeDir . $codePool . DIRECTORY_SEPARATOR . uc_words($moduleName, DS) . DIRECTORY_SEPARATOR . 'etc' . DS . 'config.xml'; $fileConfig->loadFile($configPath); $rewriteBlocks = array('blocks', 'models', 'helpers'); foreach ($rewriteBlocks as $param) { if (!isset($_finalResult[$param])) { $_finalResult[$param] = array(); } if ($rewrites = $fileConfig->getXpath('global/' . $param . '/*/rewrite')) { foreach ($rewrites as $rewrite) { $parentElement = $rewrite->xpath('../..'); foreach ($parentElement[0] as $moduleKey => $moduleItems) { $moduleItemsArray['rewrite'] = array(); foreach ($moduleItems->rewrite as $rewriteLine) { foreach ($rewriteLine as $key => $value) { $moduleItemsArray['rewrite'][$key] = (string) $value; } #echo "<pre>".print_r($moduleItemsArray['rewrite'],1)."</pre>"; } if ($moduleItems->rewrite) { $_finalResult[$param] = array_merge_recursive($_finalResult[$param], array($moduleKey => $moduleItemsArray)); } } } } } } $_finalResult = $this->_fillAllClassesToRewrite($_finalResult); $_finalResult = $this->_clearEmptyRows($_finalResult); $_finalResult = $this->_recoverDeletedClassRewrites($_finalResult); // filter aitoc modules foreach ($_finalResult as $type => $data) { foreach ($data as $module => $data) { foreach ($data['rewrite'] as $model => $classes) { $remove = true; foreach ($classes as $class) { if (strstr($class, 'Aitoc') || strstr($class, 'AdjustWare')) { $remove = false; break; } } if ($remove) { unset($_finalResult[$type][$module]['rewrite'][$model]); } } if (!$_finalResult[$type][$module]['rewrite']) { unset($_finalResult[$type][$module]); } } } return $_finalResult; }
/** * Retrive possible conflicts list * * @return array */ public function getConflictList() { $moduleFiles = glob($this->_etcDir . 'modules' . DIRECTORY_SEPARATOR . '*.xml'); if (!$moduleFiles) { return false; } // load file contents $unsortedConfig = new Varien_Simplexml_Config(); $unsortedConfig->loadString('<config/>'); $fileConfig = new Varien_Simplexml_Config(); foreach ($moduleFiles as $filePath) { $fileConfig->loadFile($filePath); $unsortedConfig->extend($fileConfig); } // create sorted config [only active modules] $sortedConfig = new Varien_Simplexml_Config(); $sortedConfig->loadString('<config><modules/></config>'); foreach ($unsortedConfig->getNode('modules')->children() as $moduleName => $moduleNode) { if ('true' === (string) $moduleNode->active) { $sortedConfig->getNode('modules')->appendChild($moduleNode); } } $fileConfig = new Varien_Simplexml_Config(); $_finalResult = array(); $_finalResultAbstract = array(); foreach ($sortedConfig->getNode('modules')->children() as $moduleName => $moduleNode) { $codePool = (string) $moduleNode->codePool; $configPath = $this->_codeDir . $codePool . DIRECTORY_SEPARATOR . uc_words($moduleName, DS) . DIRECTORY_SEPARATOR . 'etc' . DS . 'config.xml'; $fileConfig->loadFile($configPath); $rewriteBlocks = array('blocks', 'models', 'helpers'); foreach ($rewriteBlocks as $param) { if (!isset($_finalResult[$param])) { $_finalResult[$param] = array(); } if ($rewrites = $fileConfig->getXpath('global/' . $param . '/*/rewrite')) { foreach ($rewrites as $rewrite) { $parentElement = $rewrite->xpath('../..'); foreach ($parentElement[0] as $moduleKey => $moduleItems) { $moduleItemsArray['rewrite'] = array(); foreach ($moduleItems->rewrite as $rewriteLine) { foreach ($rewriteLine as $key => $value) { $moduleItemsArray['rewrite'][$key] = (string) $value; } #$moduleItemsArray['rewrite'] += $rewriteLine->asArray(); #echo "<pre>".print_r($moduleItemsArray['rewrite'],1)."</pre>"; } if ($moduleItems->rewrite) { // $_finalResult[$param] = array_merge_recursive($_finalResult[$param], array($moduleKey => $moduleItems->asArray())); $_finalResult[$param] = array_merge_recursive($_finalResult[$param], array($moduleKey => $moduleItemsArray)); } } } } #echo "<pre>".print_r($_finalResult,1)."</pre>"; if ($rewrites = $fileConfig->getXpath('global/' . $param . '/*/rewriteabstract')) { foreach ($rewrites as $rewrite) { $parentElement = $rewrite->xpath('../..'); foreach ($parentElement[0] as $moduleKey => $moduleItems) { if ($moduleItems->rewriteabstract) { // $_finalResultAbstract[$param] = array_merge_recursive($_finalResultAbstract[$param], array($moduleKey => $moduleItems->asArray())); $list = array(); foreach ($moduleItems->rewriteabstract->children() as $key => $value) { $list[$key] = (string) $value; } #echo "<pre>--".print_r($list,1)."</pre>"; #echo "<pre>++".print_r($moduleItems->asArray(),1)."</pre>"; $_finalResultAbstract[$param] = array($moduleKey => array('rewriteabstract' => $list)); } } } } } } foreach (array_keys($_finalResult) as $groupType) { foreach (array_keys($_finalResult[$groupType]) as $key) { // remove some repeating elements after merging all parents foreach ($_finalResult[$groupType][$key]['rewrite'] as $key1 => $value) { if (is_array($value)) { $_finalResult[$groupType][$key]['rewrite'][$key1] = array_unique($value); } // if rewrites count < 2 - no conflicts - remove if (gettype($_finalResult[$groupType][$key]['rewrite'][$key1]) == 'array' && count($_finalResult[$groupType][$key]['rewrite'][$key1]) < 2 || gettype($_finalResult[$groupType][$key]['rewrite'][$key1]) == 'string') { unset($_finalResult[$groupType][$key]['rewrite'][$key1]); } } // clear empty elements if (count($_finalResult[$groupType][$key]['rewrite']) < 1) { unset($_finalResult[$groupType][$key]); } } // clear empty elements if (count($_finalResult[$groupType]) < 1) { unset($_finalResult[$groupType]); } } foreach (array_keys($_finalResultAbstract) as $groupType) { foreach (array_keys($_finalResultAbstract[$groupType]) as $key) { // remove some repeating elements after merging all parents foreach ($_finalResultAbstract[$groupType][$key]['rewriteabstract'] as $key1 => $value) { if (is_array($value)) { $_finalResultAbstract[$groupType][$key]['rewriteabstract'][$key1] = array_unique($value); } } // clear empty elements if (count($_finalResultAbstract[$groupType][$key]['rewriteabstract']) < 1) { unset($_finalResultAbstract[$groupType][$key]); } } // clear empty elements if (count($_finalResultAbstract[$groupType]) < 1) { unset($_finalResultAbstract[$groupType]); } } // filter aitoc modules foreach ($_finalResult as $type => $data) { foreach ($data as $module => $data) { foreach ($data['rewrite'] as $model => $classes) { $remove = true; foreach ($classes as $class) { if (strstr($class, 'Aitoc') || strstr($class, 'AdjustWare')) { $remove = false; break; } } if ($remove) { unset($_finalResult[$type][$module]['rewrite'][$model]); } } if (!$_finalResult[$type][$module]['rewrite']) { unset($_finalResult[$type][$module]); } } } return array($_finalResult, $_finalResultAbstract); }
/** * Load widget XML config and merge with theme widget config * * @return Varien_Simplexml_Element|null */ public function getWidgetConfig() { if ($this->_widgetConfigXml === null) { $this->_widgetConfigXml = Mage::getSingleton('Mage_Widget_Model_Widget')->getXmlElementByType($this->getType()); if ($this->_widgetConfigXml) { $configFile = Mage::getDesign()->getFilename('widget.xml', array('_area' => $this->getArea(), '_package' => $this->getPackage(), '_theme' => $this->getTheme(), '_module' => Mage::getConfig()->determineOmittedNamespace(preg_replace('/^(.+?)\\/.+$/', '\\1', $this->getType()), true))); if (is_readable($configFile)) { $themeWidgetsConfig = new Varien_Simplexml_Config(); $themeWidgetsConfig->loadFile($configFile); if ($themeWidgetTypeConfig = $themeWidgetsConfig->getNode($this->_widgetConfigXml->getName())) { $this->_widgetConfigXml->extend($themeWidgetTypeConfig); } } } } return $this->_widgetConfigXml; }
/** * Load widget XML config and merge with theme widget config * * @return Varien_Simplexml_Element|null */ public function getWidgetConfig() { if ($this->_widgetConfigXml === null) { $this->_widgetConfigXml = Mage::getSingleton('widget/widget')->getXmlElementByType($this->getType()); if ($this->_widgetConfigXml) { $configFile = Mage::getSingleton('core/design_package')->getBaseDir(array('_area' => $this->getArea(), '_package' => $this->getPackage(), '_theme' => $this->getTheme(), '_type' => 'etc')) . DS . 'widget.xml'; if (is_readable($configFile)) { $themeWidgetsConfig = new Varien_Simplexml_Config(); $themeWidgetsConfig->loadFile($configFile); if ($themeWidgetTypeConfig = $themeWidgetsConfig->getNode($this->_widgetConfigXml->getName())) { $this->_widgetConfigXml->extend($themeWidgetTypeConfig); } } } } return $this->_widgetConfigXml; }
protected function checkModulesVersion() { $moduleFiles = glob($this->_etcDir . DS . 'modules' . DS . '*.xml'); $moduleNames = array(); foreach ($moduleFiles as $moduleFile) { if (FALSE !== strpos($moduleFile, 'Aitoc_') || FALSE !== strpos($moduleFile, 'AdjustWare_')) { $aModuleFile = explode(DS, $moduleFile); $moduleName = substr(array_pop($aModuleFile), 0, -4); $moduleConfig = new Varien_Simplexml_Config(); $moduleConfig->loadFile($moduleFile); if ((string) $moduleConfig->getNode('modules/' . $moduleName . '/active') == 'false') { continue; } $moduleNames[$moduleName] = array(); $adminhtmlPath = $this->_codeDir . DS . 'local' . DS . uc_words($moduleName, DS) . DS . 'etc' . DS . 'adminhtml.xml'; $configPath = $this->_codeDir . DS . 'local' . DS . uc_words($moduleName, DS) . DS . 'etc' . DS . 'config.xml'; if (file_exists($configPath)) { $fileConfig = new Varien_Simplexml_Config(); $fileConfig->loadFile($configPath); $version = (string) $fileConfig->getNode('modules/' . $moduleName . '/version'); $platform = (string) $fileConfig->getNode('modules/' . $moduleName . '/platform'); $moduleNames[$moduleName][] = $version; if ($platform) { $moduleNames[$moduleName][] = $platform; } else { if (file_exists($adminhtmlPath)) { $moduleNames[$moduleName][] = '1.4'; } else { $moduleNames[$moduleName][] = '1.3?'; } } } else { $moduleNames[$moduleName][] = 'config.xml not found'; } } } $this->outModulesVersion($moduleNames); }
public function getTestXmlData() { $config = new Varien_Simplexml_Config(); $config->loadFile(dirname(__FILE__) . DS . 'Parser' . DS . 'core.xml'); return $config; }
public function getExtensionConflict($all_conflicts = false) { $all_rewrite_classes = array(); $node_type_list = array('model', 'helper', 'block'); foreach ($node_type_list as $node_type) { foreach (Mage::getConfig()->getNode('modules')->children() as $name => $module) { if ($module->codePool == 'core' || $module->active != 'true') { continue; } $config_file_path = Mage::getConfig()->getModuleDir('etc', $name) . DS . 'config.xml'; $config = new Varien_Simplexml_Config(); $config->loadString('<config/>'); $config->loadFile($config_file_path); $config->extend($config, true); $nodes = $config->getNode()->global->{$node_type . 's'}; if (!$nodes) { continue; } foreach ($nodes->children() as $node_name => $config) { if ($config->rewrite) { // there is rewrite for current config foreach ($config->rewrite->children() as $class_tag => $derived_class) { $base_class_name = $this->_getMageBaseClass($node_type, $node_name, $class_tag); $lead_derived_class = ''; $conf = Mage::getConfig()->getNode()->global->{$node_type . 's'}->{$node_name}; if (isset($conf->rewrite->{$class_tag})) { $lead_derived_class = (string) $conf->rewrite->{$class_tag}; } if ($derived_class == '') { $derived_class = $lead_derived_class; } if (empty($all_rewrite_classes[$base_class_name])) { $all_rewrite_classes[$base_class_name] = array('derived' => array((string) $derived_class), 'lead' => (string) $lead_derived_class, 'tag' => $class_tag, 'name' => array((string) $name)); } else { array_push($all_rewrite_classes[$base_class_name]['derived'], (string) $derived_class); array_push($all_rewrite_classes[$base_class_name]['name'], (string) $name); } } } } } } if ($all_conflicts) { return $all_rewrite_classes; } $isp_rewrite_classes = array(); $isp_module_name = 'Autocompleteplus_Autosuggest'; foreach ($all_rewrite_classes as $base => $conflict_info) { if (in_array($isp_module_name, $conflict_info['name'])) { // if isp extension rewrite this base class if (count($conflict_info['derived']) > 1) { // more then 1 class rewrite this base class => there is a conflict $isp_rewrite_classes[$base] = $conflict_info; } } } return $isp_rewrite_classes; }
/** * Load XML file * * @param string $file * @return Varien_Simplexml_Config */ private function _loadXmlFile($file) { $xmlConfig = new Varien_Simplexml_Config(); $xmlConfig->hasFile = $xmlConfig->loadFile($file); return $xmlConfig; }
protected function getModulesList() { $ret = array(); $moduleFiles = glob($this->_etcDir . DS . 'modules' . DS . '*.xml'); if ($moduleFiles) { // load file contents $unsortedConfig = new Varien_Simplexml_Config(); $unsortedConfig->loadString('<config/>'); $fileConfig = new Varien_Simplexml_Config(); foreach ($moduleFiles as $filePath) { $fileConfig->loadFile($filePath); $unsortedConfig->extend($fileConfig); } // create sorted config [only active modules] $sortedConfig = new Varien_Simplexml_Config(); $sortedConfig->loadString('<config><modules/></config>'); foreach ($unsortedConfig->getNode('modules')->children() as $moduleName => $moduleNode) { if ('true' === (string) $moduleNode->active) { $sortedConfig->getNode('modules')->appendChild($moduleNode); } } $fileConfig = new Varien_Simplexml_Config(); foreach ($sortedConfig->getNode('modules')->children() as $moduleName => $moduleNode) { if (strpos($moduleName, "Mage_") === FALSE) { $codePool = (string) $moduleNode->codePool; $configPath = $this->_codeDir . DS . $codePool . DS . uc_words($moduleName, DS) . DS . 'etc' . DS . 'config.xml'; $fileConfig->loadFile($configPath); $version = $fileConfig->getXpath('modules/' . $moduleName . '/version'); $ret[] = array('version' => $version && $version[0] ? (string) $version[0] : NULL, 'key' => $moduleName); } } } return $ret; }
/** * Deprecated * * @return string */ public function getCharsetOption() { $options = ''; $fileName = Mage::getModuleDir('etc', 'Mage_Oscommerce') . DS . 'charsets.xml'; if (is_readable($fileName)) { $xml = new Varien_Simplexml_Config(); $xml->loadFile($fileName); $charsets = $xml->getNode('charset'); foreach ($charsets as $charset) { $attributes = $charset->attributes(); $options .= '<option value=' . $attributes['name'] . '>' . $charset->family . ' (' . $attributes['name'] . ')</option>'; } } return $options; }