/** * Checks the VirtueMart Server for the latest available Version of VirtueMart * * @return string Example: 1.1.2 */ function getLatestVersion() { if (!class_exists('VmConnector')) { require VMPATH_ROOT . DS . 'administrator' . DS . 'components' . DS . 'com_virtuemart' . DS . 'helpers' . DS . 'connection.php'; } $url = "http://virtuemart.net/index2.php?option=com_versions&catid=1&myVersion={" . VmConfig::getInstalledVersion() . "}&task=latestversionastext"; $result = VmConnector::handleCommunication($url); return $result; }
static function getSetExchangeRates($ecb_filename) { $archive = true; setlocale(LC_TIME, "en-GB"); $now = time() + 3600; // Time in ECB (Germany) is GMT + 1 hour (3600 seconds) if (date("I")) { $now += 3600; // Adjust for daylight saving time } $weekday_now_local = gmdate('w', $now); // week day, important: week starts with sunday (= 0) !! $date_now_local = gmdate('Ymd', $now); $time_now_local = gmdate('Hi', $now); $time_ecb_update = '1415'; if (is_writable(VMPATH_ROOT . DS . 'cache')) { $store_path = VMPATH_ROOT . DS . 'cache'; } else { $store_path = VMPATH_ROOT . DS . 'media'; } $archivefile_name = $store_path . '/daily.xml'; $val = ''; if (file_exists($archivefile_name) && filesize($archivefile_name) > 0) { // timestamp for the Filename $file_datestamp = date('Ymd', filemtime($archivefile_name)); // check if today is a weekday - no updates on weekends if (date('w') > 0 && date('w') < 6 && $file_datestamp != $date_now_local && $time_now_local > $time_ecb_update) { $curr_filename = $ecb_filename; } else { $curr_filename = $archivefile_name; $last_updated = $file_datestamp; $archive = false; } } else { $curr_filename = $ecb_filename; } if (!is_writable($store_path)) { $archive = false; vmError("The file {$archivefile_name} can't be created. The directory {$store_path} is not writable"); } // JError::raiseNotice(1, "The file $archivefile_name should be in the directory $store_path " ); if ($curr_filename == $ecb_filename) { // Fetch the file from the internet if (!class_exists('VmConnector')) { require VMPATH_ADMIN . DS . 'helpers' . DS . 'connection.php'; } // JError::raiseNotice(1, "Updating currency " ); if (!($contents = VmConnector::handleCommunication($curr_filename))) { if (isset($file_datestamp)) { $contents = @file_get_contents($curr_filename); } } else { $last_updated = date('Ymd'); } } else { $contents = @file_get_contents($curr_filename); } if ($contents) { // if archivefile does not exist if ($archive) { // now write new file file_put_contents($archivefile_name, $contents); } $contents = str_replace("<Cube currency='USD'", " <Cube currency='EUR' rate='1'/> <Cube currency='USD'", $contents); /* XML Parsing */ $xmlDoc = new DomDocument(); if (!$xmlDoc->loadXML($contents)) { //todo vmError('Failed to parse the Currency Converter XML document.'); vmError('The content: ' . $contents); // $GLOBALS['product_currency'] = $vendor_currency; return false; } $currency_list = $xmlDoc->getElementsByTagName("Cube"); // Loop through the Currency List $length = $currency_list->length; for ($i = 0; $i < $length; $i++) { $currNode = $currency_list->item($i); if (!empty($currNode) && !empty($currNode->attributes->getNamedItem("currency")->nodeValue)) { $currency[$currNode->attributes->getNamedItem("currency")->nodeValue] = $currNode->attributes->getNamedItem("rate")->nodeValue; unset($currNode); } } $globalCurrencyConverter = $currency; } else { $globalCurrencyConverter = false; vmError('Failed to retrieve the Currency Converter XML document.'); // return false; } return $globalCurrencyConverter; }