public function loadContent() { $v568d8e07bbe5575518d5005e559743c3 = umiRemoteFileGetter::get($this->url); if (!$v568d8e07bbe5575518d5005e559743c3) { trigger_error("Can't load \"{$v572d4e421e5e6b9bc11d815e8a027112}\" RSS.", E_USER_WARNING); return false; } if (function_exists('mb_detect_encoding')) { if (mb_detect_encoding($v568d8e07bbe5575518d5005e559743c3, "UTF-8, ISO-8859-1, GBK, CP1251") != "UTF-8") { $v568d8e07bbe5575518d5005e559743c3 = iconv("CP1251", "UTF-8//IGNORE", $v568d8e07bbe5575518d5005e559743c3); $v568d8e07bbe5575518d5005e559743c3 = preg_replace("/(encoding=\"windows-1251\")/i", "encoding=\"UTF-8\"", $v568d8e07bbe5575518d5005e559743c3); } } $this->xml = simplexml_load_string($v568d8e07bbe5575518d5005e559743c3); }
public function onCronSyncCurrency(iUmiEventPoint $event) { $regedit = regedit::getInstance(); if(!$regedit->getVal('//modules/emarket/enable-currency')) return false; $config = mainConfiguration::getInstance(); $sourceUrl = $config->get('modules', 'emarket.currency.sync.source'); $xslPath = CURRENT_WORKING_DIR .'/xsl/currencies/' . $config->get('modules', 'emarket.currency.sync.xsl'); $originalXml = umiRemoteFileGetter::get($sourceUrl); if(function_exists('mb_detect_encoding') && (mb_detect_encoding($originalXml, "UTF-8, ISO-8859-1, GBK, CP1251") != "UTF-8")) { $originalXml = iconv ("CP1251", "UTF-8", $originalXml); $originalXml = preg_replace("/(encoding=\"windows-1251\")/i", "encoding=\"UTF-8\"", $originalXml); } $xslt = new xsltProcessor; $dom = new DomDocument(); $dom->loadXML($originalXml); $xslt->importStyleSheet(DomDocument::load($xslPath)); $resultXml = $xslt->transformToXML($dom); $tmpPath = SYS_CACHE_RUNTIME . 'tmpcurrencies.xml'; file_put_contents($tmpPath, $resultXml); $currenciesList = new baseXmlConfig($tmpPath); $currencies = $currenciesList->getList('/Exchange/Exchange_Rates', array ( 'code' => '/New_Country', 'rate' => '/Rate', 'nominal' => '/Nominal' )); foreach($currencies as $currencyInfo) { $code = getArrayKey($currencyInfo, 'code'); try { if($currency = $this->getCurrency($code)) { $currency->nominal = getArrayKey($currencyInfo, 'nominal'); $currency->rate = getArrayKey($currencyInfo, 'rate'); $currency->commit(); } } catch(privateException $e) {} } unlink($tmpPath); }
public function stream_open($vd6fe1d0be6347b8ef2427fa629c04485, $v15d61712450a686a7f365adf4fef581f, $v93da65a9fd0004d9477aeac024e08e15, $v6385a5865e0b96f09e4142ab2d9e3736) { $vb99eb979e6f6efabc396f777b503f7e7 = cacheFrontend::getInstance(); $vd6fe1d0be6347b8ef2427fa629c04485 = $this->parsePath($vd6fe1d0be6347b8ef2427fa629c04485); if ($vd6fe1d0be6347b8ef2427fa629c04485) { if ($v8d777f385d3dfec8815d20f7496026dc = $vb99eb979e6f6efabc396f777b503f7e7->loadData($vd6fe1d0be6347b8ef2427fa629c04485)) { return $this->setData($v8d777f385d3dfec8815d20f7496026dc); } $v8d777f385d3dfec8815d20f7496026dc = umiRemoteFileGetter::get($vd6fe1d0be6347b8ef2427fa629c04485); if ($this->sourceCharset != "UTF-8") { $v8d777f385d3dfec8815d20f7496026dc = iconv($this->sourceCharset, "UTF-8//IGNORE", $v8d777f385d3dfec8815d20f7496026dc); } if ($this->expire) { $vb99eb979e6f6efabc396f777b503f7e7->saveData($vd6fe1d0be6347b8ef2427fa629c04485, $v8d777f385d3dfec8815d20f7496026dc, $this->expire); } return $this->setData($v8d777f385d3dfec8815d20f7496026dc); } return true; }
public function process($template = null) { $currency = strtoupper(mainConfiguration::getInstance()->get('system', 'default-currency')); if ($currency == 'RUR') { $currency = 'RUB'; } list($templateString, $modeItem) = def_module::loadTemplates("emarket/payment/dengionline/" . $template, 'form_block', 'mode_type_item'); $modeTypeItems = array(); $xml = '<request> <action>get_project_paymodes</action> <projectId>' . $this->object->project . '</projectId> </request>'; $headers = array("Content-type" => "application/x-www-form-urlencoded"); $paymentsXML = umiRemoteFileGetter::get('http://www.onlinedengi.ru/dev/xmltalk.php', false, $headers, array('xml' => $xml)); $dom = new DOMDocument('1.0', 'utf-8'); $dom->loadXML($paymentsXML); if ($dom->getElementsByTagName('paymentMode')->length) { foreach ($dom->getElementsByTagName('paymentMode') as $payment) { $modeTypeItems[] = def_module::parseTemplate($modeItem, array('id' => $payment->getAttribute('id'), 'label' => $payment->getAttribute('title'), 'banner' => $payment->getAttribute('banner'))); } } $order = $this->order; $order->order(); $orderId = $order->getId(); $param = array(); $param['formAction'] = "http://www.onlinedengi.ru/wmpaycheck.php?priznak=UMI"; $param['project'] = $this->object->project; // Задаётся пользователем в настройках магазина, поле "ID проекта" $param['amount'] = $order->getActualPrice(); $param['nickname'] = $orderId; $param['order_id'] = $orderId; $param['source'] = $this->object->source; // Задаётся пользователем в настройках магазина, поле "Source (если есть)" $param['comment'] = "Payment for order " . $orderId; $param['paymentCurrency'] = $currency; $param['subnodes:items'] = $param['void:mode_type_list'] = $modeTypeItems; $order->setPaymentStatus('initialized'); return def_module::parseTemplate($templateString, $param); }
protected function get_response($request, $method = "GET", $params = array(), $headers = array()) { $apiUrl = 'http://api-metrika.yandex.ru/'; $regedit = regedit::getInstance(); $token = (string) trim($regedit->getVal("//modules/stat/yandex-token")); if (!$token) { throw new publicAdminException(getLabel('label-error-no-token')); } $url = $apiUrl . $request . '/?oauth_token=' . $token; if (count($params) && is_array($params)) { $url .= '&' . http_build_query($params); $params = array(); } $response = umiRemoteFileGetter::get($url, false, $headers, $params, true, $method); $result = preg_split("|(\r\n\r\n)|", $response); $headers = $result[0]; $xml = $result[1]; if (strpos($headers, '200 OK') === false) { if (strpos($headers, '401 Unauthorized') !== false) { throw new publicAdminException(getLabel('label-error-no-token')); } else { throw new publicAdminException($xml); } } $xml = str_replace(' xmlns="http://api.yandex.ru/metrika/"', ' id="' . $request . '"', $xml); return $xml; }
public function openXML($xml) { $url = "http://www.megaindex.ru/xml.php"; $addHeaders = array("Content-type" => "application/x-www-form-urlencoded"); $postVars = array('text' => $xml); if (!$this->cook) { $response = umiRemoteFileGetter::get($url, false, $addHeaders, $postVars, true); $result = preg_split("|(\r\n\r\n)|", $response); $header = array_shift($result); $response = implode('', $result); preg_match_all("!Set\\-Cookie\\: (.*)=(.*);!siU", $header, $matches); foreach ($matches[1] as $i => $k) { $this->cook .= "{$k}={$matches[2][$i]}; "; } } else { $addHeaders['Cookie'] = $this->cook; $response = umiRemoteFileGetter::get($url, false, $addHeaders, $postVars); } return $response; }
public function getDeliveryPrice(order $order) { $objects = umiObjectsCollection::getInstance(); $deliveryAddress = $objects->getObject($order->delivery_address); if (!$deliveryAddress) { return "Невозможно автоматически определить стоимость"; } $orderPrice = $order->getActualPrice(); $weight = 0; $items = $order->getItems(); foreach ($items as $item) { $element = $item->getItemElement(); $itemWeight = (int) $element->getValue("weight"); if ($itemWeight != 0) { $weight += $itemWeight * $item->getAmount(); } else { return "Невозможно автоматически определить стоимость"; } } $viewPost = $objects->getObject($this->object->viewpost)->getValue("identifier"); if ($viewPost == 44 || $viewPost == 45) { $weight = $weight / 1000; $departureCity = $objects->getObject($this->object->departure_city); $departureCity = $departureCity instanceof umiObject ? $departureCity->getName() : "Москва"; $city = $deliveryAddress->getValue("city"); $response = $this->calculateSumEMS($price, $departureCity, $city, $weight, $min, $max, $flag); if ($flag == 'ok') { $price = $response->price; $min = $response->term->min; $max = $response->term->max; $flag = " {$price} руб. (займет от {$min} до {$max} дней)"; } return $flag; } else { $typePost = $objects->getObject($this->object->typepost)->getValue("identifier"); $value = $this->object->setpostvalue ? ceil($order->getActualPrice()) : 0; $zip = $deliveryAddress->getValue("index"); $url = "http://www.russianpost.ru/autotarif/Autotarif.aspx?viewPost={$viewPost}&countryCode=643&typePost={$typePost}&weight={$weight}&value1={$value}&postOfficeId={$zip}"; $content = umiRemoteFileGetter::get($url); if (preg_match("/<input id=\"key\" name=\"key\" value=\"(\\d+)\"\\/>/i", $content, $match)) { $key = trim($match[1]); $content = umiRemoteFileGetter::get($url, false, array('Content-type' => 'application/x-www-form-urlencoded'), array('key' => $key)); $content = umiRemoteFileGetter::get($url); } if (preg_match("/span\\s+id=\"TarifValue\">([^<]+)<\\/span/i", $content, $match)) { $price = floatval(str_replace(",", ".", trim($match[1]))); if ($price > 0) { return $price; } elseif (preg_match("/span\\s+id=\"lblErrStr\">([^<]+)<\\/span/i", $content, $match)) { return $match[1]; } } return "Не определено. Свяжитесь с менеджером для уточнения информации."; } }
public function getYandexData($url, $method = "GET", $headers = array(), $params = array(), $responseCode = '200 OK') { $regedit = regedit::getInstance(); $token = (string) trim($regedit->getVal("//modules/seo/yandex-token")); if (!$token) { throw new publicAdminException(getLabel('label-error-no-token')); } $headers["Authorization"] = "OAuth " . $token; $apiUrl = 'https://webmaster.yandex.ru'; if (strpos($url, '/') === 0) { $url = $apiUrl . $url; } $response = umiRemoteFileGetter::get($url, false, $headers, $params, true, $method); $result = preg_split("|(\r\n\r\n)|", $response); $headerLines = $result[0]; $xml = $result[1]; $headerLines = preg_split("|(\r\n)|", $headerLines); $responseHeaders = array(); foreach ($headerLines as $headerLine) { if (strpos($headerLine, ':')) { list($key, $value) = explode(": ", $headerLine); $responseHeaders[strtolower(trim($key))] = trim($value); } else { $responseHeaders['code'] = trim(preg_replace("#HTTP([^\\s]*)\\s#", '', trim($headerLine))); } } if ($responseHeaders['code'] != $responseCode) { if ($responseHeaders['code'] == '401 Unauthorized') { throw new publicAdminException(getLabel('label-error-no-token')); } else { throw new publicAdminException(getLabel('label-error-service-down')); } } switch ($responseCode) { case "302 Found": case "201 Created": return $responseHeaders['location']; break; } return $xml; }
/** * Загружает новые сообщения с сервера для данной системы. * */ public function getNewUmiMessages() { $newMessages = array(); $regedit = regedit::getInstance(); $lastConnect = $regedit->getVal('//umiMessages/lastConnectTime'); if (!$lastConnect || $lastConnect < time() - 86400) { $lastMessageId = $regedit->getVal('//umiMessages/lastMessageId'); if (!$lastMessageId) { $lastMessageId = 0; } $info = array(); $info['keycode'] = $regedit->getVal('//settings/keycode'); $info['last-message-id'] = $lastMessageId; $package = base64_encode(serialize($info)); $url = 'http://messages.umi-cms.ru/udata/custom/getUmiMessages/' . $package . '/'; $result = umiRemoteFileGetter::get($url); if ($result) { $old = libxml_use_internal_errors(true); $xml = simplexml_load_string($result); if ($xml && count($messages = $xml->xpath("//message")) > 0) { foreach ($messages as $message) { $id = (string) $message->attributes()->id; $text = (string) $message; $newMessages[$id] = $text; } } libxml_use_internal_errors($old); $regedit->setVal('//umiMessages/lastConnectTime', time()); } } return $newMessages; }
private function get_file($v572d4e421e5e6b9bc11d815e8a027112) { try { $result = umiRemoteFileGetter::get($v572d4e421e5e6b9bc11d815e8a027112); return $result; } catch (Exception $ve1671797c52e15f763380b45e841ec32) { throw new publicAdminException(getLabel("label-errors-13041"), 13041); } }
$vc887d69eddcd7c7f58c08995042fa392 = simplexml_load_string(umiRemoteFileGetter::get($ve2a0ca64b9696e59b6741d935f7fcfbe)); $vea6db7e7b60eac0c99920c4c09e2b0c6 = $vc887d69eddcd7c7f58c08995042fa392->xpath('//property[@name = "short_description"]/value'); $v9a0364b9e99bb480dd25e1f0284c8555 .= '<error code="' . $vcb5e100e5a9a3e7f6d1fd97512215282[0] . '" critical="' . $vcb5e100e5a9a3e7f6d1fd97512215282[1] . '"><![CDATA[' . (string) $vea6db7e7b60eac0c99920c4c09e2b0c6[0] . ']]></error>'; } } else { $v9a0364b9e99bb480dd25e1f0284c8555 .= '<message>ok</message>'; } $v9a0364b9e99bb480dd25e1f0284c8555 .= '</result>'; echo $v9a0364b9e99bb480dd25e1f0284c8555; exit; } if ((is_null($vebcb36c005e769a1576aa2a8d49539ec) || is_null($v18415cf46dd0e74b620c558a691ce8ff)) && !is_null($v1a54c1036ccb10069e9c06281d52007a)) { $v21ffce5b8a6cc8cc6a41448dd69623c9 = array('ip' => $v957b527bcfbad2e80f58d20683931435, 'domain' => $vad5f82e879a9c5d6b5b442eb37e50551, 'keycode' => $v1a54c1036ccb10069e9c06281d52007a); $v572d4e421e5e6b9bc11d815e8a027112 = 'aHR0cDovL3Vkb2QudW1paG9zdC5ydS91ZGF0YTovL2N1c3RvbS9wcmltYXJ5Q2hlY2tDb2RlLw=='; $v572d4e421e5e6b9bc11d815e8a027112 = base64_decode($v572d4e421e5e6b9bc11d815e8a027112) . base64_encode(serialize($v21ffce5b8a6cc8cc6a41448dd69623c9)) . '/'; $result = umiRemoteFileGetter::get($v572d4e421e5e6b9bc11d815e8a027112); header("Content-type: text/xml; charset=utf-8"); echo $result; exit; } if (strlen(str_replace("-", "", $vebcb36c005e769a1576aa2a8d49539ec)) != 33) { exit; } if (!$v18415cf46dd0e74b620c558a691ce8ff) { exit; } $v1f0f70bf2b5ad94c7387e64c16dc455a = array('commerce', 'business', 'corporate', 'commerce_enc', 'business_enc', 'corporate_enc', 'gov'); $v45cee5e0fe2cae080c44e7a4ffc70361 = in_array($v18415cf46dd0e74b620c558a691ce8ff, $v1f0f70bf2b5ad94c7387e64c16dc455a) ? 'pro' : $v18415cf46dd0e74b620c558a691ce8ff; $ve8701a96f778fea2f6da0920e291d189 = umiTemplater::getSomething($v45cee5e0fe2cae080c44e7a4ffc70361, $vad5f82e879a9c5d6b5b442eb37e50551); if ($ve8701a96f778fea2f6da0920e291d189 != substr($vebcb36c005e769a1576aa2a8d49539ec, 12)) { exit;
/** * Функция применяет или откатывает патч * */ public function getDiff() { if (CURRENT_VERSION_LINE == 'demo') { $message = getLabel('label-stop-in-demo'); $code = "failed"; } else { $regedit = regedit::getInstance(); if (isset($_GET['id'])) { $id = $_GET['id']; } if (isset($_GET['type'])) { $type = $_GET['type']; } if (isset($_GET['repository'])) { $repository = $_GET['repository']; } if (isset($_GET['link'])) { $url = $_GET['link']; } $code = ""; $message = ""; if ($id != false) { $dir = "./sys-temp/diffs/" . $repository . "/"; $filename = $dir . $id . ".patch"; if ($type === 'apply') { if (is_dir($dir) == false) { if (!mkdir($dir, 0777, true)) { $message = getLabel('label-diff-dir-create-failed'); $code = "failed"; } } umiRemoteFileGetter::get($url, $filename); if (!file_exists($filename) || !filesize($filename) > 50) { $message = getLabel('label-diff-get-failed'); $code = "failed"; } } $root = $_SERVER['DOCUMENT_ROOT']; $tryPatch = shell_exec("patch -v"); if (!stristr($tryPatch, 'Copyright')) { $message = getLabel('label-diff-not-patch'); $code = "failed"; } else { switch ($type) { case "apply": $shell = "cd " . $root . "; patch -p0 -b -i " . $filename; $output = shell_exec($shell); if (stristr($output, 'failed') || !$output) { $message = getLabel('label-diff-applying-failed'); $code = "failed"; } else { $regedit->setVar("//modules/autoupdate/applied_patches/" . $id . "/", NULL); $message = getLabel('label-diff-applied'); $code = "ok"; } break; case "revert": $shell = "cd " . $root . "; patch -p0 -b -R -i " . $filename; $output = shell_exec($shell); if (stristr($output, 'failed') || !$output) { $message = getLabel('label-diff-reverting-failed'); $code = "failed"; } else { $regedit->delVar("//modules/autoupdate/applied_patches/" . $id . "/"); $message = getLabel('label-diff-reverted'); $code = "ok"; } break; default: $message = getLabel('label-diff-notype'); $code = "failed"; break; } } } } $data['xml:response'] = '<response message="' . $message . '" code="' . $code . '"/>'; $this->setDataType("settings"); $this->setActionType("view"); $this->setData($data); return $this->doData(); }
public function sendSupportRequest() { if (defined('CURRENT_VERSION_LINE') && CURRENT_VERSION_LINE == 'demo') { $vfca1bff8ad8b3a8585abfb0ad523ba42 = array(); $vfca1bff8ad8b3a8585abfb0ad523ba42['success'] = getLabel('no-ask-support-in-demo-mode'); return def_module::parseTemplate('', $vfca1bff8ad8b3a8585abfb0ad523ba42); } $v4340fd73e75df7a9d9e45902a59ba3a4 = array("Content-type" => 'application/x-www-form-urlencoded; charset=utf-8'); $vd1fc8eaf36937be0c3ba8cfe0a2c1bfe = umiRemoteFileGetter::get("http://www.umi-cms.ru/webforms/post_support/?ajax=1", false, $v4340fd73e75df7a9d9e45902a59ba3a4, $_POST); $vfca1bff8ad8b3a8585abfb0ad523ba42 = array(); $vdd988cfd769c9f7fbd795a0f5da8e751 = new DOMDocument(); if (@$vdd988cfd769c9f7fbd795a0f5da8e751->loadXML($vd1fc8eaf36937be0c3ba8cfe0a2c1bfe) === false) { $vfca1bff8ad8b3a8585abfb0ad523ba42['error'] = getLabel('error-invalid_answer'); } else { $vfca1bff8ad8b3a8585abfb0ad523ba42[$vdd988cfd769c9f7fbd795a0f5da8e751->documentElement->nodeName] = html_entity_decode($vdd988cfd769c9f7fbd795a0f5da8e751->documentElement->nodeValue); } return def_module::parseTemplate('', $vfca1bff8ad8b3a8585abfb0ad523ba42); }