$CHARSET = defined("BX_UTF") ? "UTF-8" : "windows-1251"; $SERVER_NAME = $_SERVER["SERVER_NAME"]; } $culture = CultureTable::getRow(array('filter' => array("=FORMAT_DATE" => $FORMAT_DATE, "=FORMAT_DATETIME" => $FORMAT_DATETIME, "=FORMAT_NAME" => $FORMAT_NAME, "=CHARSET" => $CHARSET))); if ($culture) { $cultureId = $culture["ID"]; } else { $addResult = CultureTable::add(array("NAME" => WIZARD_SITE_ID, "CODE" => WIZARD_SITE_ID, "FORMAT_DATE" => $FORMAT_DATE, "FORMAT_DATETIME" => $FORMAT_DATETIME, "FORMAT_NAME" => $FORMAT_NAME, "CHARSET" => $CHARSET)); $cultureId = $addResult->getId(); } $arFields = array("LID" => WIZARD_SITE_ID, "ACTIVE" => "Y", "SORT" => 100, "DEF" => "N", "NAME" => WIZARD_SITE_NAME, "DIR" => WIZARD_SITE_DIR, "SITE_NAME" => WIZARD_SITE_NAME, "SERVER_NAME" => $SERVER_NAME, "EMAIL" => $EMAIL, "LANGUAGE_ID" => $LANGUAGE_ID, "DOC_ROOT" => $DOC_ROOT, "CULTURE_ID" => $cultureId); $obSite = new CSite(); $result = $obSite->Add($arFields); if ($result) { COption::SetOptionString("main", "wizard_site_id", WIZARD_SITE_ID); COption::SetOptionString("extranet", "extranet_site", WIZARD_SITE_ID); } CExtranetWizardServices::ReplaceMacrosRecursive(WIZARD_SITE_PATH . "/", array("SITE_DIR" => WIZARD_SITE_DIR)); CExtranetWizardServices::ReplaceMacrosRecursive(WIZARD_TEMPLATE_ABSOLUTE_PATH . "/", array("SITE_DIR" => WIZARD_SITE_DIR)); CUrlRewriter::Add(array("SITE_ID" => WIZARD_SITE_ID, "CONDITION" => "#^" . WIZARD_SITE_DIR . "workgroups/#", "ID" => "bitrix:socialnetwork_group", "PATH" => WIZARD_SITE_DIR . "workgroups/index.php")); CUrlRewriter::Add(array("SITE_ID" => WIZARD_SITE_ID, "CONDITION" => "#^" . WIZARD_SITE_DIR . "workgroups/create/#", "ID" => "bitrix:extranet.group_create", "PATH" => WIZARD_SITE_DIR . "workgroups/create/index.php")); CUrlRewriter::Add(array("SITE_ID" => WIZARD_SITE_ID, "CONDITION" => "#^" . WIZARD_SITE_DIR . "contacts/personal/#", "ID" => "bitrix:socialnetwork_user", "PATH" => WIZARD_SITE_DIR . "contacts/personal.php")); } else { COption::SetOptionString("main", "wizard_site_id", WIZARD_SITE_ID); $siteName = COption::GetOptionString("main", "site_name", "", WIZARD_SITE_ID, true); if (strlen($siteName) > 0) { $arFields = array("NAME" => $siteName); $obSite = new CSite(); $obSite->Update(WIZARD_SITE_ID, $arFields); } }
function ReplaceMacrosRecursive($filePath, $arReplace) { clearstatcache(); if (!is_dir($filePath) && !is_file($filePath) || !is_array($arReplace)) { return; } if ($handle = @opendir($filePath)) { while (($file = readdir($handle)) !== false) { if ($file == "." || $file == "..") { continue; } if (is_dir($filePath . "/" . $file)) { CExtranetWizardServices::ReplaceMacrosRecursive($filePath . $file . "/", $arReplace); } elseif (is_file($filePath . "/" . $file)) { if (!is_writable($filePath . "/" . $file) || !is_array($arReplace)) { return; } @chmod($filePath . "/" . $file, BX_FILE_PERMISSIONS); if (!($handleFile = @fopen($filePath . "/" . $file, "rb"))) { return; } $content = @fread($handleFile, filesize($filePath . "/" . $file)); @fclose($handleFile); $handleFile = false; if (!($handleFile = @fopen($filePath . "/" . $file, "wb"))) { return; } if (flock($handleFile, LOCK_EX)) { $arSearch = array(); $arValue = array(); foreach ($arReplace as $search => $replace) { if ($skipSharp) { $arSearch[] = $search; } else { $arSearch[] = "#" . $search . "#"; } $arValue[] = $replace; } $content = str_replace($arSearch, $arValue, $content); @fwrite($handleFile, $content); @flock($handleFile, LOCK_UN); } @fclose($handleFile); } } @closedir($handle); } }