/** * Load Applications XML config files from etc/apps directory and cache it * * @return Varien_Simplexml_Config */ public function getXmlConfig() { $cachedXml = Mage::app()->loadCache(self::CACHE_APPLICATIONS_XML); if ($cachedXml) { $xmlApps = new Varien_Simplexml_Config($cachedXml); } else { $files = array(); foreach (new DirectoryIterator(Mage::helper('mpbackup')->getApplicationXmlPath()) as $fileinfo) { /* @var $fileinfo DirectoryIterator */ if (!$fileinfo->isDot() && ($filename = $fileinfo->getFilename()) && strtolower(strval(preg_replace("#.*\\.([^\\.]*)\$#is", "\\1", $filename))) == 'xml') { $files[] = self::APP_PATH_NAME . DS . $filename; } } $config = new Varien_Simplexml_Config(); $config->loadString('<?xml version="1.0"?><application></application>'); foreach ($files as $file) { Mage::getConfig()->loadModulesConfiguration($file, $config); } $xmlApps = $config; if (Mage::app()->useCache('config')) { Mage::app()->saveCache($config->getXmlString(), self::CACHE_APPLICATIONS_XML, array(Mage_Core_Model_Config::CACHE_TAG)); } } return $xmlApps; }
/** * Load config from merged adminhtml.xml files */ public function __construct() { parent::__construct(); $this->setCacheId('adminhtml_acl_menu_config'); /* @var $adminhtmlConfig Varien_Simplexml_Config */ $adminhtmlConfig = Mage::app()->loadCache($this->getCacheId()); if ($adminhtmlConfig) { $this->_adminhtmlConfig = new Varien_Simplexml_Config($adminhtmlConfig); } else { $adminhtmlConfig = new Varien_Simplexml_Config(); $adminhtmlConfig->loadString('<?xml version="1.0"?><config></config>'); Mage::getConfig()->loadModulesConfiguration('adminhtml.xml', $adminhtmlConfig); $this->_adminhtmlConfig = $adminhtmlConfig; /** * @deprecated after 1.4.0.0-alpha2 * support backwards compatibility with config.xml */ $aclConfig = Mage::getConfig()->getNode('adminhtml/acl'); if ($aclConfig) { $adminhtmlConfig->getNode()->extendChild($aclConfig, true); } $menuConfig = Mage::getConfig()->getNode('adminhtml/menu'); if ($menuConfig) { $adminhtmlConfig->getNode()->extendChild($menuConfig, true); } if (Mage::app()->useCache('config')) { Mage::app()->saveCache($adminhtmlConfig->getXmlString(), $this->getCacheId(), array(Mage_Core_Model_Config::CACHE_TAG)); } } }
public function mergeJsCssObserver(Varien_Event_Observer $observer) { return; $layout = $observer->getEvent()->getLayout(); $design = Mage::getSingleton('core/design_package'); $cacheKey = 'LAYOUT_' . $design->getArea() . '_STORE' . Mage::app()->getStore()->getId() . '_' . $design->getPackageName() . '_' . $design->getTheme('layout'); if (!Mage::app()->useCache('layout')) { return $this; } if (!($xml = Mage::app()->loadCache($cacheKey))) { return $this; } $elementClass = $layout->getUpdate()->getElementClass(); $xml = simplexml_load_string($xml, $elementClass); $defaultItems = array(); foreach ($this->_methods as $method) { foreach ($xml->children() as $handle => $node) { if ($handle !== 'default') { continue; } if ($actions = $node->xpath(".//action[@method='" . $method . "']")) { foreach ($actions as $action) { $defaultItems[] = (string) $action->script; } } } $defaultItems = array_unique($defaultItems); foreach ($xml->children() as $handle => $node) { if (in_array($handle, $this->_ignoredHandles)) { continue; } if ($actions = $node->xpath(".//action[@method='" . $method . "']")) { $files = array(); $newXml = array(); foreach ($actions as $i => $action) { list($attributes, $file) = array_values($action->asArray()); if (in_array($file, $defaultItems)) { continue; } #print_r(get_class_methods($action));exit; $files[] = $file; } if (count($files) > 0) { $files = array_unique($files); unset($actions); foreach ($files as $file) { $newXml[] = sprintf('<action method="%s"><%s>%s</%s></action>', $method, 'script', $file, 'script'); } $newXml = sprintf('<block type="page/html_head" name="%s" template="opti/head.phtml">%s</block>', 'head.' . $handle, implode("\n\t", $newXml)); $configNew = new Varien_Simplexml_Config(); $configNew->loadString(sprintf('<layout><%s>%s</%s></layout>', $handle, $newXml, $handle)); $xml->extend($configNew); } } } Mage::app()->saveCache($xml->asXml(), $cacheKey, array(Mage_Core_Model_Layout_Update::LAYOUT_GENERAL_CACHE_TAG), null); } }
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 _getXAVXmlObject() { $url = $this->getConfigData('xav_xml_url'); $this->setXMLAccessRequest(); $xmlRequest = $this->_xmlAccessRequest; $r = $this->_rawRequest; $xmlRequest .= <<<XMLRequest <?xml version="1.0"?> <AddressValidationRequest xml:lang="en-US"> <Request> <RequestAction>XAV</RequestAction> <RequestOption>3</RequestOption> <TransactionReference> <CustomerContext>Address Validation and Classification</CustomerContext> <XpciVersion>1.0</XpciVersion> </TransactionReference> </Request> <AddressKeyFormat> <AddressLine>{$r->getDestStreet()}</AddressLine> <PoliticalDivision2>{$r->getDestCity()}</PoliticalDivision2> <PoliticalDivision1>{$r->getDestRegionCode()}</PoliticalDivision1> <PostcodePrimaryLow>{$r->getDestPostal()}</PostcodePrimaryLow> <CountryCode>{$r->getDestCountry()}</CountryCode> </AddressKeyFormat> </AddressValidationRequest> XMLRequest; $xmlResponse = $this->_getCachedQuotes($xmlRequest); if ($xmlResponse === null) { $debugData = array('request' => $xmlRequest); try { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $xmlRequest); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $xmlResponse = curl_exec($ch); $debugData['result'] = $xmlResponse; $this->_setCachedQuotes($xmlRequest, $xmlResponse); } catch (Exception $e) { $debugData['result'] = array('error' => $e->getMessage(), 'code' => $e->getCode()); $this->_debug($debugData); return null; } $this->_debug($debugData); } $xml = new Varien_Simplexml_Config(); $xml->loadString($xmlResponse); return $xml; }
/** * load gridcontrol.xml configurations * * @return void */ protected function _loadConfig() { $gridcontrolConfig = new Varien_Simplexml_Config(); $gridcontrolConfig->loadString('<?xml version="1.0"?><gridcontrol></gridcontrol>'); $gridcontrolConfig = Mage::getConfig()->loadModulesConfiguration('gridcontrol.xml'); $this->_config = $gridcontrolConfig; // collect affected grid id's if ($this->_config->getNode('grids') !== false) { foreach ($this->_config->getNode('grids')->children() as $grid) { $this->_gridList[] = $grid->getName(); } } }
/** * Load config from cache or merged from logging.xml files */ public function __construct() { $configXml = Mage::app()->loadCache('enterprise_logging_config'); if ($configXml) { $this->_xmlConfig = new Varien_Simplexml_Config($configXml); } else { $config = new Varien_Simplexml_Config(); $config->loadString('<?xml version="1.0"?><logging></logging>'); Mage::getConfig()->loadModulesConfiguration('logging.xml', $config); $this->_xmlConfig = $config; if (Mage::app()->useCache('config')) { Mage::app()->saveCache($config->getXmlString(), 'enterprise_logging_config', array(Mage_Core_Model_Config::CACHE_TAG)); } } }
/** * Load Widgets XML config from widget.xml files and cache it * * @return Varien_Simplexml_Config */ public function getXmlConfig() { $cachedXml = Mage::app()->loadCache('widget_config'); if ($cachedXml) { $xmlConfig = new Varien_Simplexml_Config($cachedXml); } else { $config = new Varien_Simplexml_Config(); $config->loadString('<?xml version="1.0"?><widgets></widgets>'); Mage::getConfig()->loadModulesConfiguration('widget.xml', $config); $xmlConfig = $config; if (Mage::app()->useCache('config')) { Mage::app()->saveCache($config->getXmlString(), 'widget_config', array(Mage_Core_Model_Config::CACHE_TAG)); } } return $xmlConfig; }
/** * Load config from giftregistry.xml files and try to cache it * * @return Varien_Simplexml_Config */ public function getXmlConfig() { if (is_null($this->_config)) { if ($cachedXml = Mage::app()->loadCache('giftregistry_config')) { $xmlConfig = new Varien_Simplexml_Config($cachedXml); } else { $xmlConfig = new Varien_Simplexml_Config(); $xmlConfig->loadString('<?xml version="1.0"?><prototype></prototype>'); Mage::getConfig()->loadModulesConfiguration('giftregistry.xml', $xmlConfig); if (Mage::app()->useCache('config')) { Mage::app()->saveCache($xmlConfig->getXmlString(), 'giftregistry_config', array(Mage_Core_Model_Config::CACHE_TAG)); } } $this->_config = $xmlConfig; } return $this->_config; }
/** * Load config from merged adminhtml.xml files */ public function __construct() { parent::__construct(); $this->setCacheId('adminhtml_acl_menu_config'); /* @var $adminhtmlConfig Varien_Simplexml_Config */ $adminhtmlConfig = Mage::app()->loadCache($this->getCacheId()); if ($adminhtmlConfig) { $this->_adminhtmlConfig = new Varien_Simplexml_Config($adminhtmlConfig); } else { $adminhtmlConfig = new Varien_Simplexml_Config(); $adminhtmlConfig->loadString('<?xml version="1.0"?><config></config>'); Mage::getConfig()->loadModulesConfiguration('adminhtml.xml', $adminhtmlConfig); $this->_adminhtmlConfig = $adminhtmlConfig; if (Mage::app()->useCache('config')) { Mage::app()->saveCache($adminhtmlConfig->getXmlString(), $this->getCacheId(), array(Mage_Core_Model_Config::CACHE_TAG)); } } }
/** * Load XML config from m_db.xml files and caches it * * @return Varien_Simplexml_Config */ public function getXml() { if (!$this->_xml) { $cachedXml = Mage::app()->loadCache('m_db_config'); if ($cachedXml) { $this->_xml = new Varien_Simplexml_Config($cachedXml); } else { $config = new Varien_Simplexml_Config(); $config->loadString('<?xml version="1.0"?><config></config>'); Mage::getConfig()->loadModulesConfiguration('m_db.xml', $config); $this->_xml = $config; $this->_prepareXml(); if (Mage::app()->useCache('config')) { Mage::app()->saveCache($config->getXmlString(), 'm_db_config', array(Mage_Core_Model_Config::CACHE_TAG)); } } } return $this->_xml; }
public function getXmlConfig() { $cachedXml = Mage::app()->loadCache('easytemplate_config'); if ($cachedXml) { $xmlConfig = new Varien_Simplexml_Config($cachedXml); } else { $config = new Varien_Simplexml_Config(); $config->loadString('<?xml version="1.0"?><config><easytemplate></easytemplate></config>'); Mage::getConfig()->loadModulesConfiguration('easytemplate.xml', $config); $xmlConfig = $config; if (Mage::app()->useCache('config')) { Mage::app()->saveCache($config->getXmlString(), 'easytemplate_config', array(Mage_Core_Model_Config::CACHE_TAG)); if (Mage::getStoreConfig('easytemplate/configuration/automatically_clean_database', Mage::app()->getStore()->getId())) { // Clean the database just if caching is active to avoid performance issues $this->cleanDatabase(); } } } return $xmlConfig; }
/** * Load whole customgrid configuration, retrieve a sub part * * @param string $type Configuration part type * @return Varien_Simplexml_Config */ public function getXmlConfig($type) { if (is_null($this->_xmlConfigs)) { $cachedXml = Mage::app()->loadCache(self::CACHE_KEY); if ($cachedXml) { $xmlConfig = new Varien_Simplexml_Config($cachedXml); } else { $config = new Varien_Simplexml_Config(); $config->loadString('<?xml version="1.0"?><customgrid></customgrid>'); Mage::getConfig()->loadModulesConfiguration('customgrid.xml', $config); $xmlConfig = $config; if (Mage::app()->useCache('config')) { Mage::app()->saveCache($config->getXmlString(), self::CACHE_KEY, array(Mage_Core_Model_Config::CACHE_TAG)); } } // Split config in main parts $this->_xmlConfigs = array(self::TYPE_GRID_TYPES => new Varien_Simplexml_Config($xmlConfig->getNode('grid_types')), self::TYPE_COLUMN_RENDERERS_COLLECTION => new Varien_Simplexml_Config($xmlConfig->getNode('column_renderers/collection')), self::TYPE_COLUMN_RENDERERS_ATTRIBUTE => new Varien_Simplexml_Config($xmlConfig->getNode('column_renderers/attribute'))); } return isset($this->_xmlConfigs[$type]) ? $this->_xmlConfigs[$type] : null; }
/** * Load config from merged adminhtml.xml files * @param array $arguments */ public function __construct(array $arguments = array()) { $this->_app = isset($arguments['app']) ? $arguments['app'] : Mage::app(); $this->_appConfig = isset($arguments['appConfig']) ? $arguments['appConfig'] : Mage::getConfig(); if (isset($arguments['helpers'])) { $this->_helpers = $arguments['helpers']; } parent::__construct(); $this->setCacheId('adminhtml_acl_menu_config'); /* @var $adminhtmlConfig Varien_Simplexml_Config */ $adminhtmlConfig = $this->_app->loadCache($this->getCacheId()); if ($adminhtmlConfig) { $this->_adminhtmlConfig = new Varien_Simplexml_Config($adminhtmlConfig); } else { $adminhtmlConfig = new Varien_Simplexml_Config(); $adminhtmlConfig->loadString('<?xml version="1.0"?><config></config>'); $this->_appConfig->loadModulesConfiguration('adminhtml.xml', $adminhtmlConfig); $this->_adminhtmlConfig = $adminhtmlConfig; if ($this->_app->useCache('config')) { $this->_app->saveCache($adminhtmlConfig->getXmlString(), $this->getCacheId(), array(Mage_Core_Model_Config::CACHE_TAG)); } } }
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; }
/** * Initialise the configuration for the extension * * @param Varien_Event_Observer $observer * @return $this */ public function initWordpressConfigObserver(Varien_Event_Observer $observer) { return; $config = Mage::app()->getConfig(); print_r($config->getNode('sections/wordpress/groups')); exit; $config = Mage::getSingleton('adminhtml/config')->getSections('wordpress')->wordpress; $modules = array('wp_addon_multisite' => 'Multisite2'); $template = trim("<%s><label>%s</label>\n\t<frontend_model>wordpress/adminhtml_system_config_backend_form_field_license</frontend_model>\n\t<sort_order>1</sort_order><show_in_default>1</show_in_default>\n</%s>"); foreach ($modules as $helperClass => $name) { $xml[] = sprintf($template, $helperClass, $name, $helperClass); } $configNew = new Varien_Simplexml_Config(); $configNew->loadString(sprintf('<config><wordpress><groups><license><fields>%s</fields></license></groups></wordpress></config>', implode("\n", $xml))); $config->extend($configNew); if (strpos($config->asXml(), 'Multisite2') !== false) { echo 'It appears'; exit; } exit('no'); echo '<pre>' . htmlentities($config->asXml()); exit; echo '<pre>'; print_r($config); exit; }
/** * 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; }
/** * Parse xml tracking response * * @param string $trackingvalue * @param string $response * @return null */ protected function _parseXmlTrackingResponse($trackingvalue, $xmlResponse) { $errorTitle = 'Unable to retrieve tracking'; $resultArr = array(); $packageProgress = array(); if ($xmlResponse) { $xml = new Varien_Simplexml_Config(); $xml->loadString($xmlResponse); $arr = $xml->getXpath("//TrackResponse/Response/ResponseStatusCode/text()"); $success = (int) $arr[0][0]; if ($success === 1) { $arr = $xml->getXpath("//TrackResponse/Shipment/Service/Description/text()"); $resultArr['service'] = (string) $arr[0]; $arr = $xml->getXpath("//TrackResponse/Shipment/PickupDate/text()"); $resultArr['shippeddate'] = (string) $arr[0]; $arr = $xml->getXpath("//TrackResponse/Shipment/Package/PackageWeight/Weight/text()"); $weight = (string) $arr[0]; $arr = $xml->getXpath("//TrackResponse/Shipment/Package/PackageWeight/UnitOfMeasurement/Code/text()"); $unit = (string) $arr[0]; $resultArr['weight'] = "{$weight} {$unit}"; $activityTags = $xml->getXpath("//TrackResponse/Shipment/Package/Activity"); if ($activityTags) { $i = 1; foreach ($activityTags as $activityTag) { $addArr = array(); if (isset($activityTag->ActivityLocation->Address->City)) { $addArr[] = (string) $activityTag->ActivityLocation->Address->City; } if (isset($activityTag->ActivityLocation->Address->StateProvinceCode)) { $addArr[] = (string) $activityTag->ActivityLocation->Address->StateProvinceCode; } if (isset($activityTag->ActivityLocation->Address->CountryCode)) { $addArr[] = (string) $activityTag->ActivityLocation->Address->CountryCode; } $dateArr = array(); $date = (string) $activityTag->Date; //YYYYMMDD $dateArr[] = substr($date, 0, 4); $dateArr[] = substr($date, 4, 2); $dateArr[] = substr($date, -2, 2); $timeArr = array(); $time = (string) $activityTag->Time; //HHMMSS $timeArr[] = substr($time, 0, 2); $timeArr[] = substr($time, 2, 2); $timeArr[] = substr($time, -2, 2); if ($i == 1) { $resultArr['status'] = (string) $activityTag->Status->StatusType->Description; $resultArr['deliverydate'] = implode('-', $dateArr); //YYYY-MM-DD $resultArr['deliverytime'] = implode(':', $timeArr); //HH:MM:SS $resultArr['deliverylocation'] = (string) $activityTag->ActivityLocation->Description; $resultArr['signedby'] = (string) $activityTag->ActivityLocation->SignedForByName; if ($addArr) { $resultArr['deliveryto'] = implode(', ', $addArr); } } else { $tempArr = array(); $tempArr['activity'] = (string) $activityTag->Status->StatusType->Description; $tempArr['deliverydate'] = implode('-', $dateArr); //YYYY-MM-DD $tempArr['deliverytime'] = implode(':', $timeArr); //HH:MM:SS if ($addArr) { $tempArr['deliverylocation'] = implode(', ', $addArr); } $packageProgress[] = $tempArr; } $i++; } $resultArr['progressdetail'] = $packageProgress; } } else { $arr = $xml->getXpath("//TrackResponse/Response/Error/ErrorDescription/text()"); $errorTitle = (string) $arr[0][0]; } } if (!$this->_result) { $this->_result = Mage::getModel('shipping/tracking_result'); } $defaults = $this->getDefaults(); if ($resultArr) { $tracking = Mage::getModel('shipping/tracking_result_status'); $tracking->setCarrier('ups'); $tracking->setCarrierTitle($this->getConfigData('title')); $tracking->setTracking($trackingvalue); $tracking->addData($resultArr); $this->_result->append($tracking); } else { $error = Mage::getModel('shipping/tracking_result_error'); $error->setCarrier('ups'); $error->setCarrierTitle($this->getConfigData('title')); $error->setTracking($trackingvalue); $error->setErrorMessage($errorTitle); $this->_result->append($error); } return $this->_result; }
protected function generatePriceArr($xmlResponse, &$costArr, &$priceArr) { if (strlen(trim($xmlResponse)) > 0) { $xml = new Varien_Simplexml_Config(); $xml->loadString($xmlResponse); $arr = $xml->getXpath("//RatingServiceSelectionResponse/Response/ResponseStatusCode/text()"); $success = (int) $arr[0]; if ($success === 1) { $arr = $xml->getXpath("//RatingServiceSelectionResponse/RatedShipment"); // WSA change for Dropship if (Mage::helper('wsacommon')->isModuleEnabled('Webshopapps_Dropcommon', 'carriers/dropship/active') || Mage::helper('wsacommon')->isModuleEnabled('Webshopapps_Dropship', 'carriers/dropship/active')) { $allowedMethods = $this->_request->getUpsAllowedMethods(); if ($allowedMethods == null) { $allowedMethods = explode(",", $this->getConfigData('allowed_methods')); } } else { $allowedMethods = explode(",", $this->getConfigData('allowed_methods')); } // Negotiated rates $negotiatedArr = $xml->getXpath("//RatingServiceSelectionResponse/RatedShipment/NegotiatedRates"); $negotiatedActive = $this->getConfigFlag('negotiated_active') && $this->getConfigData('shipper_number') && !empty($negotiatedArr); foreach ($arr as $shipElement) { $code = (string) $shipElement->Service->Code; if (in_array($code, $allowedMethods)) { if ($negotiatedActive) { $cost = $shipElement->NegotiatedRates->NetSummaryCharges->GrandTotal->MonetaryValue; } else { $cost = $shipElement->TotalCharges->MonetaryValue; } //convert price with Origin country currency code to base currency code $successConversion = true; $responseCurrencyCode = (string) $shipElement->TotalCharges->CurrencyCode; if ($responseCurrencyCode) { $allowedCurrencies = Mage::getModel('directory/currency')->getConfigAllowCurrencies(); if (in_array($responseCurrencyCode, $allowedCurrencies) && $this->_getBaseCurrencyRate($responseCurrencyCode) > 0) { $cost = (double) $cost * $this->_getBaseCurrencyRate($responseCurrencyCode); } else { $errorTitle = Mage::helper('directory')->__('Can\'t convert rate from "%s-%s".', $responseCurrencyCode, $this->_request->getPackageCurrency()->getCode()); $error = Mage::getModel('shipping/rate_result_error'); $error->setCarrier('ups'); $error->setCarrierTitle($this->getConfigData('title')); $error->setErrorMessage($errorTitle); $successConversion = false; } } if ($successConversion) { $costArr[$code] = $cost; $priceArr[$code] = $this->getMethodPrice(floatval($cost), $code); } } } } else { $arr = $xml->getXpath("//RatingServiceSelectionResponse/Response/Error/ErrorDescription/text()"); $errorTitle = (string) $arr[0][0]; $error = Mage::getModel('shipping/rate_result_error'); $error->setCarrier('ups'); $error->setCarrierTitle($this->getConfigData('title')); //$error->setErrorMessage($errorTitle); $error->setErrorMessage($this->getConfigData('specificerrmsg')); if ($this->getDebugFlag()) { Mage::helper('wsalogger/log')->postWarning('usashipping', 'UPS Error Raised', ''); } } } return $priceArr; }
/** * 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 config from files and try to cache it * * @return Varien_Simplexml_Config */ protected function _getXmlConfig() { if (is_null($this->_config)) { $canUsaCache = Mage::app()->useCache('config'); $cachedXml = Mage::app()->loadCache(self::JAVASCRIPT_TRANSLATE_CONFIG_KEY); if ($canUsaCache && $cachedXml) { $xmlConfig = new Varien_Simplexml_Config($cachedXml); } else { $xmlConfig = new Varien_Simplexml_Config(); $xmlConfig->loadString('<?xml version="1.0"?><jstranslator></jstranslator>'); Mage::getConfig()->loadModulesConfiguration(self::JAVASCRIPT_TRANSLATE_CONFIG_FILENAME, $xmlConfig); if ($canUsaCache) { Mage::app()->saveCache($xmlConfig->getXmlString(), self::JAVASCRIPT_TRANSLATE_CONFIG_KEY, array(Mage_Core_Model_Config::CACHE_TAG)); } } $this->_config = $xmlConfig; } return $this->_config; }
/** * Rewrite a grid block, to add it some useful/needed methods * * @param BL_CustomGrid_Model_Grid $grid * @return bool */ protected function _rewriteGridBlock($grid) { // Get block infos list($group, $class, $rewritingClassName) = $this->_getBlockTypeInfos($grid->getBlockType()); if (!$rewritingClassName && $grid->getRewritingClassName() == '' || $rewritingClassName == $grid->getRewritingClassName()) { // Grid model corresponds to current configuration if (Mage::helper('customgrid/config')->isExcludedGrid($grid->getBlockType(), $rewritingClassName)) { // Do not rewrite if now excluded $this->_excludedModels[] = $grid->getId(); } elseif (!isset($this->_rewritedTypes[$grid->getBlockType()])) { // Register our rewriting class (extending previous rewrite if existing) $className = 'BL_CustomGrid_Block_Rewrite_' . uc_words($class); $extends = $rewritingClassName ? $rewritingClassName : $this->_getBlockClassName($group, $class); $this->_registerGridClass($className, $extends); if ($rewritingClassName) { $this->_originalRewrites[$grid->getBlockType()] = $rewritingClassName; } // Register rewrite in config (this will also replace previous rewrite if existing) // This doesnt seem to affect Magento config cache in any way $rewriteXml = new Varien_Simplexml_Config(); $rewriteXml->loadString(' <config> <global> <blocks> <' . $group . '> <rewrite> <' . $class . '>' . $className . '</' . $class . '> </rewrite> </' . $group . '> </blocks> </global> </config> '); $this->_getConfig()->extend($rewriteXml, true); // Remember current type is now rewrited $this->_rewritedTypes[$grid->getBlockType()] = true; } return true; } else { return false; } }
/** * Retrive possible conflicts list * * @return array */ protected function _getPossibleConflictsList() { $moduleFiles = glob($this->_etcDir . 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 = $this->_codeDir . 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) { if ($moduleItems->rewrite) { $_finalResult[$param] = array_merge_recursive($_finalResult[$param], array($moduleKey => $moduleItems->asArray())); } } } } } } 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]); } } return $_finalResult; }
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; }
/** * Rewrite a grid block, to add it some useful/needed methods * * @param BL_CustomGrid_Model_Grid $grid * @return bool */ protected function _rewriteGridBlock($grid) { // Get block infos list($group, $class, $rewritingClassName) = $this->_getBlockTypeInfos($grid->getBlockType()); if (!$rewritingClassName && $grid->getRewritingClassName() == '' || $rewritingClassName == $grid->getRewritingClassName()) { // Grid model corresponds to current configuration if ($this->_getConfigHelper()->isExcludedGrid($grid->getBlockType(), $rewritingClassName)) { // Do not rewrite if now excluded $this->_excludedModels[] = $grid->getId(); } elseif (!isset($this->_rewritedTypes[$grid->getBlockType()])) { // Generate and register our rewriting class (extending previous rewrite if existing) $rewriters = Mage::getSingleton('customgrid/grid_rewriter')->getEnabledRewriters(true); $blcgClass = false; $originalClass = $rewritingClassName ? $rewritingClassName : $this->_getBlockClassName($group, $class); $rewriteErrors = array(); foreach ($rewriters as $rewriter) { try { $blcgClass = $rewriter->rewriteGrid($originalClass, $grid->getBlockType()); } catch (Exception $e) { $blcgClass = false; $rewriteErrors[] = array('exception' => $e, 'rewriter' => $rewriter); } if ($blcgClass) { break; } } if ($blcgClass) { foreach ($rewriteErrors as $error) { if ($error['rewriter']->getDisplayErrorsIfSuccess()) { $this->_getSession()->addError($error['exception']->getMessage()); } if ($error['rewriter']->getLogErrorsIfSuccess()) { Mage::logException($error['exception']); } } if ($rewritingClassName) { $this->_originalRewrites[$grid->getBlockType()] = $rewritingClassName; } // Register rewrite in config (this will also replace previous rewrite if existing) // This doesnt seem to affect Magento config cache in any way $rewriteXml = new Varien_Simplexml_Config(); $rewriteXml->loadString(' <config> <global> <blocks> <' . $group . '> <rewrite> <' . $class . '>' . $blcgClass . '</' . $class . '> </rewrite> </' . $group . '> </blocks> </global> </config> '); $this->_getConfig()->extend($rewriteXml, true); if ($this->_getConfigHelper()->getForceGridRewrites()) { // Put the rewriting class name in the config cache (should prevent some problems when the config gets overriden afterwards) $this->_getConfig()->getBlockClassName($grid->getBlockType()); } // Remember current type is now rewrited $this->_rewritedTypes[$grid->getBlockType()] = true; } else { foreach ($rewriteErrors as $error) { if ($error['rewriter']->getDisplayErrors()) { $this->_getSession()->addError($error['exception']->getMessage()); } if ($error['rewriter']->getLogErrors()) { Mage::logException($error['exception']); } } // Exclude failed rewrites $this->_excludedModels[] = $grid->getId(); } } return true; } else { return false; } }
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; }