protected function receiveFiles() { $result = array(); $timeToKeepFiles = 24; $tmpDir = \CTempFile::GetDirectoryName($timeToKeepFiles); CheckDirPath($tmpDir); $sftp = \Bitrix\Sale\TradingPlatform\Ebay\Helper::getSftp($this->siteId); $sftp->connect(); /* $orderFiles = $sftp->getFilesList($this->remotePath); foreach($orderFiles as $file) { if($sftp->downloadFile($this->remotePath."/".$file, $tmpDir.$file)) { $result[] = $tmpDir.$file; Ebay::log(Logger::LOG_LEVEL_INFO, "EBAY_DATA_SOURCE_ORDERFILE_RECEIVED", $file, "File received successfully.", $this->siteId); } } */ $file = "orderLatest"; if ($sftp->downloadFile($this->orderLatest, $tmpDir . $file)) { $result[] = $tmpDir . $file; Ebay::log(Logger::LOG_LEVEL_INFO, "EBAY_DATA_SOURCE_ORDERFILE_RECEIVED", $file, "File received successfully.", $this->siteId); } return $result; }
function GetReportsList($strPath2Export) { $arReports = array(); CheckDirPath($_SERVER["DOCUMENT_ROOT"] . $strPath2Export); if ($handle = opendir($_SERVER["DOCUMENT_ROOT"] . $strPath2Export)) { while (($file = readdir($handle)) !== false) { if ($file == "." || $file == "..") { continue; } if (is_file($_SERVER["DOCUMENT_ROOT"] . $strPath2Export . $file) && substr($file, strlen($file) - 8) == "_run.php") { $export_name = substr($file, 0, strlen($file) - 8); $rep_title = $export_name; $file_handle = fopen($_SERVER["DOCUMENT_ROOT"] . $strPath2Export . $file, "rb"); $file_contents = fread($file_handle, 1500); fclose($file_handle); $arMatches = array(); if (preg_match("#<title[\\s]*>([^<]*)</title[\\s]*>#i", $file_contents, $arMatches)) { $arMatches[1] = Trim($arMatches[1]); if (strlen($arMatches[1]) > 0) { $rep_title = $arMatches[1]; } } $arReports[$export_name] = array("PATH" => $strPath2Export, "FILE_RUN" => $strPath2Export . $file, "TITLE" => $rep_title); if (file_exists($_SERVER["DOCUMENT_ROOT"] . $strPath2Export . $export_name . "_setup.php")) { $arReports[$export_name]["FILE_SETUP"] = $strPath2Export . $export_name . "_setup.php"; } } } } closedir($handle); return $arReports; }
public static function CronRun($profileID, $in_cron = "N") { define("path2export", "/bitrix/php_interface/include/catalog_export/"); $pr = CProfileAdmin::GetByID($profileID)->Fetch(); $cron_period = intval($pr['PERIOD']); $cron_period = $cron_period <= 0 ? 86400 : $cron_period; $data = date("d.m.Y H:i:s", $pr['DATA_START']); $d = explode(" ", $data); $t = explode(":", $d[1]); $cron_hour = intval($t[0]); $cron_minute = intval($t[1]); $cron_hour = $cron_hour <= 0 ? 0 : $cron_hour; $cron_minute = $cron_minute <= 0 ? 0 : $cron_minute; $cron_php_path = COption::GetOptionString("acrit.googlemerchant", "php_path"); $cron_php_path = strlen($cron_php_path) > 0 ? $cron_php_path : getPHPExecutableFromPath(); if (file_exists($_SERVER["DOCUMENT_ROOT"] . path2export . "acrit_gm_cron.php")) { CheckDirPath($_SERVER["DOCUMENT_ROOT"] . path2export); $tmp_file_size = filesize($_SERVER["DOCUMENT_ROOT"] . path2export . "acrit_gm_cron.php"); $fp = fopen($_SERVER["DOCUMENT_ROOT"] . path2export . "acrit_gm_cron.php", "rb"); $tmp_data = fread($fp, $tmp_file_size); fclose($fp); $tmp_data = str_replace("#DOCUMENT_ROOT#", $_SERVER["DOCUMENT_ROOT"], $tmp_data); $tmp_data = str_replace("#PHP_PATH#", $cron_php_path, $tmp_data); $fp = fopen($_SERVER["DOCUMENT_ROOT"] . path2export . "acrit_gm_cron.php", "w+"); fwrite($fp, $tmp_data); fclose($fp); } $cfg_data = ""; if (file_exists($_SERVER["DOCUMENT_ROOT"] . "/bitrix/crontab/crontab.cfg")) { $cfg_file_size = filesize($_SERVER["DOCUMENT_ROOT"] . "/bitrix/crontab/crontab.cfg"); $cfg_file_size = $cfg_file_size != 0 ? $cfg_file_size : 1; $fp = fopen($_SERVER["DOCUMENT_ROOT"] . "/bitrix/crontab/crontab.cfg", "rb"); $cfg_data = fread($fp, $cfg_file_size); fclose($fp); } CheckDirPath($_SERVER["DOCUMENT_ROOT"] . path2export . "logs/"); if ($in_cron == "Y") { $cfg_data = preg_replace("#^.*?" . preg_quote(path2export) . "acrit_gm_cron.php " . $profileID . " *>.*?\$#im", "", $cfg_data); } else { if ($cron_period > 0) { $strTime = "0 */" . $cron_period . " * * * "; } else { $strTime = intval($cron_minute) . " " . intval($cron_hour) . " * * * "; } if (strlen($cfg_data) > 0) { $cfg_data .= "\n"; } $cfg_data = preg_replace("#^.*?" . preg_quote(path2export) . "acrit_gm_cron.php " . $profileID . " *>.*?\$#im", "", $cfg_data); $cfg_data .= $strTime . $cron_php_path . " -f " . $_SERVER["DOCUMENT_ROOT"] . path2export . "acrit_gm_cron.php " . $profileID . " >" . $_SERVER["DOCUMENT_ROOT"] . path2export . "logs/" . $profileID . ".txt\n"; } CheckDirPath($_SERVER["DOCUMENT_ROOT"] . "/bitrix/crontab/"); $cfg_data = preg_replace("#[\r\n]{2,}#im", "\n", $cfg_data); $fp = fopen($_SERVER["DOCUMENT_ROOT"] . "/bitrix/crontab/crontab.cfg", "wb"); fwrite($fp, $cfg_data); fclose($fp); $arRetval = array(); @exec("crontab " . $_SERVER["DOCUMENT_ROOT"] . "/bitrix/crontab/crontab.cfg", $arRetval, $return_var); }
function __form_CopyFiles($source_abs, $target, $bReWriteAdditionalFiles = false, $search = false, $replace = false) { $source_base = dirname(__FILE__); //$source_abs = $source_base.$source; $target_abs = $_SERVER['DOCUMENT_ROOT'] . $target; if (file_exists($source_abs) && is_dir($source_abs)) { //Create target directory CheckDirPath($target_abs); $dh = opendir($source_abs); //Read the source while ($file = readdir($dh)) { if ($file == "." || $file == "..") { continue; } $target_file = $target_abs . $file; if ($bReWriteAdditionalFiles || !file_exists($target_file)) { //Here we will write public data $source_file = $source_abs . $file; if (is_dir($source_file)) { continue; } $fh = fopen($source_file, "rb"); $php_source = fread($fh, filesize($source_file)); fclose($fh); //Replace real IDs if (is_array($search) && is_array($replace)) { $php_source = str_replace($search, $replace, $php_source); } //Parse GetMessage("MESSAGE_ID") with double quotes if (preg_match_all('/GetMessage\\("(.*?)"\\)/', $php_source, $matches)) { //Include LANGUAGE_ID file //__IncludeLang(GetLangFileName($source_base."/lang/", $source.$file)); //Substite the stuff foreach ($matches[0] as $i => $text) { $php_source = str_replace($text, '"' . GetMessage($matches[1][$i]) . '"', $php_source); } } //Parse GetMessage('MESSAGE_ID') with single quotes //embedded html if (preg_match_all('/GetMessage\\(\'(.*?)\'\\)/', $php_source, $matches)) { //Include LANGUAGE_ID file //__IncludeLang(GetLangFileName($source_base."/lang/", $source.$file)); //Substite the stuff foreach ($matches[0] as $i => $text) { $php_source = str_replace($text, GetMessage($matches[1][$i]), $php_source); } } //Write to the destination directory $fh = fopen($target_file, "wb"); fwrite($fh, $php_source); fclose($fh); @chmod($target_file, BX_FILE_PERMISSIONS); } } } }
public function __construct($sXmlDataFile) { $this->sDir = $_SERVER["DOCUMENT_ROOT"] . $this->sRelDir; CheckDirPath($this->sDir); $this->sXmlDataFile = $this->sDir . $sXmlDataFile; if (intval(ini_get('max_execution_time')) > 0) { $this->iMax_exec_time = ini_get('max_execution_time') * 0.9; } else { $this->iMax_exec_time = 160; } }
function Download($url, $file) { CheckDirPath($file); $this->fp = fopen($file, "wb"); if (is_resource($this->fp)) { $res = $this->HTTPQuery('GET', $url); fclose($this->fp); unset($this->fp); return $res && $this->status == 200; } return false; }
function __CopyForumFiles($source_abs, $target_abs, $bReWriteAdditionalFiles = true, $arParams = array()) { $source_base = dirname(__FILE__); $source_base = str_replace(array("\\", "//"), "/", $source_base . "/"); $source_abs = str_replace(array("\\", "//"), "/", $source_abs . "/"); $target_abs = str_replace(array("\\", "//"), "/", $target_abs . "/"); $source = substr($source_abs, strLen($source_base)); $source = str_replace("//", "/", "/" . $source . "/"); $arParams = is_array($arParams) ? $arParams : array(); if (file_exists($source_abs)) { //Create target directory CheckDirPath($target_abs); $dh = opendir($source_abs); //Read the source while ($file = readdir($dh)) { if ($file == "." || $file == "..") { continue; } if (is_dir($source_abs . $file)) { __CopyForumFiles($source_abs . $file, $target_abs . $file, $bReWriteAdditionalFiles); } else { $target_file = $target_abs . $file; if ($bReWriteAdditionalFiles || !file_exists($target_file)) { //Here we will write public data $source_file = $source_abs . $file; $fh = fopen($source_file, "rb"); $php_source = fread($fh, filesize($source_file)); fclose($fh); $arParamsForReplace = array(); foreach ($arParams as $key => $val) { $arParamsForReplace["#" . $key . "#"] = $val; } $php_source = str_replace(array_keys($arParamsForReplace), $arParamsForReplace, $php_source); //Parse localization if (preg_match_all('/GetMessage\\("(.*?)"\\)/', $php_source, $matches)) { //Include LANGUAGE_ID file $path = $source_base . "lang/" . LANGUAGE_ID . $source . $file; __IncludeLang($path); //Substite the stuff foreach ($matches[0] as $i => $text) { $php_source = str_replace($text, '"' . GetMessage($matches[1][$i]) . '"', $php_source); } } //Write to the destination directory $fh = fopen($target_file, "wb"); fwrite($fh, $php_source); fclose($fh); @chmod($target_file, BX_FILE_PERMISSIONS); } } } } }
function SavePreviewContent($abs_path, $strContent) { CheckDirPath($abs_path); $fd = fopen($abs_path, "wb"); if (is_resource($fd)) { $result = fwrite($fd, $strContent); fclose($fd); chmod($abs_path, BX_FILE_PERMISSIONS); return $result > 0; } else { return false; } }
public function DoInstall() { if (!check_bitrix_sessid()) { return false; } $modPath = $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/" . $this->MODULE_ID . "/install/components"; $comPath = $_SERVER["DOCUMENT_ROOT"] . "/bitrix/components"; CopyDirFiles($modPath, $comPath, true, true); CheckDirPath($_SERVER["DOCUMENT_ROOT"] . "/bitrix/images/maxposter/", true, true); CopyDirFiles($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/" . $this->MODULE_ID . "/install/images", $_SERVER["DOCUMENT_ROOT"] . "/bitrix/images/maxposter", true, true); RegisterModule($this->MODULE_ID); LocalRedirect("settings.php?lang=" . LANGUAGE_ID . '&mid=' . $this->MODULE_ID); return true; }
function __bx_share_get_handlers($template = false) { if (trim($template) == ".default") { $template = ""; } $arBookmarkHandlerDropdown = array(); $arBookmarkHandlerDropdownDefault = array(); $shareComponent = new CBitrixComponent(); $shareComponent->InitComponent("bitrix:main.share", $template); $shareComponent->InitComponentTemplate($template); if (strlen($shareComponent->__template->__folder) > 0) { $path2Handlers = $_SERVER["DOCUMENT_ROOT"] . "/" . $shareComponent->__template->__folder . "/handlers/"; CheckDirPath($path2Handlers); $arHandlers = array(); if ($handle = opendir($path2Handlers)) { while (($file = readdir($handle)) !== false) { if ($file == "." || $file == "..") { continue; } if (is_file($path2Handlers . $file) && strtoupper(substr($file, strlen($file) - 4)) == ".PHP") { $name = $title = $icon_url_template = ""; $sort = 0; include $path2Handlers . $file; if (strlen($name) > 0) { $arHandlers[$name] = array("TITLE" => $title, "ICON" => $icon_url_template, "SORT" => intval($sort)); } } } } foreach ($arHandlers as $name => $arSystem) { if (strlen($arSystem["TITLE"]) > 0) { $arBookmarkHandlerDropdown[$name] = $arSystem["TITLE"]; } } $arBookmarkHandlerDropdownTmp = $arBookmarkHandlerDropdown; if (LANGUAGE != 'ru') { if (array_key_exists("vk", $arBookmarkHandlerDropdownTmp)) { unset($arBookmarkHandlerDropdownTmp["vk"]); } if (array_key_exists("mailru", $arBookmarkHandlerDropdownTmp)) { unset($arBookmarkHandlerDropdownTmp["mailru"]); } } $arBookmarkHandlerDropdownDefault = array_keys($arBookmarkHandlerDropdownTmp); } return array("HANDLERS" => $arBookmarkHandlerDropdown, "HANDLERS_DEFAULT" => $arBookmarkHandlerDropdownDefault); }
public function testCanTOpenFile() { $bSuccess = CheckDirPath(self::$_docRoot . '/bitrix/tmp/obx.core/', BX_DIR_PERMISSIONS); //umask(0777^BX_DIR_PERMISSIONS); rmdir(self::$_docRoot . '/bitrix/tmp/obx.core/testPrivateDir'); $bSuccess = mkdir(self::$_docRoot . '/bitrix/tmp/obx.core/testPrivateDir', 00); $this->assertTrue($bSuccess); $exceptionCode = null; try { new LogFile('UnitTest testPermDenied()', '/bitrix/tmp/obx.core/testPrivateDir/test_log_file.log'); } catch (LogFileError $e) { $exceptionCode = $e->getCode(); } $this->assertEquals(LogFileError::E_CANT_OPEN, $exceptionCode); chmod(self::$_docRoot . '/bitrix/tmp/obx.core/testPrivateDir', 0777); rmdir(self::$_docRoot . '/bitrix/tmp/obx.core/testPrivateDir'); }
public function saveEntityClass($path = null) { if (empty($path)) { $path = $this->config->getClassPath(); } Tools::_fixFilePath($path); if ('/' != substr($path, 0, 1)) { $path = '/bitrix/modules/' . $this->config->getModuleID() . '/' . $path; } if (!CheckDirPath(OBX_DOC_ROOT . $path)) { throw new Err('', Err::E_CLASS_SAVE_FAILED); } if (false === file_put_contents(OBX_DOC_ROOT . $path, $this->phpClass->generateClass())) { return false; } return true; }
function OBX_CopyDirFilesEx($path_from, $path_to, $ReWrite = True, $Recursive = False, $bDeleteAfterCopy = False, $strExclude = "") { $path_from = str_replace(array("\\", "//"), "/", $path_from); $path_to = str_replace(array("\\", "//"), "/", $path_to); if (is_file($path_from) && !is_file($path_to)) { if (CheckDirPath($path_to)) { $file_name = substr($path_from, strrpos($path_from, "/") + 1); $path_to .= $file_name; return CopyDirFiles($path_from, $path_to, $ReWrite, $Recursive, $bDeleteAfterCopy, $strExclude); } } if (is_dir($path_from) && substr($path_to, strlen($path_to) - 1) == "/") { $folderName = substr($path_from, strrpos($path_from, "/") + 1); $path_to .= $folderName; } return CopyDirFiles($path_from, $path_to, $ReWrite, $Recursive, $bDeleteAfterCopy, $strExclude); }
function InstallFiles() { CheckDirPath($_SERVER["DOCUMENT_ROOT"] . "/bitrix/components/bitrix/webservice.checkauth"); CheckDirPath($_SERVER["DOCUMENT_ROOT"] . "/bitrix/components/bitrix/webservice.server"); //CheckDirPath($_SERVER["DOCUMENT_ROOT"]."/ws"); CopyDirFiles($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/webservice/install/components/bitrix/webservice.checkauth", $_SERVER["DOCUMENT_ROOT"] . "/bitrix/components/bitrix/webservice.checkauth", true, true); CopyDirFiles($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/webservice/install/components/bitrix/webservice.server", $_SERVER["DOCUMENT_ROOT"] . "/bitrix/components/bitrix/webservice.server", true, true); CopyDirFiles($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/webservice/install/components/bitrix/webservice.statistic", $_SERVER["DOCUMENT_ROOT"] . "/bitrix/components/bitrix/webservice.statistic", true, true); CopyDirFiles($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/webservice/install/tools", $_SERVER["DOCUMENT_ROOT"] . "/bitrix/tools", true, true); /* CopyDirFiles( $_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/webservice/install/ws", $_SERVER["DOCUMENT_ROOT"]."/ws", false); */ return true; }
function InstallFiles() { if ($_ENV["COMPUTERNAME"] != 'BX') { CopyDirFiles($_SERVER['DOCUMENT_ROOT'] . "/bitrix/modules/catalog/install/admin", $_SERVER['DOCUMENT_ROOT'] . "/bitrix/admin"); CopyDirFiles($_SERVER['DOCUMENT_ROOT'] . "/bitrix/modules/catalog/install/components", $_SERVER['DOCUMENT_ROOT'] . "/bitrix/components", true, true); CopyDirFiles($_SERVER['DOCUMENT_ROOT'] . "/bitrix/modules/catalog/install/images", $_SERVER['DOCUMENT_ROOT'] . "/bitrix/images/catalog", true, true); CopyDirFiles($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/catalog/install/js", $_SERVER["DOCUMENT_ROOT"] . "/bitrix/js", true, true); CopyDirFiles($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/catalog/install/panel", $_SERVER["DOCUMENT_ROOT"] . "/bitrix/panel", true, true); CopyDirFiles($_SERVER['DOCUMENT_ROOT'] . "/bitrix/modules/catalog/install/themes", $_SERVER['DOCUMENT_ROOT'] . "/bitrix/themes", true, true); CopyDirFiles($_SERVER['DOCUMENT_ROOT'] . "/bitrix/modules/catalog/install/tools", $_SERVER['DOCUMENT_ROOT'] . "/bitrix/tools", true, true); CopyDirFiles($_SERVER['DOCUMENT_ROOT'] . "/bitrix/modules/catalog/install/public/catalog_import", $_SERVER['DOCUMENT_ROOT'] . "/bitrix/php_interface/include/catalog_import"); CopyDirFiles($_SERVER['DOCUMENT_ROOT'] . "/bitrix/modules/catalog/install/public/catalog_export", $_SERVER['DOCUMENT_ROOT'] . "/bitrix/php_interface/include/catalog_export"); CopyDirFiles($_SERVER['DOCUMENT_ROOT'] . "/bitrix/modules/catalog/install/public/catalog_export/froogle_util.php", $_SERVER['DOCUMENT_ROOT'] . "/bitrix/tools/catalog_export/froogle_util.php"); CopyDirFiles($_SERVER['DOCUMENT_ROOT'] . "/bitrix/modules/catalog/install/public/catalog_export/yandex_util.php", $_SERVER['DOCUMENT_ROOT'] . "/bitrix/tools/catalog_export/yandex_util.php"); CopyDirFiles($_SERVER['DOCUMENT_ROOT'] . "/bitrix/modules/catalog/install/public/catalog_export/yandex_detail.php", $_SERVER['DOCUMENT_ROOT'] . "/bitrix/tools/catalog_export/yandex_detail.php"); CheckDirPath($_SERVER['DOCUMENT_ROOT'] . "/bitrix/catalog_export/"); } return true; }
function __ReWalkDirs($pathFrom, $pathTo, $language_id, $bConvert = false, $strEncodingIn = '', $strEncodingOut = '') { $handle = @opendir($pathFrom); if ($handle) { while (false !== ($dir = readdir($handle))) { if (!is_dir($pathFrom . "/" . $dir) || $dir == "." || $dir == "..") { continue; } if ($dir == "lang" || strlen($pathFrom) - strrpos($pathFrom, 'payment') == 7) { if (file_exists($pathFrom . "/" . $dir . "/" . $language_id)) { CheckDirPath($pathTo . "/" . $dir . "/" . $language_id . "/"); __CopyDirFiles($pathFrom . "/" . $dir . "/" . $language_id, $pathTo . "/" . $dir . "/" . $language_id, true, true, $bConvert, $strEncodingIn, $strEncodingOut); } } else { __ReWalkDirs($pathFrom . "/" . $dir, $pathTo . "/" . $dir, $language_id, $bConvert, $strEncodingIn, $strEncodingOut); } } closedir($handle); } }
public function Keygen($keylen = false) { if ($keylen === false) { $keylen = 1024; } else { $keylen = intval($keylen); } $fname = $_SERVER["DOCUMENT_ROOT"] . "/bitrix/tmp/openssl.cnf"; if (!file_exists($fname)) { CheckDirPath($fname); file_put_contents($fname, ''); } $keys = openssl_pkey_new(array("private_key_type" => OPENSSL_KEYTYPE_RSA, "private_key_bits" => $keylen, "config" => $fname)); if ($keys) { openssl_pkey_export($keys, $privkey, null, array("config" => $fname)); $k = self::get_openssl_key_details($privkey); if (is_array($k)) { return array("M" => base64_encode(strrev($k['n'])), "E" => base64_encode(strrev($k['e'])), "D" => base64_encode(strrev($k['d'])), "PRIV" => $privkey, "chunk" => $keylen / 8); } } return false; }
protected function processActionCommit() { if (!$this->checkPermission()) { $this->sendJsonResponse(array('status' => self::STATUS_DENIED)); } if (!isset($_FILES['file'])) { $this->sendJsonResponse(array('status' => self::STATUS_DENIED, 'message' => 'Upload file')); } $downloadedFile = $_FILES['file']; $webdav = $this->getWebdav(); if (empty($webdav->arParams['element_array']['ID'])) { $this->sendJsonResponse(array('status' => self::STATUS_NOT_FOUND)); } $filename = CTempFile::GetFileName(uniqid('_wd')); $nameToSavedFile = $webdav->arParams['element_name']; CheckDirPath($filename); if (($downloadedFile['error'] = intval($downloadedFile['error'])) > 0) { if ($downloadedFile['error'] < 3) { $this->sendJsonResponse(array('status' => self::STATUS_ERROR, 'message' => "Upload error: {$downloadedFile['error']}")); } else { $this->sendJsonResponse(array('status' => self::STATUS_ERROR, 'message' => "Upload error: {$downloadedFile['error']}")); } } if (!is_uploaded_file($downloadedFile['tmp_name'])) { $this->sendJsonResponse(array('status' => self::STATUS_ERROR, 'message' => "Upload error")); } if (!move_uploaded_file($downloadedFile['tmp_name'], $filename)) { $this->sendJsonResponse(array('status' => self::STATUS_ERROR, 'message' => "Bad move after upload")); } $options = array('new' => false, 'FILE_NAME' => $nameToSavedFile, 'ELEMENT_ID' => $webdav->arParams['element_array']['ID'], 'arUserGroups' => $webdav->USER['GROUPS'], 'TMP_FILE' => $filename); $this->getDb()->startTransaction(); if (!$this->getWebDav()->put_commit($options)) { $this->getDb()->rollback(); $this->sendJsonResponse(array('status' => self::STATUS_ERROR, 'message' => 'Error in commit.', 'description' => $webdav->LAST_ERROR)); } $this->getDb()->commit(); $this->sendJsonResponse(array('status' => self::STATUS_SUCCESS)); }
function __CSVExportFile($intFileID, $strExportPath, $strFilePath, $strExportFromClouds = 'Y') { if ('Y' != $strExportFromClouds) { $strExportFromClouds = 'N'; } $arFile = CFile::GetFileArray($intFileID); if ($arFile) { if ('N' == $strExportFromClouds && 0 < $arFile["HANDLER_ID"]) { return serialize($arFile); } else { $arTempFile = CFile::MakeFileArray($intFileID); if (isset($arTempFile["tmp_name"]) && $arTempFile["tmp_name"] != "") { $strFile = $arFile["SUBDIR"] . "/" . $arFile["FILE_NAME"]; $strNewFile = str_replace("//", "/", $strExportPath . $strFilePath . $strFile); CheckDirPath($_SERVER['DOCUMENT_ROOT'] . $strNewFile); if (@copy($arTempFile["tmp_name"], $_SERVER['DOCUMENT_ROOT'] . $strNewFile)) { return $strFilePath . $strFile; } } } } return ''; }
protected function getFileContent($feedData) { $result = ""; $timeToKeepFiles = 24; $tmpDir = \CTempFile::GetDirectoryName($timeToKeepFiles); CheckDirPath($tmpDir); $sftp = \Bitrix\Sale\TradingPlatform\Ebay\Helper::getSftp($this->siteId); $sftp->connect(); $remotePath = $this->createRemotePath($feedData); $files = $sftp->getFilesList($remotePath); foreach ($files as $file) { if (!strstr($file, $feedData["FILENAME"])) { continue; } if ($sftp->downloadFile($remotePath . "/" . $file, $tmpDir . $file)) { $result = file_get_contents($tmpDir . $file); Ebay::log(Logger::LOG_LEVEL_INFO, "EBAY_DATA_SOURCE_RESULTS_RECEIVED", $file, "File received successfully.", $this->siteId); } else { Ebay::log(Logger::LOG_LEVEL_ERROR, "EBAY_DATA_SOURCE_RESULTS_ERROR", $tmpDir . $file, "Can't receive file content.", $this->siteId); } } return $result; }
function InstallFiles($arParams = array()) { /*Добавляем административные скрипты*/ if (is_dir($p = $_SERVER["DOCUMENT_ROOT"] . "/local/modules/" . self::MODULE_ID . "/admin")) { if ($dir = opendir($p)) { while (false !== ($item = readdir($dir))) { if ($item == ".." || $item == "." || $item == "menu.php") { continue; } file_put_contents($file = $_SERVER["DOCUMENT_ROOT"] . "/bitrix/admin/" . self::MODULE_ID . "_" . $item, '<' . '? require($_SERVER["DOCUMENT_ROOT"]."/local/modules/' . self::MODULE_ID . '/admin/' . $item . '");?' . '>'); } closedir($dir); } } /*Добавляем файлы JS*/ if (is_dir($p = $_SERVER["DOCUMENT_ROOT"] . "/local/modules/" . self::MODULE_ID . "/install/js")) { CheckDirPath($_SERVER["DOCUMENT_ROOT"] . "/bitrix/js/" . self::MODULE_ID); CopyDirFiles($p, $_SERVER["DOCUMENT_ROOT"] . "/bitrix/js/" . self::MODULE_ID, true, true); } /*Добавляем файлы CSS*/ if (is_dir($p = $_SERVER["DOCUMENT_ROOT"] . "/local/modules/" . self::MODULE_ID . "/install/themes")) { CopyDirFiles($p, $_SERVER["DOCUMENT_ROOT"] . "/bitrix/themes", true, true); } /*Добавляем папки с компонентами модуля*/ if (is_dir($p = $_SERVER['DOCUMENT_ROOT'] . '/local/modules/' . self::MODULE_ID . '/install/components')) { if ($dir = opendir($p)) { while (false !== ($item = readdir($dir))) { if ($item == '..' || $item == '.') { continue; } CopyDirFiles($p . '/' . $item, $_SERVER['DOCUMENT_ROOT'] . '/bitrix/components/' . $item, $ReWrite = true, $Recursive = true); } closedir($dir); } } return true; }
public function __construct($sender, $logFileRelPath, $logOpenMode = self::F_APPEND, $defaultMessageType = null, $logMessageFormat = null) { if (empty($logFileRelPath)) { throw new LogFileError('', LogFileError::E_WRONG_PATH); } $logFileRelPath = str_replace(array('\\', '//'), '/', $logFileRelPath); $logFileRelPath = rtrim($logFileRelPath, '/'); $logFilePath = $_SERVER['DOCUMENT_ROOT'] . $logFileRelPath; if (!CheckDirPath($logFilePath)) { throw new LogFileError('', LogFileError::E_PERM_DENIED); } if (!is_string($sender) || empty($sender)) { throw new LogFileError('', LogFileError::E_SENDER_IS_EMPTY); } if ($defaultMessageType !== null) { $this->setDefaultMessageType($defaultMessageType); } switch ($logOpenMode) { case self::F_APPEND: case self::F_REWRITE: break; default: $logOpenMode = self::F_APPEND; } $logFile = fopen($logFilePath, $logOpenMode); if (!$logFile) { throw new LogFileError('', LogFileError::E_CANT_OPEN); } $this->_logFilePath = $logFileRelPath; $this->_logFile = $logFile; if ($logMessageFormat !== null && is_string($logMessageFormat)) { $this->_logMessageFormat = $logMessageFormat; } $this->_sender = $sender; $this->_logMessageFormat = str_replace('%sender%', $this->_sender, $this->_logMessageFormat); }
function NewMediaObject($params) { global $USER, $DB; $blogId = IntVal(CBlogMetaWeblog::DecodeParams($params[0]["#"]["value"][0]["#"])); $user = CBlogMetaWeblog::DecodeParams($params[1]["#"]["value"][0]["#"]); $password = CBlogMetaWeblog::DecodeParams($params[2]["#"]["value"][0]["#"]); $arImage = $params[3]["#"]["value"][0]["#"]["struct"][0]["#"]["member"]; foreach ($arImage as $val) { $arImageInfo[$val["#"]["name"][0]["#"]] = CBlogMetaWeblog::DecodeParams($val["#"]["value"][0]["#"]); } if (CBlogMetaWeblog::Authorize($user, $password)) { $result = ''; $userId = $USER->GetID(); if (IntVal($blogId) > 0) { $dbBlog = CBlog::GetList(array(), array("GROUP_SITE_ID" => SITE_ID, "ACTIVE" => "Y", "ID" => $blogId), false, false, array("ID", "URL", "NAME")); if ($arBlog = $dbBlog->GetNext()) { $filename = trim(str_replace("\\", "/", trim($arImageInfo["name"])), "/"); $DIR_NAME = CTempFile::GetDirectoryName(12); $FILE_NAME = rel2abs($DIR_NAME, "/" . $filename); if (strlen($FILE_NAME) > 1 && $FILE_NAME === "/" . $filename) { $ABS_FILE_NAME = $DIR_NAME . $FILE_NAME; } else { $ABS_FILE_NAME = ""; } CheckDirPath($DIR_NAME); if (strlen($ABS_FILE_NAME) > 0 && ($fp = fopen($ABS_FILE_NAME, "ab"))) { $result = fwrite($fp, $arImageInfo["bits"]); if ($result !== (function_exists("mb_strlen") ? mb_strlen($arImageInfo["bits"], 'latin1') : strlen($arImageInfo["bits"]))) { return '<fault> <value> <struct> <member> <name>faultCode</name> <value><int>3</int></value> </member> <member> <name>faultString</name> <value><string>Error on saving media object</string></value> </member> </struct> </value> </fault>'; } fclose($fp); } else { return '<fault> <value> <struct> <member> <name>faultCode</name> <value><int>3</int></value> </member> <member> <name>faultString</name> <value><string>Error on saving media object</string></value> </member> </struct> </value> </fault>'; } $arFields = array("BLOG_ID" => $arBlog["ID"], "USER_ID" => $userId, "=TIMESTAMP_X" => $DB->GetNowFunction(), "FILE_ID" => array("name" => $arImageInfo["name"], "tmp_name" => $ABS_FILE_NAME, "MODULE_ID" => "blog", "type" => $arImageInfo["type"])); $imageId = CBlogImage::Add($arFields); $arImg = CBlogImage::GetByID($imageId); $arFile = CFile::GetFileArray($arImg["FILE_ID"]); $path = $arFile["SRC"]; $dbSite = CSite::GetByID(SITE_ID); $arSite = $dbSite->Fetch(); $serverName = htmlspecialcharsEx($arSite["SERVER_NAME"]); if (strlen($serverName) <= 0) { if (defined("SITE_SERVER_NAME") && strlen(SITE_SERVER_NAME) > 0) { $serverName = SITE_SERVER_NAME; } else { $serverName = COption::GetOptionString("main", "server_name", "www.bitrixsoft.com"); } } if (strlen($path) > 0) { return '<params> <param> <value> <struct> <member> <name>url</name> <value> <string>' . CHTTP::URN2URI($path, $serverName) . '</string> </value> </member> </struct> </value> </param> </params>'; } } } return '<fault> <value> <struct> <member> <name>faultCode</name> <value><int>3</int></value> </member> <member> <name>faultString</name> <value><string>Error on saving media object</string></value> </member> </struct> </value> </fault>'; } else { return '<fault> <value> <struct> <member> <name>faultCode</name> <value><int>3</int></value> </member> <member> <name>faultString</name> <value><string>' . $arAuthResult["MESSAGE"] . '</string></value> </member> </struct> </value> </fault>'; } }
foreach ($arNewUrlRewrite as $arUrl) { if (!in_array($arUrl, $arUrlRewrite)) { CUrlRewriter::Add($arUrl); } } } function ___writeToAreasFile($fn, $text) { if (file_exists($fn) && !is_writable($abs_path) && defined("BX_FILE_PERMISSIONS")) { @chmod($abs_path, BX_FILE_PERMISSIONS); } $fd = @fopen($fn, "wb"); if (!$fd) { return false; } if (false === fwrite($fd, $text)) { fclose($fd); return false; } fclose($fd); if (defined("BX_FILE_PERMISSIONS")) { @chmod($fn, BX_FILE_PERMISSIONS); } } CheckDirPath(WIZARD_SITE_PATH . "include/"); $wizard =& $this->GetWizard(); ___writeToAreasFile(WIZARD_SITE_PATH . "include/copyright.php", $wizard->GetVar("siteCopy")); if (WIZARD_INSTALL_DEMO_DATA) { CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/.section.php", array("SITE_DESCRIPTION" => htmlspecialcharsbx($wizard->GetVar("siteMetaDescription")))); CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH . "/.section.php", array("SITE_KEYWORDS" => htmlspecialcharsbx($wizard->GetVar("siteMetaKeywords")))); }
function InstallFiles() { // Копируем JavaScript скрипты CheckDirPath($_SERVER["DOCUMENT_ROOT"]."/bitrix/js/".$this->MODULE_ID."/"); CopyDirFiles( $_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/".$this->MODULE_ID."/install/js/", $_SERVER["DOCUMENT_ROOT"]."/bitrix/js/".$this->MODULE_ID, true, true); // Копируем кортинки CheckDirPath($_SERVER["DOCUMENT_ROOT"]."/bitrix/images/".$this->MODULE_ID."/"); CopyDirFiles( $_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/".$this->MODULE_ID."/install/images/", $_SERVER["DOCUMENT_ROOT"]."/bitrix/images/".$this->MODULE_ID."/", true, true); // Модифицируем шаблоны "на лету" при инсталляции компонента, чтобы он трекал нужную нам информацию и при этом версия шаблонов была актуальной. // Также установлен обработчик, который выполняет данную операцию при обновлении модулей. global $carrotquest_UPDATER; $carrotquest_UPDATER->GetListFromRequest(); $carrotquest_UPDATER->UpdateAllTemplates(); return true; }
$arSetupErrors[] = GetMessage("CATI_NO_SAVE_FILE"); } } if (empty($arSetupErrors)) { if (strtolower(substr($SETUP_FILE_NAME, strlen($SETUP_FILE_NAME) - 4)) != ".csv") { $SETUP_FILE_NAME .= ".csv"; } if (HasScriptExtension($SETUP_FILE_NAME)) { $arSetupErrors[] = GetMessage("CES_ERROR_BAD_EXPORT_FILENAME_EXTENTIONS"); } } if (empty($arSetupErrors)) { if ($APPLICATION->GetFileAccessPermission($SETUP_FILE_NAME) < "W") { $arSetupErrors[] = str_replace("#FILE#", $SETUP_FILE_NAME, GetMessage('CATI_NO_RIGHTS_FILE')); } else { CheckDirPath($_SERVER["DOCUMENT_ROOT"] . $SETUP_FILE_NAME); if (!($fp = fopen($_SERVER["DOCUMENT_ROOT"] . $SETUP_FILE_NAME, "wb"))) { $arSetupErrors[] = GetMessage("CATI_CANNOT_CREATE_FILE"); } else { fclose($fp); unlink($_SERVER["DOCUMENT_ROOT"] . $SETUP_FILE_NAME); } } } $bFieldsPres = !empty($field_needed) && is_array($field_needed) && in_array('Y', $field_needed); if ($bFieldsPres && (empty($field_code) || !is_array($field_code))) { $bFieldsPres = false; } if (!$bFieldsPres) { $arSetupErrors[] = GetMessage("CATI_NO_FIELDS"); }
Action ********************************************************************/ $fileName = ''; if ($REQUEST_METHOD == "POST" && $forumPermissions >= "W" && (strlen($save) > 0 || strlen($apply) > 0)) { if (isset($_FILES["IMAGE"]["name"])) { $fileName = RemoveScriptExtension($_FILES["IMAGE"]["name"]); } if (!check_bitrix_sessid()) { $arError[] = array("id" => "bad_sessid", "text" => GetMessage("ERROR_BAD_SESSID")); } elseif ($ID > 0 && !CForumNew::CanUserUpdateForum($ID, $USER->GetUserGroupArray(), $USER->GetID())) { $arError[] = array("id" => "not_right_for_edit", "text" => GetMessage("FE_NO_PERMS2UPDATE")); } elseif ($ID <= 0 && !CForumNew::CanUserAddForum($USER->GetUserGroupArray(), $USER->GetID())) { $arError[] = array("id" => "not_right_for_add", "text" => GetMessage("FE_NO_PERMS2ADD")); } elseif (!empty($_FILES["IMAGE"]["tmp_name"])) { $sUploadDir = $_SERVER["DOCUMENT_ROOT"] . BX_ROOT . "/images/forum/" . ($_REQUEST["TYPE"] == "I" ? "icon" : "smile") . "/"; CheckDirPath($sUploadDir); $arSmile = $ID > 0 ? CForumSmile::GetByID($ID) : $arSmile; $res = CFile::CheckImageFile($_FILES["IMAGE"], COption::GetOptionString("forum", "file_max_size", 50000), 0, 0); if (strLen($res) > 0) { $arError[] = array("id" => "IMAGE", "text" => $res); } elseif (file_exists($sUploadDir . $fileName) && !(isset($arSmile["IMAGE"]) && $arSmile["IMAGE"] != $fileName)) { $arError[] = array("id" => "IMAGE", "text" => GetMessage("ERROR_EXISTS_IMAGE", array("#FILE#" => str_replace("//", "/", "/" . BX_ROOT . "/images/forum/" . ($_REQUEST["TYPE"] == "I" ? "icon" : "smile") . "/" . $fileName)))); } elseif (!@copy($_FILES["IMAGE"]["tmp_name"], $sUploadDir . $fileName)) { $arError[] = array("id" => "IMAGE", "text" => GetMessage("ERROR_COPY_IMAGE")); } else { @chmod($sUploadDir . $fileName, BX_FILE_PERMISSIONS); } } if (empty($arError)) { $GLOBALS["APPLICATION"]->ResetException(); $arFields = array("SORT" => $_REQUEST["SORT"], "TYPE" => $_REQUEST["TYPE"], "TYPING" => trim($_REQUEST["TYPING"]), "DESCRIPTION" => $_REQUEST["DESCRIPTION"], "LANG" => array());
<?php require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_before.php"; $saleModulePermissions = $APPLICATION->GetGroupRight("sale"); if ($saleModulePermissions < "W") { $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); } IncludeModuleLangFile(__FILE__); require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/sale/include.php"; $ID = IntVal($ID); ClearVars(); ClearVars("f_"); $path2SystemPSFiles = "/bitrix/modules/sale/payment/"; $path2UserPSFiles = COption::GetOptionString("sale", "path2user_ps_files", BX_PERSONAL_ROOT . "/php_interface/include/sale_payment/"); CheckDirPath($_SERVER["DOCUMENT_ROOT"] . $path2UserPSFiles); $bFilemanModuleInst = False; if (IsModuleInstalled("fileman")) { $bFilemanModuleInst = True; } $errorMessage = ""; $bInitVars = false; if ($_SERVER["REQUEST_METHOD"] == "POST" && (strlen($save) > 0 || strlen($apply) > 0) && $saleModulePermissions == "W" && check_bitrix_sessid()) { $NAME = Trim($NAME); if (strlen($NAME) <= 0) { $errorMessage .= GetMessage("ERROR_NO_NAME") . "<br>"; } $ACTIVE = $ACTIVE == "Y" ? "Y" : "N"; $SORT = IntVal($SORT) > 0 ? IntVal($SORT) : 100; if (strlen($errorMessage) <= 0) { $arFields = array("NAME" => $NAME, "ACTIVE" => $ACTIVE, "SORT" => $SORT, "DESCRIPTION" => $DESCRIPTION); if (strlen($LID) > 0) {
function ShowPanel() { global $USER, $APPLICATION; if (defined("ADMIN_SECTION") && ADMIN_SECTION == true) { return; } if ($USER->IsAdmin()) { if ($_REQUEST['add_new_site_sol'] == 'sol' && check_bitrix_sessid()) { $dbrSites = CSite::GetList($by, $ord); $arSitesID = array(); $arSitesPath = array(); $siteCnt = 0; while ($arSite = $dbrSites->Fetch()) { if ($arSite["ACTIVE"] == "Y") { $siteCnt++; } $arSitesID[] = strtolower($arSite["ID"]); $arSitesPath[] = strtolower($arSite["PATH"]); } $newSiteID = ""; while (true) { $newSiteID = chr(rand(ord("a"), ord("z"))) . chr(rand(ord("a"), ord("z"))); if (!in_array($newSiteID, $arSitesID) && !in_array("/site" . $newSiteID . "/", $arSitesPath) && !file_exists($_SERVER['DOCUMENT_ROOT'] . "/site" . $newSiteID)) { break; } } $culture = CultureTable::getRow(array('filter' => array("=FORMAT_DATE" => FORMAT_DATE, "=FORMAT_DATETIME" => FORMAT_DATETIME, "=FORMAT_NAME" => CSite::GetDefaultNameFormat(), "=CHARSET" => SITE_CHARSET))); if ($culture) { $cultureId = $culture["ID"]; } else { $addResult = CultureTable::add(array("NAME" => $newSiteID, "CODE" => $newSiteID, "FORMAT_DATE" => FORMAT_DATE, "FORMAT_DATETIME" => FORMAT_DATETIME, "FORMAT_NAME" => CSite::GetDefaultNameFormat(), "CHARSET" => SITE_CHARSET)); $cultureId = $addResult->getId(); } $arFields = array("LID" => $newSiteID, "ACTIVE" => "Y", "SORT" => 100, "DEF" => "N", "NAME" => $newSiteID, "DIR" => "/site_" . $newSiteID . "/", "SITE_NAME" => $newSiteID, "SERVER_NAME" => $_SERVER["SERVER_NAME"], "EMAIL" => COption::GetOptionString("main", "email_from"), "LANGUAGE_ID" => LANGUAGE_ID, "DOC_ROOT" => "", "CULTURE_ID" => $cultureId); $obSite = new CSite(); $result = $obSite->Add($arFields); if ($result) { CheckDirPath($_SERVER["DOCUMENT_ROOT"] . "/site_" . $newSiteID . "/"); $indexContent = '<' . '?' . 'define("B_PROLOG_INCLUDED", true);' . 'define("WIZARD_DEFAULT_SITE_ID", "' . $newSiteID . '");' . 'define("WIZARD_DEFAULT_TONLY", true);' . 'define("PRE_LANGUAGE_ID","' . LANGUAGE_ID . '");' . 'define("PRE_INSTALL_CHARSET","' . SITE_CHARSET . '");' . 'include_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/install/wizard/wizard.php");' . '?' . '>'; $handler = fopen($_SERVER["DOCUMENT_ROOT"] . "/site_" . $newSiteID . "/index.php", "wb"); fwrite($handler, $indexContent); fclose($handler); LocalRedirect("/site_" . $newSiteID . "/"); } else { echo $obSite->LAST_ERROR; } } if ($_REQUEST['delete_button_sol'] == 'sol' && check_bitrix_sessid()) { UnRegisterModuleDependences('main', 'OnBeforeProlog', 'main', 'CWizardSolPanel', 'ShowPanel', '/modules/main/install/wizard_sol/panel_button.php'); LocalRedirect($APPLICATION->GetCurPage()); } $arMenu = array(array("ACTION" => "jsUtils.Redirect([], '" . CUtil::JSEscape(SITE_DIR) . "?add_new_site_sol=sol&" . bitrix_sessid_get() . "')", "TEXT" => "<b>" . GetMessage("SOL_BUTTON_TEST_TEXT", array("#BR#" => " ")) . "</b>", "TITLE" => GetMessage("SOL_BUTTON_TEST_TITLE"))); $arMenu[] = array("ACTION" => "if(confirm('" . AddSlashes(GetMessage("SOL_BUTTON_CONFIRM_W2")) . "')) jsUtils.Redirect([], '" . CUtil::JSEscape(SITE_DIR) . "?delete_button_sol=sol&" . bitrix_sessid_get() . "');", "TEXT" => GetMessage("SOL_BUTTON_DEL_TEXT"), "TITLE" => GetMessage("SOL_BUTTON_DEL_TITLE")); $protocol = CMain::IsHTTPS() ? 'https://' : 'http://'; $arSites = array(); $dbrSites = CSite::GetList($by, $ord, array("ACTIVE" => "Y")); while ($arSite = $dbrSites->GetNext()) { $url = $arSite["DIR"]; if ($arSite["DOMAIN_LIMITED"] == "Y" && $arSite["LID"] != SITE_ID) { $site = trim(preg_replace("#^(http://|https://)#i", "", $arSite["SERVER_NAME"]), " \t\n\r\v/"); if ($site != '') { $url = $protocol . $site . '/' . ltrim($url, '/'); } } $arSites[] = array("ACTION" => "jsUtils.Redirect([], '" . CUtil::JSEscape($url) . "');", "ICON" => $arSite["LID"] == SITE_ID ? "checked" : "", "TEXT" => $arSite["NAME"], "TITLE" => GetMessage("SOL_BUTTON_GOTOSITE") . " " . $arSite["NAME"]); } $arMenu[] = array("SEPARATOR" => true); $arMenu[] = array("TEXT" => GetMessage("SOL_BUTTON_GOTOSITE"), "MENU" => $arSites); $APPLICATION->AddPanelButton(array("HREF" => SITE_DIR . "?add_new_site_sol=sol&" . bitrix_sessid_get(), "ID" => "solutions_wizard", "ICON" => "bx-panel-install-solution-icon", "TYPE" => "BIG", "ALT" => GetMessage("SOL_BUTTON_TEST_TITLE"), "TEXT" => GetMessage("SOL_BUTTON_TEST_TEXT"), "MAIN_SORT" => 2520, "SORT" => 20, "MENU" => $arMenu, 'HINT' => array('TITLE' => str_replace('#BR#', ' ', GetMessage("SOL_BUTTON_TEST_TEXT")), 'TEXT' => GetMessage('SOL_BUTTON_TEST_TEXT_HINT')), 'HINT_MENU' => array('TITLE' => str_replace('#BR#', ' ', GetMessage("SOL_BUTTON_TEST_TEXT")), 'TEXT' => GetMessage('SOL_BUTTON_TEST_MENU_HINT')))); } }
* @global CUser $USER * @global CMain $APPLICATION */ require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_before.php"; require_once $_SERVER["DOCUMENT_ROOT"] . BX_ROOT . "/modules/main/prolog.php"; if (!$USER->CanDoOperation('edit_other_settings') && !$USER->CanDoOperation('view_other_settings') || !check_bitrix_sessid()) { $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); } $ID = str_replace("\\", "", $_REQUEST["ID"]); $ID = str_replace("/", "", $ID); $bUseCompression = True; if (!extension_loaded('zlib') || !function_exists("gzcompress")) { $bUseCompression = False; } require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/classes/general/tar_gz.php"; CheckDirPath($_SERVER['DOCUMENT_ROOT'] . BX_PERSONAL_ROOT . "/tmp/templates/"); $tmpfname = $_SERVER['DOCUMENT_ROOT'] . BX_PERSONAL_ROOT . "/tmp/templates/" . md5(uniqid(rand(), true) . ".tar.gz"); $HTTP_ACCEPT_ENCODING = ""; $strError = ""; $path = getLocalPath("templates/" . $ID, BX_PERSONAL_ROOT); if (is_dir($_SERVER["DOCUMENT_ROOT"] . $path)) { $oArchiver = new CArchiver($tmpfname, $bUseCompression); $tres = $oArchiver->add("\"" . $_SERVER["DOCUMENT_ROOT"] . $path . "\"", false, $_SERVER["DOCUMENT_ROOT"] . $path); if (!$tres) { $strError = "Archiver error"; $arErrors =& $oArchiver->GetErrors(); if (count($arErrors) > 0) { $strError .= ":<br>"; foreach ($arErrors as $value) { $strError .= "[" . $value[0] . "] " . $value[1] . "<br>"; }