Exemplo n.º 1
0
 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;
 }
Exemplo n.º 2
0
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;
}
Exemplo n.º 3
0
 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);
 }
Exemplo n.º 4
0
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);
            }
        }
    }
}
Exemplo n.º 5
0
 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;
     }
 }
Exemplo n.º 6
0
 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;
 }
Exemplo n.º 7
0
 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);
                 }
             }
         }
     }
 }
Exemplo n.º 8
0
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;
    }
}
Exemplo n.º 9
0
 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;
 }
Exemplo n.º 10
0
 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);
 }
Exemplo n.º 11
0
 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');
 }
Exemplo n.º 12
0
 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;
 }
Exemplo n.º 13
0
 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);
 }
Exemplo n.º 14
0
 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;
 }
Exemplo n.º 15
0
 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);
    }
}
Exemplo n.º 17
0
 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;
 }
Exemplo n.º 18
0
 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));
 }
Exemplo n.º 19
0
 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 '';
 }
Exemplo n.º 20
0
 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;
 }
Exemplo n.º 21
0
 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;
 }
Exemplo n.º 22
0
 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);
 }
Exemplo n.º 23
0
    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>';
        }
    }
Exemplo n.º 24
0
    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"))));
}
Exemplo n.º 25
0
	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;
	}
Exemplo n.º 26
0
         $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");
 }
Exemplo n.º 27
0
				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());
Exemplo n.º 28
0
<?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) {
Exemplo n.º 29
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'))));
     }
 }
Exemplo n.º 30
0
 * @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>";
            }