/**
  * test response deserialied filter
  */
 public function testResponseDeserializedFilter()
 {
     $testPacket = new Amfphp_Core_Amf_Packet();
     $testPacket->messages[] = new Amfphp_Core_Amf_Message(null, null, $this->textInPhpCharset);
     $ret = $this->object->filterDeserializedResponse($testPacket);
     $modifiedPacket = $ret;
     $this->assertEquals($this->textInClientCharset, $modifiedPacket->messages[0]->data);
 }
Ejemplo n.º 2
0
 public static function execute()
 {
     global $USER;
     $result = array();
     $error = false;
     if (!CModule::IncludeModule('voximplant')) {
         $error = 'Module voximplant is not installed.';
     } else {
         if (!is_object($USER) || !$USER->IsAuthorized()) {
             $error = GetMessage('ACCESS_DENIED');
         } else {
             if (!CVoxImplantMain::CheckAccess()) {
                 $error = GetMessage('ACCESS_DENIED');
             } else {
                 if (!check_bitrix_sessid()) {
                     $error = GetMessage('ACCESS_DENIED');
                 } else {
                     if ($_REQUEST["act"] == "edit") {
                         $result = self::executeEditPhones($error);
                     } else {
                         if ($_REQUEST["act"] == "getInfo") {
                             $result = self::executeGetInfo($error);
                         } else {
                             if ($_REQUEST["act"] == "option") {
                                 $result = self::executeSaveOption($error);
                             }
                         }
                     }
                 }
             }
         }
     }
     self::returnJson(array_merge(array('result' => $error === false ? 'ok' : 'error', 'error' => CharsetConverter::ConvertCharset($error, SITE_CHARSET, 'UTF-8')), $result));
 }
Ejemplo n.º 3
0
 public function referenceItemsStart($path, $attr)
 {
     if ($this->NS["fp"] <= 0) {
         $this->error = GetMessage("CC_BCIH_XML_PARSE_ERROR", array("#CODE#" => 10));
     } else {
         $this->deleteBySessid($this->NS["HL"], $this->NS["SESSID"]);
         $xmlPosition = $this->xmlStream->getPosition();
         $filePosition = $this->decodePostion($xmlPosition);
         $xmlString = $this->xmlStream->readFilePart($this->NS["fp"], $filePosition);
         $error = "";
         if ($xmlPosition[0]) {
             $xmlString = CharsetConverter::convertCharset($xmlString, $xmlPosition[0], LANG_CHARSET, $error);
         }
         $xmlString .= "</" . GetMessage("CC_BCIH_XML_REFERENCE") . ">";
         $xmlObject = new CDataXML();
         if ($xmlObject->loadString($xmlString)) {
             $highBlockID = $this->checkReference($xmlObject->GetArray());
             $this->dataClass = "";
             $this->step = true;
             $this->message = GetMessage("CC_BCIH_REFERENCE_FOUND_OR_CREATED", array("#CODE#" => $highBlockID));
             if ($highBlockID > 0) {
                 $this->NS["HL"] = $highBlockID;
                 $this->NS["FM"] = array();
                 $this->NS["C"] = 0;
             } else {
                 $this->error = GetMessage("CC_BCIH_XML_PARSE_ERROR", array("#CODE#" => 30));
             }
         } else {
             $this->error = GetMessage("CC_BCIH_XML_PARSE_ERROR", array("#CODE#" => 20));
         }
     }
 }
Ejemplo n.º 4
0
	/**
	 * @static
	 * @return CharsetConverter
	 */
	public static function GetInstance()
	{
		if (!isset(self::$instance))
		{
			$c = __CLASS__;
			self::$instance = new $c;
		}

		return self::$instance;
	}
Ejemplo n.º 5
0
 function qiwiWalletXmlResponse($code)
 {
     global $APPLICATION;
     $APPLICATION->RestartBuffer();
     header("Content-Type: text/xml");
     header("Pragma: no-cache");
     $xml = '<?xml version="1.0" encoding="UTF-8"?><result><result_code>' . $code . '</result_code></result>';
     $siteCharset = Application::getInstance()->getContext()->getCulture()->getCharset();
     print \CharsetConverter::getInstance()->ConvertCharset($xml, $siteCharset, "utf-8");
     die;
 }
Ejemplo n.º 6
0
 public static function createDomain($user, $password, $domain, $params, &$error)
 {
     $domain = CharsetConverter::ConvertCharset($domain, SITE_CHARSET, 'UTF-8');
     $result = CMailRegru::createDomain($user, $password, $domain, array('period' => 1, 'enduser_ip' => $params['ip'], 'profile_type' => $params['profile_type'], 'profile_name' => $params['profile_name'], 'nss' => array('ns0' => 'ns1.reg.ru.', 'ns1' => 'ns2.reg.ru.')), $error);
     if ($result !== false) {
         if (isset($result['dname']) && strtolower($result['dname']) == strtolower($domain)) {
             return true;
         } else {
             $error = 'unknown';
         }
     }
     $error = self::getErrorCode($result['error_code']);
     return null;
 }
Ejemplo n.º 7
0
 public static function ConvertCharset($string, $direction = 1, $skipEvents = false)
 {
     if (is_null(self::$systemEncoding)) {
         self::$systemEncoding = strtolower(defined("BX_FILE_SYSTEM_ENCODING") ? BX_FILE_SYSTEM_ENCODING : "");
         if (empty(self::$systemEncoding)) {
             if (strtoupper(substr(PHP_OS, 0, 3)) === "WIN") {
                 self::$systemEncoding = "windows-1251";
             } else {
                 self::$systemEncoding = "utf-8";
             }
         }
     }
     if (is_null(self::$serverEncoding)) {
         if (defined('BX_UTF')) {
             self::$serverEncoding = "utf-8";
         } elseif (defined("SITE_CHARSET") && strlen(SITE_CHARSET) > 0) {
             self::$serverEncoding = SITE_CHARSET;
         } elseif (defined("LANG_CHARSET") && strlen(LANG_CHARSET) > 0) {
             self::$serverEncoding = LANG_CHARSET;
         } elseif (defined("BX_DEFAULT_CHARSET")) {
             self::$serverEncoding = BX_DEFAULT_CHARSET;
         } else {
             self::$serverEncoding = "windows-1251";
         }
         self::$serverEncoding = strtolower(self::$serverEncoding);
     }
     if (self::$serverEncoding == self::$systemEncoding) {
         return $string;
     }
     include_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/classes/general/charset_converter.php";
     if ($direction == self::directionEncode) {
         $result = CharsetConverter::ConvertCharset($string, self::$serverEncoding, self::$systemEncoding);
     } else {
         $result = CharsetConverter::ConvertCharset($string, self::$systemEncoding, self::$serverEncoding);
     }
     if (defined('BX_IO_Compartible') && !$skipEvents && BX_IO_Compartible === 'Y') {
         $arEventParams = array('original' => $string, 'converted' => $result, 'direction' => $direction, 'systemEncoding' => self::$systemEncoding, 'serverEncoding' => self::$serverEncoding);
         $rsEvents = GetModuleEvents("main", "BXVirtualIO_ConvertCharset");
         while ($arEvent = $rsEvents->Fetch()) {
             $evResult = ExecuteModuleEventEx($arEvent, array($arEventParams));
             if ($evResult !== false) {
                 $result = $evResult;
                 break;
             }
         }
     }
     return $result;
 }
Ejemplo n.º 8
0
 /**
  * Reads xml chunk from the file preserving it's position
  *
  * @param int $startPosition
  * @param int $endPosition
  * @return CDataXML|false
  */
 private function readXml($startPosition, $endPosition)
 {
     $savedPosition = ftell($this->fileHandler);
     fseek($this->fileHandler, $startPosition);
     $xmlChunk = fread($this->fileHandler, $endPosition - $startPosition);
     fseek($this->fileHandler, $savedPosition);
     if ($xmlChunk && $this->fileCharset) {
         $error = "";
         $xmlChunk = CharsetConverter::convertCharset($xmlChunk, $this->fileCharset, LANG_CHARSET, $error);
     }
     $xmlObject = new CDataXML();
     if ($xmlObject->loadString($xmlChunk)) {
         return $xmlObject;
     } else {
         return false;
     }
 }
Ejemplo n.º 9
0
 private function _extractFile(&$arEntry, $path, $removePath, $removeAllPath, &$arParams)
 {
     if (($res = $this->_readFileHeader($header)) != 1) {
         return $res;
     }
     //to be checked: file header should be coherent with $arEntry info
     $arEntry["filename"] = CharsetConverter::ConvertCharset($arEntry["filename"], "cp866", $this->fileSystemEncoding);
     $arEntry["stored_filename"] = CharsetConverter::ConvertCharset($arEntry["stored_filename"], "cp866", $this->fileSystemEncoding);
     //protecting against ../ etc in file path
     //only absolute path should be in the $arEntry
     $arEntry['filename'] = _normalizePath($arEntry['filename']);
     $arEntry['stored_filename'] = _normalizePath($arEntry['stored_filename']);
     if ($removeAllPath == true) {
         $arEntry['filename'] = basename($arEntry['filename']);
     } else {
         if ($removePath != "") {
             if ($this->_containsPath($removePath, $arEntry['filename']) == 2) {
                 //change file status
                 $arEntry['status'] = "filtered";
                 return $res;
             }
             $removePath_size = strlen($removePath);
             if (substr($arEntry['filename'], 0, $removePath_size) == $removePath) {
                 //remove path
                 $arEntry['filename'] = substr($arEntry['filename'], $removePath_size);
             }
         }
     }
     //making absolute path to the extracted file out of filename stored in the zip header and passed extracting path
     if ($path != '') {
         $arEntry['filename'] = $path . "/" . $arEntry['filename'];
     }
     //pre-extract callback
     if (isset($arParams['callback_pre_extract']) && $arParams['callback_pre_extract'] != '') {
         //generate local info
         $arLocalHeader = array();
         $this->_convertHeader2FileInfo($arEntry, $arLocalHeader);
         //callback call
         eval('$res = ' . $arParams['callback_pre_extract'] . '(\'callback_pre_extract\', $arLocalHeader);');
         //change file status
         if ($res == 0) {
             $arEntry['status'] = "skipped";
             $res = 1;
         }
         //update the info, only some fields can be modified
         $arEntry['filename'] = $arLocalHeader['filename'];
     }
     //check if extraction should be done
     if ($arEntry['status'] == 'ok') {
         $logicalFilename = $this->io->GetLogicalName($arEntry['filename']);
         if ((HasScriptExtension($arEntry['filename']) || IsFileUnsafe($arEntry['filename']) || !$this->io->ValidatePathString($logicalFilename) || !$this->io->ValidateFilenameString(GetFileName($logicalFilename))) && $this->checkBXPermissions == true) {
             $arEntry['status'] = "no_permissions";
         } else {
             //if the file exists, change status
             if (file_exists($arEntry['filename'])) {
                 if (is_dir($arEntry['filename'])) {
                     $arEntry['status'] = "already_a_directory";
                 } else {
                     if (!is_writeable($arEntry['filename'])) {
                         $arEntry['status'] = "write_protected";
                     } else {
                         if (filemtime($arEntry['filename']) > $arEntry['mtime'] && !$this->replaceExistentFiles) {
                             $arEntry['status'] = "newer_exist";
                         }
                     }
                 }
             } else {
                 //check the directory availability and create it if necessary
                 if (($arEntry['external'] & 0x10) == 0x10 || substr($arEntry['filename'], -1) == '/') {
                     $checkDir = $arEntry['filename'];
                 } else {
                     if (!strstr($arEntry['filename'], "/")) {
                         $checkDir = "";
                     } else {
                         $checkDir = dirname($arEntry['filename']);
                     }
                 }
                 if (($res = $this->_checkDir($checkDir, ($arEntry['external'] & 0x10) == 0x10)) != 1) {
                     //change file status
                     $arEntry['status'] = "path_creation_fail";
                     //return $res;
                     $res = 1;
                 }
             }
         }
     }
     //check if extraction should be done
     if ($arEntry['status'] == 'ok') {
         //if not a folder - extract
         if (!(($arEntry['external'] & 0x10) == 0x10)) {
             //if zip file with 0 compression
             if ($arEntry['compression'] == 0 && $arEntry['compressed_size'] == $arEntry['size']) {
                 if (($destFile = @fopen($arEntry['filename'], 'wb')) == 0) {
                     $arEntry['status'] = "write_error";
                     return $res;
                 }
                 //reading the fileby by self::ReadBlockSize octets blocks
                 $size = $arEntry['compressed_size'];
                 while ($size != 0) {
                     $length = $size < self::ReadBlockSize ? $size : self::ReadBlockSize;
                     $buffer = fread($this->zipfile, $length);
                     $binary_data = pack('a' . $length, $buffer);
                     @fwrite($destFile, $binary_data, $length);
                     $size -= $length;
                 }
                 //close the destination file
                 fclose($destFile);
                 //changing file modification time
                 touch($arEntry['filename'], $arEntry['mtime']);
             } else {
                 if (($destFile = @fopen($arEntry['filename'], 'wb')) == 0) {
                     //change file status
                     $arEntry['status'] = "write_error";
                     return $res;
                 }
                 //read the compressed file in a buffer (one shot)
                 $buffer = @fread($this->zipfile, $arEntry['compressed_size']);
                 //decompress the file
                 $fileContent = gzinflate($buffer);
                 unset($buffer);
                 //write uncompressed data
                 @fwrite($destFile, $fileContent, $arEntry['size']);
                 unset($fileContent);
                 @fclose($destFile);
                 touch($arEntry['filename'], $arEntry['mtime']);
             }
             if (isset($arParams['set_chmod']) && $arParams['set_chmod'] != 0) {
                 chmod($arEntry['filename'], $arParams['set_chmod']);
             }
         }
     }
     //post-extract callback
     if (isset($arParams['callback_post_extract']) && $arParams['callback_post_extract'] != '') {
         //make local info
         $arLocalHeader = array();
         $this->_convertHeader2FileInfo($arEntry, $arLocalHeader);
         //callback call
         eval('$res = ' . $arParams['callback_post_extract'] . '(\'callback_post_extract\', $arLocalHeader);');
     }
     return $res;
 }
Ejemplo n.º 10
0
 protected static function chr($a)
 {
     return \CharsetConverter::ConvertCharset($a, 'cp1251', SITE_CHARSET);
 }
Ejemplo n.º 11
0
             if (!empty($arResult['SETTINGS']['link'])) {
                 LocalRedirect($arResult['SETTINGS']['link'], true);
             } else {
                 LocalRedirect($APPLICATION->GetCurPage() . '?STEP=setup');
             }
         }
     }
     break;
 case 'check':
     $APPLICATION->RestartBuffer();
     $error = false;
     $unseen = CMailUtil::CheckImapMailbox($acc['SERVER'], $acc['PORT'], $acc['USE_TLS'], $acc['LOGIN'], $acc['PASSWORD'], $error, 30);
     CUserCounter::Set($USER->GetID(), 'mail_unseen', $unseen, SITE_ID);
     CUserOptions::SetOption('global', 'last_mail_check_' . SITE_ID, time());
     CUserOptions::SetOption('global', 'last_mail_check_success_' . SITE_ID, $unseen >= 0);
     $response = array('result' => $error === false ? 'ok' : 'error', 'unseen' => $unseen, 'error' => CharsetConverter::ConvertCharset($error, SITE_CHARSET, 'UTF-8'));
     header('Content-Type: application/x-javascript; charset=' . LANG_CHARSET);
     echo json_encode($response);
     die;
     break;
 case 'setup':
     if ($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST['SERVICE'])) {
         $arResult['ERRORS'] = array();
         $arResult['SETTINGS'] = $arParams['SERVICES'][$arResult['SERVICE']];
         foreach ($arParams['OPTIONS'] as $option) {
             if (empty($arResult['SETTINGS'][$option])) {
                 unset($error);
                 $arResult['SETTINGS'][$option] = isset($_REQUEST[$option]) ? $_REQUEST[$option] : null;
                 $arResult['SETTINGS'][$option] = CheckOption($option, $arResult['SETTINGS'][$option], $error);
                 if (!empty($error)) {
                     $arResult['ERRORS'][] = $error;
Ejemplo n.º 12
0
 protected function prepareAnswer($result)
 {
     if (!defined("BX_UTF")) {
         $result = CharsetConverter::ConvertCharset($result, "utf-8", LANG_CHARSET);
     }
     $res = CUtil::JsObjectToPhp($result);
     if (!$res) {
         AddMessage2Log('Strange answer from Network! ' . $result . print_r($res, 1));
     }
     return $res;
 }
Ejemplo n.º 13
0
	public static function GetVideoOembed($url = '')
	{
		// Get oembed url
		$oembed = self::GetOembedUrlInfo($url);
		$output = array('result' => false, 'error' => "");
		$http = new \Bitrix\Main\Web\HttpClient();
		$resp = $http->get($oembed['url']);
		if ($resp === false)
		{
			$error = $http->getError();
			foreach($error as $errorCode => $errorMessage)
			{
				$output['error'] .=  '['.$errorCode.'] '.$errorMessage.";\n";
			}
		}
		else
		{
			$resParams = json_decode($resp, true);
			if ($resParams && is_array($resParams))
			{
				if (!defined('BX_UTF') || BX_UTF !== true)
				{
					$resParams['title'] = CharsetConverter::ConvertCharset($resParams['title'], 'UTF-8', SITE_CHARSET);
					$resParams['html'] = CharsetConverter::ConvertCharset($resParams['html'], 'UTF-8', SITE_CHARSET);
					$resParams['provider_name'] = CharsetConverter::ConvertCharset($resParams['provider_name'], 'UTF-8', SITE_CHARSET);

				}

				$resParams['html'] = preg_replace("/https?:\/\//is", '//', $resParams['html']);
				$output['result'] = true;
				$output['data'] = array(
					'html' => $resParams['html'],
					'title' => $resParams['title'],
					'width' => intval($resParams['width']),
					'height' => intval($resParams['height']),
					'provider' => $resParams['provider_name']
				);
			}
			else
			{
				$output['error'] .=  '[FVID404] '.GetMessage('HTMLED_VIDEO_NOT_FOUND').";\n";
			}
		}

		return $output;
	}
Ejemplo n.º 14
0
 protected function query($url)
 {
     if ($this->access_token === false) {
         return false;
     }
     $http = new HttpClient();
     $http->setHeader("authorization", "Bearer " . $this->access_token);
     $result = $http->get($url);
     if (!defined("BX_UTF")) {
         $result = CharsetConverter::ConvertCharset($result, "utf-8", LANG_CHARSET);
     }
     $result = CUtil::JsObjectToPhp($result);
     return $result;
 }
Ejemplo n.º 15
0
 public static function StrangeUrlEncode($url)
 {
     if (!defined('BX_UTF')) {
         $url = CharsetConverter::ConvertCharset($url, SITE_CHARSET, "UTF-8");
     }
     $ind = strpos($url, "?");
     $url = str_replace("%2F", "/", rawurlencode(substr($url, 0, $ind))) . substr($url, $ind);
     return $url;
 }
<?php

require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php";
include_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/bizproc/include.php";
if (!check_bitrix_sessid()) {
    die;
}
if (!CBPDocument::CanUserOperateDocumentType(CBPCanUserOperateOperation::CreateWorkflow, $GLOBALS["USER"]->GetID(), $_REQUEST['DocumentType'])) {
    die;
}
$runtime = CBPRuntime::GetRuntime();
$runtime->StartRuntime();
$documentService = $runtime->GetService("DocumentService");
CUtil::DecodeUriComponent($_REQUEST);
CUtil::DecodeUriComponent($_POST);
if (LANG_CHARSET != "UTF-8" && isset($_REQUEST['Type']['Options']) && is_array($_REQUEST['Type']['Options'])) {
    $newarr = array();
    foreach ($_REQUEST['Type']['Options'] as $k => $v) {
        $newarr[CharsetConverter::ConvertCharset($k, "UTF-8", LANG_CHARSET)] = $v;
    }
    $_REQUEST['Type']['Options'] = $newarr;
}
$v = $documentService->GetFieldInputValue($_REQUEST['DocumentType'], $_REQUEST['Type'], $_REQUEST['Field'], $_REQUEST, $arErrors);
$vp = $documentService->GetFieldInputValuePrintable($_REQUEST['DocumentType'], $_REQUEST['Type'], $v);
if (is_array($vp)) {
    $vp = implode(", ", $vp);
}
echo CUtil::PhpToJSObject(array($v, $vp));
Ejemplo n.º 17
0
 public function GetCurrentUserFriends($limit, &$next)
 {
     if ($this->access_token === false) {
         return false;
     }
     $http = new HttpClient();
     $http->setHeader('GData-Version', '3.0');
     $http->setHeader('Authorization', 'Bearer ' . $this->access_token);
     $url = static::FRIENDS_URL . '?';
     $limit = intval($limit);
     $next = intval($next);
     if ($limit > 0) {
         $url .= '&max-results=' . $limit;
     }
     if ($next > 0) {
         $url .= '&start-index=' . $next;
     }
     $result = $http->get($url);
     if (!defined("BX_UTF")) {
         $result = CharsetConverter::ConvertCharset($result, "utf-8", LANG_CHARSET);
     }
     if ($http->getStatus() == 200) {
         $obXml = new \CDataXML();
         if ($obXml->loadString($result)) {
             $tree = $obXml->getTree();
             $total = $tree->elementsByName("totalResults");
             $total = intval($total[0]->textContent());
             $limitNode = $tree->elementsByName("itemsPerPage");
             $next += intval($limitNode[0]->textContent());
             if ($next >= $total) {
                 $next = '__finish__';
             }
             $arFriends = array();
             $arEntries = $tree->elementsByName('entry');
             foreach ($arEntries as $entry) {
                 $arEntry = array();
                 $entryChildren = $entry->children();
                 foreach ($entryChildren as $child) {
                     $tag = $child->name();
                     switch ($tag) {
                         case 'category':
                         case 'updated':
                         case 'edited':
                             break;
                         case 'name':
                             $arEntry[$tag] = array();
                             foreach ($child->children() as $subChild) {
                                 $arEntry[$tag][$subChild->name()] = $subChild->textContent();
                             }
                             break;
                         case 'email':
                             if ($child->getAttribute('primary') == 'true') {
                                 $arEntry[$tag] = $child->getAttribute('address');
                             }
                             break;
                         default:
                             $tagContent = $tag == 'link' ? $child->getAttribute('href') : $child->textContent();
                             if ($child->getAttribute('rel')) {
                                 if (!isset($arEntry[$tag])) {
                                     $arEntry[$tag] = array();
                                 }
                                 $arEntry[$tag][preg_replace("/^[^#]*#/", "", $child->getAttribute('rel'))] = $tagContent;
                             } elseif (isset($arEntry[$tag])) {
                                 if (!is_array($arEntry[$tag][0]) || !isset($arEntry[$tag][0])) {
                                     $arEntry[$tag] = array($arEntry[$tag], $tagContent);
                                 } else {
                                     $arEntry[$tag][] = $tagContent;
                                 }
                             } else {
                                 $arEntry[$tag] = $tagContent;
                             }
                     }
                 }
                 if ($arEntry['email']) {
                     $arFriends[] = $arEntry;
                 }
             }
             return $arFriends;
         }
     }
     return false;
 }
Ejemplo n.º 18
0
 public function SendFeed($socServUserId, $message, $getNewToken = true)
 {
     if (!$this->access_token || intval($this->userId) < 1) {
         self::SetOauthKeys($socServUserId);
     }
     if (!defined("BX_UTF")) {
         $message = CharsetConverter::ConvertCharset($message, LANG_CHARSET, "utf-8");
     }
     $this->sign = strtolower(md5('application_key=' . $this->appKey . 'method=users.setStatusstatus=' . $message . md5($this->access_token . $this->appSecret)));
     $result = CHTTP::sGetHeader(self::CONTACTS_URL . "?method=users.setStatus&application_key=" . $this->appKey . "&access_token=" . $this->access_token . "&sig=" . $this->sign . "&status=" . urlencode($message), array(), $this->httpTimeout);
     if (!defined("BX_UTF")) {
         $result = CharsetConverter::ConvertCharset($result, "utf-8", LANG_CHARSET);
     }
     $arResult = CUtil::JsObjectToPhp($result);
     if ($getNewToken === true && isset($arResult["error_code"]) && $arResult["error_code"] == "102") {
         $newToken = self::RefreshToken($socServUserId);
         if ($newToken === true) {
             self::SendFeed($socServUserId, $message, false);
         } else {
             return false;
         }
     }
     return $arResult;
 }
Ejemplo n.º 19
0
	}
}

if (!defined("AUTH_404"))
	// define("AUTH_404", "Y");

require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/bx_root.php");
require_once($_SERVER["DOCUMENT_ROOT"].BX_PERSONAL_ROOT."/php_interface/dbconn.php");

// define("BX_URLREWRITE", true);

$requestUri = urldecode($_SERVER["REQUEST_URI"]);

$bUTF = (!defined("BX_UTF") && CUtil::DetectUTF8($_SERVER["REQUEST_URI"]));
if($bUTF)
	$requestUri = CharsetConverter::ConvertCharset($requestUri, "utf-8", (defined("BX_DEFAULT_CHARSET")? BX_DEFAULT_CHARSET : "windows-1251"));

include_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/virtual_io.php");
$io = CBXVirtualIo::GetInstance();

$arUrlRewrite = array();
if(file_exists($_SERVER['DOCUMENT_ROOT']."/urlrewrite.php"))
	include($_SERVER['DOCUMENT_ROOT']."/urlrewrite.php");

if(isset($_SERVER['REDIRECT_STATUS']) && $_SERVER['REDIRECT_STATUS'] == '404' || isset($_GET["SEF_APPLICATION_CUR_PAGE_URL"]))
{
	if(isset($_SERVER['REDIRECT_STATUS']) && $_SERVER['REDIRECT_STATUS'] == '404' && !isset($_GET["SEF_APPLICATION_CUR_PAGE_URL"]))
	{
		$url = $requestUri;
	}
	else
Ejemplo n.º 20
0
	function ConvertToLangCharset($string)
	{
		$bUTF = CUtil::DetectUTF8($string);

		$fromCP = false;
		if(defined("BX_UTF") && !$bUTF)
		{
			$fromCP = (defined("BX_DEFAULT_CHARSET")? BX_DEFAULT_CHARSET : "Windows-1251");
			$toCP = "UTF-8";
		}
		elseif(!defined("BX_UTF") && $bUTF)
		{
			$fromCP = "UTF-8";
			$toCP = (defined("LANG_CHARSET")? LANG_CHARSET : (defined("BX_DEFAULT_CHARSET")? BX_DEFAULT_CHARSET : "Windows-1251"));
		}

		if($fromCP !== false)
			$string = CharsetConverter::ConvertCharset($string, $fromCP, $toCP);

		return $string;
	}
Ejemplo n.º 21
0
 public function Authorize()
 {
     global $APPLICATION, $USER;
     $errorCode = 1;
     if ($arOpenID = $this->Validate()) {
         $arFields = array('EXTERNAL_AUTH_ID' => 'OPENID#' . $arOpenID['server'], 'XML_ID' => $arOpenID['identity'], 'PASSWORD' => randString(30), 'LID' => SITE_ID, "PERSONAL_WWW" => $arOpenID['identity']);
         if (array_key_exists('openid_sreg_email', $_GET)) {
             $arFields['EMAIL'] = $_GET['openid_sreg_email'];
         }
         if (array_key_exists('openid_sreg_gender', $_GET) && ($_GET['openid_sreg_gender'] == 'M' || $_GET['openid_sreg_gender'] == 'F')) {
             $arFields['PERSONAL_GENDER'] = $_GET['openid_sreg_gender'];
         }
         if (array_key_exists('openid_sreg_fullname', $_GET)) {
             $fullname = defined("BX_UTF") ? $_GET['openid_sreg_fullname'] : CharsetConverter::ConvertCharset($_GET['openid_sreg_fullname'], 'UTF-8', LANG_CHARSET);
             $fullname = trim($fullname);
             if (($pos = strpos($fullname, ' ')) !== false) {
                 $arFields['NAME'] = substr($fullname, 0, $pos);
                 $arFields['LAST_NAME'] = substr($fullname, $pos + 1);
             } else {
                 $arFields['NAME'] = $fullname;
             }
         }
         if (array_key_exists('openid_sreg_postcode', $_GET)) {
             $arFields['PERSONAL_ZIP'] = $_GET['openid_sreg_postcode'];
         }
         if (array_key_exists('openid_sreg_timezone', $_GET)) {
             $arFields['TIME_ZONE'] = $_GET['openid_sreg_timezone'];
         }
         if (array_key_exists('openid_sreg_country', $_GET)) {
             $arFields['PERSONAL_COUNTRY'] = GetCountryIdByCode($_GET['openid_sreg_country']);
         }
         if (array_key_exists('openid_sreg_dob', $_GET)) {
             $arFields['PERSONAL_BIRTHDAY'] = CDatabase::FormatDate($_GET['openid_sreg_dob'], "YYYY-MM-DD", FORMAT_DATE);
         }
         if (array_key_exists('BX_OPENID_IDENTITY', $_SESSION)) {
             $arFields['LOGIN'] = $_SESSION['BX_OPENID_IDENTITY'];
         } else {
             $arFields['LOGIN'] = $arOpenID['identity'];
         }
         $arFields['LOGIN'] = preg_replace("#^(http://|https://)#i", "", $arFields['LOGIN']);
         $USER_ID = 0;
         if ($GLOBALS["USER"]->IsAuthorized() && $GLOBALS["USER"]->GetID()) {
             if (!CSocServAuth::isSplitDenied()) {
                 $arFields['USER_ID'] = $GLOBALS["USER"]->GetID();
                 CSocServAuthDB::Add($arFields);
                 self::CleanParam();
             } else {
                 $errorCode = SOCSERV_REGISTRATION_DENY;
             }
         } else {
             $dbUsersOld = $GLOBALS["USER"]->GetList($by, $ord, array('XML_ID' => $arFields['XML_ID'], 'EXTERNAL_AUTH_ID' => $arFields['EXTERNAL_AUTH_ID'], 'ACTIVE' => 'Y'), array('NAV_PARAMS' => array("nTopCount" => "1")));
             $dbUsersNew = $GLOBALS["USER"]->GetList($by, $ord, array('XML_ID' => $arFields['XML_ID'], 'EXTERNAL_AUTH_ID' => 'socservices', 'ACTIVE' => 'Y'), array('NAV_PARAMS' => array("nTopCount" => "1")));
             $dbSocUser = CSocServAuthDB::GetList(array(), array('XML_ID' => $arFields['XML_ID'], 'EXTERNAL_AUTH_ID' => $arFields['EXTERNAL_AUTH_ID']), false, false, array("USER_ID", "ACTIVE"));
             if ($arUser = $dbSocUser->Fetch()) {
                 if ($arUser["ACTIVE"] === 'Y') {
                     $USER_ID = $arUser["USER_ID"];
                 }
             } elseif ($arUser = $dbUsersOld->Fetch()) {
                 $USER_ID = $arUser['ID'];
             } elseif ($arUser = $dbUsersNew->Fetch()) {
                 $USER_ID = $arUser["ID"];
             } elseif (COption::GetOptionString("main", "new_user_registration", "N") == "Y") {
                 $def_group = COption::GetOptionString('main', 'new_user_registration_def_group', '');
                 if ($def_group != '') {
                     $arFields['GROUP_ID'] = explode(',', $def_group);
                 }
                 if (!empty($arFields['GROUP_ID']) && CSocServAuth::isAuthDenied($arFields['GROUP_ID'])) {
                     $errorCode = SOCSERV_REGISTRATION_DENY;
                 } else {
                     foreach (GetModuleEvents("main", "OnBeforeOpenIDUserAdd", true) as $arEvent) {
                         ExecuteModuleEventEx($arEvent, array($arFields));
                     }
                     $arFieldsUser = $arFields;
                     $arFieldsUser["EXTERNAL_AUTH_ID"] = "socservices";
                     if (!($USER_ID = $GLOBALS["USER"]->Add($arFieldsUser))) {
                         return false;
                     }
                     $arFields['CAN_DELETE'] = 'N';
                     $arFields['USER_ID'] = $USER_ID;
                     CSocServAuthDB::Add($arFields);
                     unset($arFields['CAN_DELETE']);
                 }
             } elseif (COption::GetOptionString("main", "new_user_registration", "N") == "N") {
                 $errorCode = 2;
             }
             if (intval($USER_ID) > 0) {
                 $arGroups = $USER->GetUserGroup($USER_ID);
                 if (CSocServAuth::isAuthDenied($arGroups)) {
                     $errorCode = SOCSERV_AUTHORISATION_ERROR;
                 } else {
                     $USER->AuthorizeWithOtp($USER_ID);
                     $arKillParams = array("auth_service_id", "check_key");
                     foreach (array_keys($_GET) as $k) {
                         if (strpos($k, 'openid_') === 0) {
                             $arKillParams[] = $k;
                         }
                     }
                     $redirect_url = $APPLICATION->GetCurPageParam('', $arKillParams, false);
                     foreach (GetModuleEvents("main", "OnBeforeOpenIDAuthFinalRedirect", true) as $arEvent) {
                         ExecuteModuleEventEx($arEvent, array($redirect_url, $USER_ID, $arFields));
                     }
                     if ($redirect_url) {
                         LocalRedirect($redirect_url, true);
                     }
                     return $USER_ID;
                 }
             }
         }
     }
     $arKillParams = array("check_key");
     foreach (array_keys($_GET) as $k) {
         if (strpos($k, 'openid') === 0) {
             $arKillParams[] = $k;
         }
     }
     $redirect_url = $APPLICATION->GetCurPageParam('auth_service_error=' . $errorCode, $arKillParams, false);
     LocalRedirect($redirect_url, true);
     return false;
 }
Ejemplo n.º 22
0
 /**
  * Reads xml chunk from the file preserving it's position
  *
  * @param int $startPosition
  * @param int $endPosition
  * @return CDataXML|false
  */
 private function readXml($startPosition, $endPosition)
 {
     $xmlChunk = $this->readFilePart($startPosition, $endPosition);
     if ($xmlChunk && $this->fileCharset) {
         $error = "";
         $xmlChunk = CharsetConverter::convertCharset($xmlChunk, $this->fileCharset, LANG_CHARSET, $error);
     }
     $xmlObject = new CDataXML();
     if ($xmlObject->loadString($xmlChunk)) {
         return $xmlObject;
     } else {
         return false;
     }
 }
Ejemplo n.º 23
0
 public function SendFeed($socServUserId, $message, $messageId)
 {
     $isSetOauthKeys = true;
     if (!$this->access_token || !$this->userId) {
         $isSetOauthKeys = self::SetOauthKeys($socServUserId);
     }
     if ($isSetOauthKeys === false) {
         CSocServMessage::Delete($messageId);
         return false;
     }
     $message = CharsetConverter::ConvertCharset($message, LANG_CHARSET, "utf-8");
     $arPost = array("access_token" => $this->access_token, "message" => $message);
     $result = @CHTTP::sPostHeader($this::GRAPH_URL . "/" . $this->userId . "/feed", $arPost, array(), $this->httpTimeout);
     if ($result !== false) {
         if (!defined("BX_UTF")) {
             $result = CharsetConverter::ConvertCharset($result, "utf-8", LANG_CHARSET);
         }
         return CUtil::JsObjectToPhp($result);
     } else {
         return false;
     }
 }
Ejemplo n.º 24
0
	function __construct($step = 0, $fast = 0, $fix_mode = 0)
	{
		if (!$this->step = intval($step))
			$this->arTestVars['site_checker_success'] = 'Y';
		$this->test_percent = 0;
		$this->strError = '';
		$this->timeout = 10; // sec for one step
		$this->strResult = '';
		$this->fix_mode = intval($fix_mode);
		$this->cafile = $_SERVER['DOCUMENT_ROOT'].'/bitrix/tmp/cacert.pem';

		$this->host = $_REQUEST['HTTP_HOST'] ? $_REQUEST['HTTP_HOST'] : 'localhost';
		if (!$fix_mode) // no need to know the host in fix mode
		{
			if (!preg_match('/^[a-z0-9\.\-]+$/i', $this->host)) // cyrillic domain hack
			{
				$host = $this->host;
				$host0 = CharsetConverter::ConvertCharset($host, 'utf8', 'cp1251');
				if (preg_match("/[\xC0-\xFF]/",$host0))
				{
					// utf-8;
					if (!defined('BX_UTF') && BX_UTF !== true)
						$host = $host0;
				}
				elseif (preg_match("/[\xC0-\xFF]/",$host))
				{
					// windows-1251
					if (defined('BX_UTF') && BX_UTF === true)
						$host = CharsetConverter::ConvertCharset($host, 'cp1251', 'utf8');
				}
				$converter = new CBXPunycode();
				$host = $converter->Encode($host);
				$this->host = $host;
			}
		}
		$this->ssl = $_REQUEST['HTTPS'] == 'on';
		$this->port = $_REQUEST['SERVER_PORT'] ? $_REQUEST['SERVER_PORT'] : ($this->ssl ? 443 : 80);

		$arTestGroup = array();
		$arGroupName = array();

		$arGroupName[1] = IsModuleInstalled('intranet') ? GetMessage("MAIN_SC_GENERAL") : GetMessage("MAIN_SC_GENERAL_SITE");
		$arGroupDesc[1] = GetMessage("MAIN_SC_REQUIRED_MODS_DESC");
		$arTestGroup[1] = array(
			array('check_php_modules' =>GetMessage('SC_T_MODULES')),
			array('check_php_settings' =>GetMessage('SC_T_PHP')),
			array('check_security' => GetMessage('SC_T_APACHE')),
			array('check_server_vars' =>GetMessage('SC_T_SERVER')),
			array('check_session' => GetMessage('SC_T_SESS')),
			array('check_mbstring' =>GetMessage('SC_T_MBSTRING')),
			array('check_socket' => GetMessage('SC_T_SOCK')),
		);

		$arGroupName[2] = GetMessage("MAIN_SC_BUSINESS");
		$arGroupDesc[2] = GetMessage("MAIN_SC_CORRECT_DESC");
		$arTestGroup[2] = array(
			array('check_pull_stream' => GetMessage("MAIN_SC_TEST_CHAT")),
			array('check_pull_comments' => GetMessage("MAIN_SC_TEST_COMMENTS")),
			array('check_turn' => GetMessage("MAIN_SC_TEST_VIDEO")),
			array('check_access_mobile' => GetMessage("MAIN_SC_TEST_MOBILE")),
			array('check_push_bitrix' => GetMessage("MAIN_SC_TEST_PUSH")),
			array('check_access_docs' => GetMessage("MAIN_SC_TEST_DOCS")),
			array('check_fast_download' => GetMessage("MAIN_SC_TEST_FAST_FILES")),
			array('check_search' => GetMessage("MAIN_SC_TEST_SEARCH_CONTENTS")),
			array('check_mail' => GetMessage("MAIN_SC_MAIL_TEST")),
			array('check_ca_file' => GetMessage("MAIN_SC_CLOUD_TEST")),
			array('check_connect_mail' => GetMessage("MAIN_SC_TEST_MAIL_INTEGRATION")),
			array('check_socnet' => GetMessage("MAIN_SC_TEST_SOCNET_INTEGRATION")),
		);
		if (IsModuleInstalled('extranet'))
			$arTestGroup[2][] = array('check_extranet' => GetMessage("MAIN_SC_EXTRANET_ACCESS")); 

		$arGroupName[4] = GetMessage("MAIN_SC_WINDOWS_ENV");
		$arGroupDesc[4] = '';
		$arTestGroup[4] = array(
			array('check_webdav' => GetMessage("MAIN_SC_DOCS_EDIT_MS_OFFICE")),
			array('check_socket_ssl' => GetMessage("MAIN_SC_EXTERNAL_APPS_TEST")),
			array('check_ad' => GetMessage("MAIN_SC_TEST_LDAP")),
			array('check_ntlm' => GetMessage("MAIN_SC_TEST_NTLM")),
		);

		$arGroupName[8] = GetMessage("MAIN_SC_PERFORM");
		$arGroupDesc[8] = '';
		$arTestGroup[8] = array(
			array('check_perf' => GetMessage("MAIN_SC_PERF_TEST")),
			array('check_compression' => GetMessage("MAIN_SC_COMPRESSION_TEST")),
		);

		$arGroupName[16] = GetMessage('SC_GR_EXTENDED');
		$arTestGroup[16] = array(
			array('check_dbconn_settings' => GetMessage('SC_T_DBCONN_SETTINGS')),
			array('check_dbconn' => GetMessage('SC_T_DBCONN')),
			array('check_bx_crontab' => GetMessage("MAIN_SC_AGENTS_CRON")),
			array('check_session_ua' => GetMessage('SC_T_SESS_UA')),
			array('check_sites' => GetMessage('SC_T_SITES')),
			array('check_install_scripts' => GetMessage('SC_T_INSTALL_SCRIPTS')),
			array('check_clone' => GetMessage('SC_T_CLONE')),

			array('check_pcre_recursion' => GetMessage('SC_T_RECURSION')),
			array('check_method_exists' => GetMessage('SC_T_METHOD_EXISTS')),

			array('check_upload' => GetMessage('SC_T_UPLOAD')),
			array('check_upload_big' => GetMessage('SC_T_UPLOAD_BIG')),
			array('check_upload_raw' => GetMessage('SC_T_UPLOAD_RAW')),
			array('check_post' => GetMessage('SC_T_POST')),

			array('check_mail' => GetMessage('SC_T_MAIL')),
			array('check_mail_big' => GetMessage('SC_T_MAIL_BIG')),
			array('check_mail_b_event' => GetMessage('SC_T_MAIL_B_EVENT')),

			array('check_localredirect' => GetMessage('SC_T_REDIRECT')),
			array('check_memory_limit' => GetMessage('SC_T_MEMORY')),
			array('check_cache' => GetMessage('SC_T_CACHE')),

			array('check_update' => GetMessage('SC_UPDATE_ACCESS')), 
			array('check_http_auth' => GetMessage('SC_T_AUTH')),
			array('check_exec' => GetMessage('SC_T_EXEC')),
			array('check_getimagesize' => GetMessage('SC_T_GETIMAGESIZE')),
		);

		$arGroupName[32] = GetMessage('SC_GR_MYSQL');
		$arTestGroup[32] = array(
			array('check_mysql_bug_version' => GetMessage('SC_T_MYSQL_VER')),
			array('check_mysql_time' => GetMessage('SC_T_TIME')),
			array('check_mysql_mode' => GetMessage('SC_T_SQL_MODE')),
			array('check_mysql_connection_charset' => GetMessage('SC_CONNECTION_CHARSET')),
			array('check_mysql_db_charset' => GetMessage('SC_DB_CHARSET')),

//			array('check_mysql_table_status' => GetMessage('SC_T_CHECK')),
			array('check_mysql_table_charset' => GetMessage('SC_T_CHARSET')),
			array('check_mysql_table_structure' => GetMessage('SC_T_STRUCTURE')),
		);

		if ($this->fix_mode)
		{
			switch ($this->fix_mode)
			{
				case 1:
					$this->arTest = array(
						array('check_mysql_table_status' => GetMessage('SC_T_CHECK')),
					);
				break;
				case 2:
					$this->arTest = array(
						array('check_mysql_connection_charset' => GetMessage('SC_CONNECTION_CHARSET')),
						array('check_mysql_db_charset' => GetMessage('SC_DB_CHARSET')),
						array('check_mysql_table_charset' => GetMessage('SC_T_CHARSET')),
					);
				break;
				case 3:
				default:
					$this->arTest = array(
						array('check_mysql_table_structure' => GetMessage('SC_T_STRUCTURE')),
					);
				break;
			}
		}
		else
		{
			$profile = 1;
			if ($fast)
			{
				if (IsModuleInstalled('intranet'))
				{
					$profile |= 2;
					$profile |= 4;
					$profile |= 8;
				}
			}
			else
			{
				$profile |= 16;
				if (strtolower($GLOBALS['DB']->type) == 'mysql')
					$profile |= 32;
			}
			$this->arTest = array();
			$step0 = $step;
			foreach($arTestGroup as $i => $ar)
			{
				if ($i & $profile)
				{
					if (!$this->group_name)
					{
						$c = count($ar);
						if ($step0 >= $c)
							$step0 -= $c;
						else
						{
							$this->group_name = $arGroupName[$i];
							$this->group_desc = $arGroupDesc[$i];
						}
					}
					$this->arTest = array_merge($this->arTest, $ar);
				}
			}
		}

		list($this->function, $this->strCurrentTestName) = each($this->arTest[$this->step]);
		$this->strNextTestName = $this->strCurrentTestName;

		$LICENSE_KEY = '';
		if (file_exists($file = $_SERVER['DOCUMENT_ROOT'].'/bitrix'.'/license_key.php'))
			include($file);

		if ($LICENSE_KEY == '')
			$LICENSE_KEY = 'DEMO';
		define('LICENSE_HASH', md5('CONNECTION_TEST'));
		$this->LogFile = '/bitrix'.'/site_checker_'.md5('SITE_CHECKER'.$LICENSE_KEY).'.log';
	}
 private function ParseOrderData($orderData, &$modificationLabel, &$arErrors)
 {
     if (empty($orderData)) {
         $arErrors[] = array("PD1", GetMessage("CRM_EXT_SALE_IMPORT_EMPTY_ANSW"));
         return null;
     }
     if (substr(ltrim($orderData), 0, strlen('<?xml')) != '<?xml') {
         $orderDataTmp = @gzuncompress($orderData);
         if (substr(ltrim($orderDataTmp), 0, strlen('<?xml')) != '<?xml') {
             if (strpos($orderDataTmp, "You haven't rights for exchange") !== false) {
                 $arErrors[] = array("PD2", GetMessage("CRM_EXT_SALE_IMPORT_UNKNOWN_ANSW_PERMS"));
             } elseif (strpos($orderDataTmp, "failure") !== false) {
                 $arErrors[] = array("PD2", GetMessage("CRM_EXT_SALE_IMPORT_UNKNOWN_ANSW_F"));
                 $arErrors[] = array("PD2", preg_replace("/\\s*failure\n/", "", $orderDataTmp));
             } elseif (strpos($orderData, "Authorization") !== false || strpos($orderData, "Access denied") !== false) {
                 $arErrors[] = array("PD2", GetMessage("CRM_EXT_SALE_IMPORT_UNKNOWN_ANSW_PERMS1"));
             } else {
                 $arErrors[] = array("PD2", GetMessage("CRM_EXT_SALE_IMPORT_UNKNOWN_ANSW") . substr($orderData, 0, 100));
             }
             return null;
         }
         $orderData = $orderDataTmp;
         unset($orderDataTmp);
     }
     $charset = "";
     if (preg_match("/^<" . "\\?xml[^>]+?encoding=[\"']([^>\"']+)[\"'][^>]*\\?" . ">/i", $orderData, $matches)) {
         $charset = trim($matches[1]);
     }
     if (!empty($charset) && strtoupper($charset) != strtoupper(SITE_CHARSET)) {
         $orderData = CharsetConverter::ConvertCharset($orderData, $charset, SITE_CHARSET);
     }
     $objXML = new CDataXML();
     if ($objXML->LoadString($orderData)) {
         $arOrderData = $objXML->GetArray();
     } else {
         $arErrors[] = array("XL1", GetMessage("CRM_EXT_SALE_IMPORT_ERROR_XML"));
         return null;
     }
     $arSettings = array();
     foreach ($arOrderData["CommerceInformation"]["@"] as $key => $value) {
         $arSettings[$key] = array();
         $ar1 = explode(";", $value);
         foreach ($ar1 as $v1) {
             $ar2 = explode("=", $v1);
             if (count($ar2) == 2) {
                 $arSettings[$key][trim($ar2[0])] = $ar2[1];
             }
         }
         if (count($arSettings[$key]) <= 0) {
             $arSettings[$key] = $value;
         }
     }
     if (!isset($arSettings["SumFormat"]["CRD"])) {
         $arSettings["SumFormat"]["CRD"] = '.';
     }
     if (!isset($arSettings["QuantityFormat"]["CRD"])) {
         $arSettings["QuantityFormat"]["CRD"] = '.';
     }
     if (!isset($arSettings["DateFormat"]["DF"])) {
         $arSettings["DateFormat"]["DF"] = 'yyyy-MM-dd';
     }
     $arSettings["DateFormat"]["DF"] = strtoupper($arSettings["DateFormat"]["DF"]);
     if (!isset($arSettings["TimeFormat"]["DF"])) {
         $arSettings["TimeFormat"]["DF"] = 'HH:MM:SS';
     }
     $arSettings["TimeFormat"]["DF"] = str_replace("MM", "MI", $arSettings["TimeFormat"]["DF"]);
     $arOrders = array();
     if (is_array($arOrderData["CommerceInformation"]["#"]) && is_array($arOrderData["CommerceInformation"]["#"]["Document"])) {
         foreach ($arOrderData["CommerceInformation"]["#"]["Document"] as $arDocument) {
             if ($arDocument["#"]["BusinessTransaction"][0]["#"] == "ItemOrder") {
                 $v = $this->ParseOrderDataOrder($arDocument, $arSettings);
                 if (is_array($v)) {
                     $arOrders[] = $v;
                     if (isset($v["DATE_UPDATE"])) {
                         $modificationLabelTmp = MakeTimeStamp($v["DATE_UPDATE"]);
                         if ($modificationLabelTmp > $modificationLabel) {
                             $modificationLabel = $modificationLabelTmp;
                         }
                     }
                 }
             }
         }
     }
     return $arOrders;
 }
Ejemplo n.º 26
0
if (!defined("AUTH_404")) {
    define("AUTH_404", "Y");
}
require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/bx_root.php";
require_once $_SERVER["DOCUMENT_ROOT"] . BX_PERSONAL_ROOT . "/php_interface/dbconn.php";
if (defined("BX_URLREWRITE")) {
    return;
}
define("BX_URLREWRITE", true);
$foundQMark = strpos($_SERVER["REQUEST_URI"], "?");
$requestUriWithoutParams = $foundQMark !== false ? substr($_SERVER["REQUEST_URI"], 0, $foundQMark) : $_SERVER["REQUEST_URI"];
$requestParams = $foundQMark !== false ? substr($_SERVER["REQUEST_URI"], $foundQMark) : "";
//decode only filename, not parameters
$requestPage = urldecode($requestUriWithoutParams);
if (!defined("BX_UTF") && CUtil::DetectUTF8($_SERVER["REQUEST_URI"])) {
    $requestPage = CharsetConverter::ConvertCharset($requestPage, "utf-8", defined("BX_DEFAULT_CHARSET") ? BX_DEFAULT_CHARSET : "windows-1251");
}
$requestUri = $requestPage . $requestParams;
include_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/classes/general/virtual_io.php";
$io = CBXVirtualIo::GetInstance();
$arUrlRewrite = array();
if (file_exists($_SERVER['DOCUMENT_ROOT'] . "/urlrewrite.php")) {
    include $_SERVER['DOCUMENT_ROOT'] . "/urlrewrite.php";
}
if (isset($_SERVER['REDIRECT_STATUS']) && $_SERVER['REDIRECT_STATUS'] == '404' || isset($_GET["SEF_APPLICATION_CUR_PAGE_URL"])) {
    if (isset($_SERVER['REDIRECT_STATUS']) && $_SERVER['REDIRECT_STATUS'] == '404' && !isset($_GET["SEF_APPLICATION_CUR_PAGE_URL"])) {
        $url = $requestUri;
    } else {
        $url = $requestUri = $_SERVER["REQUEST_URI"] = $REQUEST_URI = is_array($_GET["SEF_APPLICATION_CUR_PAGE_URL"]) ? '' : $_GET["SEF_APPLICATION_CUR_PAGE_URL"];
        unset($_GET["SEF_APPLICATION_CUR_PAGE_URL"]);
    }
Ejemplo n.º 27
0
     if (!empty($errorMessageTmp)) {
         $errorMessage .= $errorMessageTmp;
     }
 }
 if (empty($errorMessage)) {
     $isUTF = CUtil::DetectUTF8($responseBody);
     if (!$isUTF && SITE_CHARSET == "UTF-8") {
         $responseBody = CharsetConverter::ConvertCharset($responseBody, SITE_CHARSET, "CP1251");
     }
     if (strpos($responseBody, "bsid=") !== false) {
         $p1 = strpos($responseBody, "bsid=");
         $p2 = strpos($responseBody, ";", $p1);
         $body["sessid"] = substr($responseBody, $p1 + 5, $p2 - $p1 - 5);
         $body1 = http_build_query($body);
         if (!defined("BX_UTF")) {
             $body1 = CharsetConverter::ConvertCharset($body1, SITE_CHARSET, "UTF-8");
         }
         $head1 = "";
         foreach ($arResponseHeaders as $h) {
             $p1 = strpos($h, "PHPSESSID=");
             if ($p1 !== false) {
                 $p2 = strpos($h, ";", $p1);
                 $head1 .= "Cookie: PHPSESSID=" . ($p2 !== false ? substr($h, $p1 + 10, $p2 - $p1 - 10) : substr($h, $p1 + 10)) . "\r\n";
                 break;
             }
         }
         list($arResponseHeaders, $responseBody) = __CrmSaleQuery($crmUrlScheme, $crmUrlHost, $crmUrlPort, $crmLogin, $crmPassword, $head1, $body1, $errorMessageTmp);
         if (!empty($errorMessageTmp)) {
             $errorMessage .= $errorMessageTmp;
         }
     }
Ejemplo n.º 28
0
 $_SESSION['CRM_IMPORT_FILE'] = $sTmpFilePath . md5($_FILES['IMPORT_FILE']['tmp_name']) . '.tmp';
 $_SESSION['CRM_IMPORT_FILE_POS'] = 0;
 move_uploaded_file($_FILES['IMPORT_FILE']['tmp_name'], $_SESSION['CRM_IMPORT_FILE']);
 @chmod($_SESSION['CRM_IMPORT_FILE'], BX_FILE_PERMISSIONS);
 if (isset($_POST['IMPORT_FILE_ENCODING'])) {
     $fileEncoding = $_POST['IMPORT_FILE_ENCODING'];
     if ($fileEncoding !== '' && $fileEncoding !== '_' && $fileEncoding !== strtolower(SITE_CHARSET)) {
         $convertCharsetErrorMsg = '';
         $fileHandle = fopen($_SESSION['CRM_IMPORT_FILE'], 'rb');
         $fileContents = fread($fileHandle, filesize($_SESSION['CRM_IMPORT_FILE']));
         fclose($fileHandle);
         //HACK: Remove UTF-8 BOM
         if ($fileEncoding === 'utf-8' && substr($fileContents, 0, 3) === "") {
             $fileContents = substr($fileContents, 3);
         }
         $fileContents = CharsetConverter::ConvertCharset($fileContents, $fileEncoding, SITE_CHARSET, $convertCharsetErrorMsg);
         $fileHandle = fopen($_SESSION['CRM_IMPORT_FILE'], 'wb');
         fwrite($fileHandle, $fileContents);
         fclose($fileHandle);
     }
 }
 $_SESSION['CRM_IMPORT_DEFAULT_RESPONSIBLE_ID'] = isset($_POST['IMPORT_DEFAULT_RESPONSIBLE_ID']) ? $_POST['IMPORT_DEFAULT_RESPONSIBLE_ID'] : '';
 $_SESSION['CRM_IMPORT_IMPORT_NAME_FORMAT'] = isset($_POST['IMPORT_NAME_FORMAT']) && \Bitrix\Crm\Format\PersonNameFormatter::isDefined($_POST['IMPORT_NAME_FORMAT']) ? intval($_POST['IMPORT_NAME_FORMAT']) : \Bitrix\Crm\Format\PersonNameFormatter::FirstLast;
 if ($_POST['IMPORT_FILE_SEPORATOR'] == 'semicolon') {
     $_SESSION['CRM_IMPORT_FILE_SEPORATOR'] = ';';
 } elseif ($_POST['IMPORT_FILE_SEPORATOR'] == 'comma') {
     $_SESSION['CRM_IMPORT_FILE_SEPORATOR'] = ',';
 } elseif ($_POST['IMPORT_FILE_SEPORATOR'] == 'tab') {
     $_SESSION['CRM_IMPORT_FILE_SEPORATOR'] = "\t";
 } elseif ($_POST['IMPORT_FILE_SEPORATOR'] == 'space') {
     $_SESSION['CRM_IMPORT_FILE_SEPORATOR'] = ' ';
Ejemplo n.º 29
0
	public function GetCurrentUser()
	{
		if($this->access_token === false)
			return false;

		$result = CHTTP::sGet(self::CONTACTS_URL."?access_token=".urlencode($this->access_token));
		if(!defined("BX_UTF"))
			$result = CharsetConverter::ConvertCharset($result, "utf-8", LANG_CHARSET);

		return CUtil::JsObjectToPhp($result);
	}
Ejemplo n.º 30
0
	public function GetCurrentUser()
	{
		if($this->access_token === false)
			return false;

		$result = CHTTP::sGetHeader(self::CONTACTS_URL.'?access_token='.urlencode($this->access_token), array(), $this->httpTimeout);

		if(!defined("FX_UTF"))
			$result = CharsetConverter::ConvertCharset($result, "utf-8", LANG_CHARSET);

		$result = CUtil::JsObjectToPhp($result);

		if(is_array($result))
		{
			$result["access_token"] = $this->access_token;
			$result["refresh_token"] = $this->refresh_token;
			$result["expires_in"] = $this->accessTokenExpires;
		}
		return $result;
	}