function UnpackFileArchive($strfile, $path_to)
 {
     global $APPLICATION;
     $res = true;
     $arcname = CTempFile::GetFileName(md5(uniqid(rand(), true)) . '.tar.gz');
     CheckDirPath($arcname);
     if (file_put_contents($arcname, $strfile) !== false) {
         include_once dirname(__FILE__) . '/tar_gz.php';
         $ob = new CArchiver($arcname);
         CheckDirPath($_SERVER['DOCUMENT_ROOT'] . $path_to);
         $res = $ob->extractFiles($_SERVER['DOCUMENT_ROOT'] . $path_to);
         if (!$res && is_object($APPLICATION)) {
             $arErrors = $ob->GetErrors();
             if (count($arErrors)) {
                 $strError = "";
                 foreach ($arErrors as $error) {
                     $strError .= $error[1] . "<br>";
                 }
                 $e = new CApplicationException($strError);
                 $APPLICATION->ThrowException($e);
             }
         }
     }
     return $res;
 }
Example #2
0
        }
    }
    COption::SetOptionString('fileman', 'default_edit_groups', $sGroups);
    $archive_step_time = intVal($_POST['archive_step_time']);
    if ($archive_step_time <= 0) {
        $archive_step_time = 30;
    }
    COption::SetOptionString($module_id, "archive_step_time", $archive_step_time);
}
if ($REQUEST_METHOD == "GET" && isset($_GET['load_dic']) && $USER->CanDoOperation('fileman_edit_all_settings') && COption::GetOptionString($module_id, "use_editor_3", "N") == "Y") {
    if (isValidLang($_GET['load_dic'])) {
        $l_id = $_GET['load_dic'];
        require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/classes/general/tar_gz.php";
        $indexedDicPath = $_SERVER['DOCUMENT_ROOT'] . $gzDicsRelPath . '/' . $l_id . '.tar.gz';
        $oArchiver = new CArchiver($indexedDicPath);
        if ($oArchiver->extractFiles($_SERVER['DOCUMENT_ROOT'] . $dicsRelPath . '/' . $l_id)) {
            COption::SetOptionString($module_id, $l_id . "_dic_indexed", "Y");
        }
    }
}
$aTabs = array(array("DIV" => "edit1", "TAB" => GetMessage("MAIN_TAB_SET"), "ICON" => "fileman_settings", "TITLE" => GetMessage("MAIN_TAB_TITLE_SET")), array("DIV" => "edit2", "TAB" => GetMessage("MAIN_TAB_VISUAL_EDITOR"), "ICON" => "fileman_settings", "TITLE" => GetMessage("MAIN_TAB_TITLE_VIS_ED_SET")), array("DIV" => "edit5", "TAB" => GetMessage("MAIN_TAB_MEDIALIB"), "ICON" => "fileman_settings", "TITLE" => GetMessage("FILEMAN_SEC_MEDIALIB")));
if ($USER->isAdmin()) {
    $rightsTab = array("DIV" => "edit3", "TAB" => GetMessage("MAIN_TAB_RIGHTS"), "ICON" => "fileman_settings", "TITLE" => GetMessage("MAIN_TAB_TITLE_RIGHTS"));
    $aTabs[] = $rightsTab;
}
$siteList = array();
$rsSites = CSite::GetList($by = "sort", $order = "asc", array());
$i = 0;
while ($arRes = $rsSites->Fetch()) {
    $siteList[$i]["ID"] = $arRes["ID"];
    $siteList[$i]["NAME"] = $arRes["NAME"];
 $bConvert = isset($_REQUEST['convert_encoding']) && $_REQUEST['convert_encoding'] == 'Y';
 if ($butf && $bConvert && (!isset($encoding) || !in_array($encoding, $arrTransEncoding))) {
     $strErrorMessage .= GetMessage('TR_ERROR_ENCODING') . '<br>';
 }
 $tempLanguagePathNoRoot = '/bitrix/tmp/translate/' . time() . '/';
 $tempLanguagePath = $_SERVER["DOCUMENT_ROOT"] . $tempLanguagePathNoRoot;
 if (strlen($strErrorMessage) <= 0) {
     CheckDirPath($tempLanguagePath);
     if (!file_exists($tempLanguagePath) || !is_dir($tempLanguagePath)) {
         $strErrorMessage .= GetMessage('TR_ERROR_CREATE_TEMP_FOLDER', array('%PATH%' => $tempLanguagePath)) . '<br>';
     }
 }
 if (strlen($strErrorMessage) <= 0) {
     $oArc = new CArchiver($_FILES['tarfile']['tmp_name'], true);
     $oArc->_strSeparator = '|';
     $oArc->extractFiles($tempLanguagePath);
     if (count($oArc->_arErrors) > 0) {
         $strErrorMessage .= ": ";
         foreach ($oArc->_arErrors as $e) {
             $strErrorMessage .= $e[1] . ", ";
         }
     }
 }
 if (strlen($strErrorMessage) <= 0) {
     $bConvert = isset($_REQUEST['localize_encoding']) && $_REQUEST['localize_encoding'] == 'Y';
     if ($bConvert) {
         if ($butf) {
             $strEncodingIn = $encoding;
             $strEncodingOut = 'utf-8';
         } else {
             $strEncodingIn = 'utf-8';
Example #4
0
        $txt = nl2br($strLog);
    } elseif ($res == 2) {
        $txt = $status;
        $script = "<script>GoToPage(\"" . $this_script_name . "?action=LOAD&edition=" . urlencode($_REQUEST['edition']) . "&url=" . urlencode($url) . "&lang=" . urlencode(LANG) . "&LICENSE_KEY=" . urlencode($_REQUEST["LICENSE_KEY"]) . "&action_next=" . urlencode($_REQUEST["action_next"]) . "&xz=" . rand(0, 32000) . "\");</script>\n";
    } else {
        $txt = $status;
        $script = "<script>GoToPage(\"" . $this_script_name . "?action=UNPACK&by_step=Y&filename=" . urlencode(basename($strRequestedUrl)) . "&lang=" . urlencode(LANG) . "&xz=" . rand(0, 32000) . "\");</script>\n";
    }
    $ar = array('FORM' => $form, 'TITLE' => LoaderGetMessage("LOADER_MENU_LOAD"), 'HEAD' => LoaderGetMessage("LOADER_MENU_LOAD"), 'TEXT' => $txt, 'BOTTOM' => '<input type="button" value="&nbsp;&nbsp;&nbsp;' . LoaderGetMessage("LOADER_BACK") . '&nbsp;&nbsp;&nbsp;" onclick="document.location=\'' . $this_script_name . '?action=LIST&lang=' . LANG . '\'">');
    /*********************************************************************/
} elseif ($strAction == "UNPACK") {
    /*********************************************************************/
    //	$iNumDistrFiles = 8000;
    SetCurrentStatus(LoaderGetMessage("LOADER_UNPACK_ACTION"));
    $oArchiver = new CArchiver($_SERVER["DOCUMENT_ROOT"] . "/" . $_REQUEST["filename"], true);
    $tres = $oArchiver->extractFiles($_SERVER["DOCUMENT_ROOT"]);
    SetCurrentProgress($oArchiver->iCurPos, $oArchiver->iArchSize, False);
    $txt = $status;
    if ($tres) {
        if (!$oArchiver->bFinish) {
            $script = "<script>GoToPage(\"" . $this_script_name . "?action=UNPACK&filename=" . urlencode(basename($oArchiver->_strArchiveName)) . "&by_step=Y&seek=" . $oArchiver->iCurPos . "\");</script>\n";
        } else {
            $res = unlink($_SERVER["DOCUMENT_ROOT"] . "/" . $_REQUEST["filename"]) && unlink(__FILE__);
            @unlink($_SERVER["DOCUMENT_ROOT"] . "/" . $_REQUEST["filename"] . '.log');
            @unlink($_SERVER["DOCUMENT_ROOT"] . "/" . $_REQUEST["filename"] . '.tmp');
            @unlink($_SERVER['DOCUMENT_ROOT'] . '/restore.php');
            $strInstFile = "index.php";
            if (!$res) {
                SetCurrentStatus(LoaderGetMessage("LOADER_UNPACK_DELETE"));
            } elseif (!file_exists($_SERVER["DOCUMENT_ROOT"] . "/" . $strInstFile)) {
                SetCurrentStatus(LoaderGetMessage("LOADER_UNPACK_UNKNOWN"));
Example #5
0
	{
		$strError .= GetMessage("MAIN_WIZARD_LOAD_ERROR_LOAD");
		break;
	}
	elseif(GetFileExtension(strtolower($_FILES["wizardFile"]["name"])) != "gz")
	{
		$strError .= GetMessage("MAIN_WIZARD_TAR_GZ");
		break;
	}

	$wizardPath = $_SERVER["DOCUMENT_ROOT"].CWizardUtil::GetRepositoryPath();

	require_once($_SERVER["DOCUMENT_ROOT"]."/freetrix/modules/main/classes/general/tar_gz.php");
	$oArchiver = new CArchiver($_FILES["wizardFile"]["tmp_name"]);

	if (!$oArchiver->extractFiles($wizardPath))
	{
		$strError .= GetMessage("MAIN_WIZARD_IMPORT_ERROR");
		$arErrors = &$oArchiver->GetErrors();
		if(count($arErrors)>0)
		{
			$strError .= ":<br>";
			foreach ($arErrors as $value)
				$strError .= "[".$value[0]."] ".$value[1]."<br>";
		}
		else
			$strError .= ".<br>";

		break;
	}
	
Example #6
0
	{
		if(strlen($tpath)>0 && file_exists($tpath) && is_file($tpath))
			$DATA_FILE_NAME = $tpath;
	}

	if(strlen($DATA_FILE_NAME)<=0)
		$strError .= GetMessage("MAIN_T_EDIT_IMP_FILE_NA")."<br>";

	if(strlen($ID)<=0)
		$strError .= GetMessage("MAIN_T_EDIT_IMP_ID_NA")."<br>";

	if(strlen($strError)<=0)
	{
		require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/tar_gz.php");
		$oArchiver = new CArchiver($DATA_FILE_NAME);
		$tres = $oArchiver->extractFiles($_SERVER["DOCUMENT_ROOT"].BX_PERSONAL_ROOT."/templates/".$ID);
		if($tres)
			$strOK .= str_replace("#FILE#", $tpath, GetMessage("MAIN_T_EDIT_IMP_OK"))."<br>";
		else
		{
			$strError .= GetMessage("MAIN_T_EDIT_IMP_ERR");
			$arErrors = &$oArchiver->GetErrors();
			if(count($arErrors)>0)
			{
				$strError .= ":<br>";
				foreach ($arErrors as $value)
					$strError .= "[".$value[0]."] ".$value[1]."<br>";
			}
			else
				$strError .= ".<br>";
		}
Example #7
0
 public function extractGem($sGemName)
 {
     require_once $_SERVER["DOCUMENT_ROOT"] . BX_ROOT . "/modules/main/classes/general/tar_gz.php";
     $sArchiveName = $this->getGemArchieveNameForDownload($sGemName);
     if (!is_readable($sArchiveName)) {
         throw new Exception('Gem archieve for ' . $sGemName . ' not found in ' . $sArchiveName);
     }
     $sToFolder = dirname(__FILE__) . '/../../gems/';
     $oArchiver = new CArchiver($sArchiveName);
     $bResult = $oArchiver->extractFiles($sToFolder);
     $arErrors =& $oArchiver->GetErrors();
     $aErrors = array();
     if (count($arErrors) > 0) {
         foreach ($arErrors as $value) {
             $aErrors[] = "[" . $value[0] . "] " . $value[1];
         }
     }
     if (!empty($aErrors)) {
         throw new Exception('Errors during extracting Gem "' . $sGemName . '"! ' . implode(PHP_EOL, $aErrors));
     }
     $this->convertGemCharset(dirname(__FILE__) . '/../../gems/' . $sGemName . '/', $bToSite = true);
     return $sToFolder . $sGemName . '/';
 }
Example #8
0
			<td colspan="6" class="tableborder1" height="1"></td>
		</tr>
		</table>
	<?
}
elseif($Step == 2)
{
	$arc_name = htmlspecialchars(@$_REQUEST["arc_name"]);
	$max_exec_time = intVal(@$_REQUEST["time"]);
	$pos = intVal(@$_REQUEST["pos"]);
	if ($pos < 0)
		$pos = 0;
	
	$oArc = new CArchiver($_SERVER["DOCUMENT_ROOT"]."/".$arc_name, true, START_EXEC_TIME, $max_exec_time, $pos);

	if(!$oArc->extractFiles($_SERVER["DOCUMENT_ROOT"]."/") && $oArc->end_time)
	{
		$pos = $oArc->getFilePos();
		?>
		
		<input type="hidden" name="time" id="time_id" value="<?php 
echo $max_exec_time;
?>
">
		<input type="hidden" name="pos" id="pos_id" value="<?php 
echo $pos;
?>
">
		<input type="hidden" name="arc_name" id="arc_name_id" value="<?php 
echo $arc_name;
?>