Exemple #1
0
 private function _processFiles($arFileList, $addPath, $removePath)
 {
     $addPath = str_replace("\\", "/", $addPath);
     $removePath = str_replace("\\", "/", $removePath);
     if (!$this->zipfile) {
         $this->arErrors[] = array("ERR_DFILE", GetMessage("MAIN_ZIP_ERR_DFILE"));
         return false;
     }
     if (!is_array($arFileList) || count($arFileList) <= 0) {
         return true;
     }
     $j = -1;
     if (!isset($this->tempres)) {
         $this->tempres = "started";
     }
     //files and directory scan
     while ($j++ < count($arFileList) && $this->tempres === "started") {
         $filename = $arFileList[$j];
         if (strlen($filename) <= 0) {
             continue;
         }
         if (!file_exists($filename)) {
             $this->arErrors[] = array("ERR_NO_FILE", str_replace("#FILE_NAME#", $filename, GetMessage("MAIN_ZIP_ERR_NO_FILE")));
             continue;
         }
         //is file
         if (!@is_dir($filename)) {
             $filename = str_replace("//", "/", $filename);
             //jumping to startFile, if it's specified
             if (strlen($this->startFile) != 0) {
                 if ($filename != $this->startFile) {
                     //don't pack - jump to the next file
                     continue;
                 } else {
                     //if startFile is found, continue to pack files and folders without startFile, starting from next
                     unset($this->startFile);
                     continue;
                 }
             }
             //check product permissions
             if ($this->checkBXPermissions) {
                 if (!CBXArchive::HasAccess($filename, true)) {
                     continue;
                 }
             }
             if ($this->_haveTime()) {
                 if (!$this->_addFile($filename, $arFileHeaders, $this->add_path, $this->remove_path, array(), $arP)) {
                     //$arErrors is filled in the _addFile method
                     $this->tempres = false;
                 } else {
                     //remember last file
                     $this->arPackedFiles[] = $filename;
                     $this->arHeaders[] = $arFileHeaders;
                 }
             } else {
                 $this->tempres = 'continue';
                 return $this->tempres;
             }
         } else {
             if (!($handle = opendir($filename))) {
                 $this->arErrors[] = array("ERR_DIR_OPEN_FAIL", str_replace("#DIR_NAME#", $filename, GetMessage("MAIN_ZIP_ERR_DIR_OPEN_FAIL")));
                 continue;
             }
             if ($this->checkBXPermissions) {
                 if (!CBXArchive::HasAccess($filename, false)) {
                     continue;
                 }
             }
             while (false !== ($dir = readdir($handle))) {
                 if ($dir != "." && $dir != "..") {
                     $arFileList_tmp = array();
                     if ($filename != ".") {
                         $arFileList_tmp[] = $filename . '/' . $dir;
                     } else {
                         $arFileList_tmp[] = $dir;
                     }
                     $this->_processFiles($arFileList_tmp, $addPath, $removePath);
                 }
             }
             unset($arFileList_tmp);
             unset($dir);
             unset($handle);
         }
     }
     return $this->tempres;
 }
Exemple #2
0
/*
##############################################
# Bitrix: SiteManager                        #
# Copyright (c) 2002-2005 Bitrix             #
# http://www.bitrixsoft.com                  #
# mailto:admin@bitrixsoft.com                #
##############################################
*/
global $DOCUMENT_ROOT, $MESS;
IncludeModuleLangFile(__FILE__);
define("DEBUG_FILE_MAN", false);
if (!defined("CACHED_stickers_count")) {
    define("CACHED_stickers_count", 36000000);
}
$GLOBALS['arFilemanPredifinedFileTypesR'] = array();
$GLOBALS['arFilemanPredifinedFileTypes'] = array("css" => array("exts" => array("css"), "gtype" => "text", "name" => GetMessage("MAIN_BFSD_FTYPE_CSS")), "htaccess" => array("exts" => array("htaccess"), "gtype" => "text", "name" => GetMessage("MAIN_BFSD_FTYPE_SYS")), "html" => array("exts" => array("html", "htm", "shtml", "shtm"), "gtype" => "text", "name" => GetMessage("MAIN_BFSD_FTYPE_HTML")), "png" => array("exts" => array("png"), "gtype" => "image", "name" => GetMessage("MAIN_BFSD_FTYPE_PNG")), "gif" => array("exts" => array("gif"), "gtype" => "image", "name" => GetMessage("MAIN_BFSD_FTYPE_GIF")), "jpeg" => array("exts" => array("jpeg", "jpg", "jpe"), "gtype" => "image", "name" => GetMessage("MAIN_BFSD_FTYPE_JPG")), "js" => array("exts" => array("js"), "gtype" => "text", "name" => "JavaScript"), "php" => array("exts" => array("php", "php3", "php4", "php5", "php6", "phtml"), "gtype" => "text", "name" => GetMessage("MAIN_BFSD_FTYPE_PHP")), "txt" => array("exts" => array("txt", "sql"), "gtype" => "text", "name" => GetMessage("MAIN_BFSD_FTYPE_TXT")), "xml" => array("exts" => array("xml", "xsl"), "gtype" => "text", "name" => GetMessage("MAIN_BFSD_FTYPE_XML")), "csv" => array("exts" => array("csv"), "gtype" => "text", "name" => GetMessage("MAIN_BFSD_FTYPE_CSV")), "flash" => array("exts" => array("fla", "swf"), "gtype" => "file", "name" => GetMessage("MAIN_BFSD_FTYPE_SWF")), "archive" => array("exts" => CBXArchive::GetArchiveExtensions(), "gtype" => "file", "name" => GetMessage("MAIN_BFSD_FTYPE_ARC")), "file" => array("exts" => array(), "gtype" => "file", "name" => GetMessage("MAIN_BFSD_FTYPE_NA")));
// AddEventHandler("fileman", "OnBeforeHTMLEditorScriptsGet", "bitrix_tabs");
// function bitrix_tabs($editorName, $arEditorParams){return array("JS" => array('bitrix_tabs.js'));}
class CFileMan
{
    var $arFILE_TYPES;
    function OnPanelCreate()
    {
        global $APPLICATION, $REQUEST_URI;
        if ($APPLICATION->GetGroupRight("fileman") <= "D") {
            return;
        }
        $cur_page = $APPLICATION->GetCurPage(true);
        $cur_dir = $APPLICATION->GetCurDir();
        //access to curent page
        $page_permission = $APPLICATION->GetFileAccessPermission($cur_page);
    public static function Request($action, $site)
    {
        global $USER;
        if (!$USER->CanDoOperation('fileman_view_file_structure')) {
            return;
        }
        $io = CBXVirtualIo::GetInstance();
        CUtil::JSPostUnescape();
        switch ($action) {
            case "count":
            case "search":
            case "replace":
                $oSearch = new CFilemanSearch();
                $oSearch->Init(array('lastPath' => isset($_POST['last_path']) ? $_POST['last_path'] : false, 'bCount' => $action == "count", 'bReplace' => $action == "replace", "fileName" => trim($_POST['file']), "phrase" => trim($_POST['phrase']), "replacePhrase" => trim($_POST['replace_phrase']), "dir" => CFilemanUtils::NormalizePath($_POST['dir']), "bSubdir" => $_POST['subdir'], "dateFrom" => $_POST['date_from'], "dateTo" => $_POST['date_to'], "sizeFrom" => intVal($_POST['size_from']), "sizeTo" => intVal($_POST['size_to']), "entire" => $_POST['entire'], "bCaseSens" => $_POST['case_sens'], "bDirsToo" => $_POST['dirs_too'], "ssess" => $_POST['ssess'], "bInResult" => $_POST['in_result'], "site" => CFileMan::__CheckSite($_GET['fu_site'])));
                CFileMan::SaveLastPath(CFilemanUtils::NormalizePath($_POST['dir']));
                break;
            case "clean_old":
                CFilemanSearch::CleanOldSearchResult();
                break;
            case "search_save_config":
                CFilemanSearch::SaveConfig(array("advMode" => (bool) $_POST['adv_mode'], "bSubdir" => (bool) $_POST['subdir'], "entire" => (bool) $_POST['entire'], "bCaseSens" => (bool) $_POST['case_sens'], "bDirsToo" => (bool) $_POST['dirs_too']));
                break;
            case "copy_save_config":
                CFilemanCopy::SaveConfig(array("advMode" => (bool) $_POST['adv_mode'], "caseOption" => $_POST['case_option']));
                break;
            case "copy":
            case "move":
                $oCopy = new CFilemanCopy();
                $oCopy->Init(array("bCopy" => $action == "copy", "caseOption" => $_POST['case_option'], "arFiles" => $_POST['files'], "copyTo" => $_POST['copy_to'], "createCopyTo" => $_POST['create_copy_to'] == "Y", "userCaseAnswer" => isset($_POST['uc_answer']) ? $_POST['uc_answer'] : false, "userCaseToAll" => isset($_POST['uc_to_all']) ? $_POST['uc_to_all'] : false, "userCaseLastPath" => isset($_POST['uc_last_path']) ? $_POST['uc_last_path'] : false, "bSearch" => $_POST['search'] == "Y", "ssess" => $_POST['ssess'], "siteTo" => CFileMan::__CheckSite($_GET['fu_site'])));
                CFileMan::SaveLastPath($_POST['copy_to']);
                break;
            case "get_last_pathes":
                ?>
				<script>window.bx_last_pathes = <?php 
                echo CUtil::PhpToJSObject(CFilemanUtils::GetLastPathes());
                ?>
;</script>
				<?php 
                break;
            case "pack":
                if (isset($_POST["startFile"])) {
                    $startFile = trim($_POST["startFile"]);
                }
                if (isset($_POST["quickPath"])) {
                    $quickPath = trim($_POST["quickPath"]);
                }
                if (isset($_POST["packTo"])) {
                    if (substr($_POST["packTo"], 0, 1) == "/") {
                        $pack_to = $_POST["packTo"];
                    } else {
                        $pack_to = "/" . $_POST["packTo"];
                    }
                }
                $siteTo = CFileMan::__CheckSite($_POST['siteTo']);
                $docRootTo = CSite::GetSiteDocRoot($siteTo) ? CSite::GetSiteDocRoot($siteTo) : '';
                $siteFrom = CFileMan::__CheckSite($site);
                $docRootFrom = CSite::GetSiteDocRoot($siteFrom);
                if (!$USER->IsAdmin()) {
                    $pack_to = RemoveScriptExtension($pack_to);
                }
                //check writing permissions
                if (!$USER->CanDoFileOperation('fm_create_new_file', array($siteTo, $pack_to))) {
                    ?>
					<script>
						window.BXFM_archivePermsError = true;
					</script>
					<?php 
                    return;
                }
                if (IsFileUnsafe($docRootTo . $pack_to) || CFileMan::CheckFileName(GetFileName($pack_to)) !== true) {
                    ?>
					<script>
						window.BXFM_archiveFNameError = true;
					</script>
					<?php 
                    return;
                }
                //ask if the file already exists
                if (file_exists($io->GetPhysicalName($docRootTo . $pack_to))) {
                    if (empty($startFile)) {
                        if ($_POST["bPackReplace"] != "replace") {
                            ?>
							<script>
								window.BXFM_archiveExists = {
									fileOld:
									{
										name: "<?php 
                            echo CUtil::JSEscape(basename($pack_to));
                            ?>
",
										path: "<?php 
                            echo CUtil::JSEscape($pack_to);
                            ?>
",
										site: "<?php 
                            echo CUtil::JSEscape($siteTo);
                            ?>
",
										size: "<?php 
                            echo CFile::FormatSize(filesize($io->GetPhysicalName($docRootTo . $pack_to)));
                            ?>
",
										date: "<?php 
                            echo date(CDatabase::DateFormatToPHP(CLang::GetDateFormat('FULL')), filemtime($io->GetPhysicalName($docRootTo . $pack_to)) + CTimeZone::GetOffset());
                            ?>
"
									}
								};
							</script>
							<?php 
                            return;
                        }
                    }
                }
                $packarc = CBXArchive::GetArchive($docRootTo . $pack_to, trim($_POST['arcType']));
                if ($packarc instanceof IBXArchive) {
                    //this set of options is common for every archive type
                    $packarc->SetOptions(array("COMPRESS" => true, "STEP_TIME" => COption::GetOptionString("fileman", "archive_step_time", 30), "ADD_PATH" => false, "REMOVE_PATH" => $docRootFrom . $quickPath, "CHECK_PERMISSIONS" => $USER->IsAdmin() ? false : true));
                    $arPackFiles = array();
                    foreach ($_POST["files"] as $path2file) {
                        $arPackFiles[] = $docRootFrom . $path2file['path'];
                    }
                    @set_time_limit(0);
                    $pRes = $packarc->Pack($arPackFiles, $startFile);
                    switch ($pRes) {
                        case IBXArchive::StatusContinue:
                            ?>
							<script>
							window.fmPackTimeout = true;
							window.fmPackLastFile = '<?php 
                            echo CUtil::JSEscape($packarc->GetStartFile());
                            ?>
';
							</script>
						<?php 
                            break;
                        case IBXArchive::StatusSuccess:
                            ?>
							<script>
							window.fmPackTimeout = false;
							window.fmPackLastFile = '';
							window.fmPackSuccess = true;
							</script>
						<?php 
                            break;
                        case IBXArchive::StatusError:
                            $arErrors = $packarc->GetErrors();
                            ?>
							<script>
							window.fmPackTimeout = false;
							window.fmPackSuccess = false;
							window.fmPackErrors = <?php 
                            echo CUtil::PhpToJSObject($arErrors);
                            ?>
;
							</script>
						<?php 
                            break;
                    }
                } else {
                    ?>
					<script>
					window.fmPackSuccess = false;
					window.fmPackErrors = <?php 
                    echo CUtil::PhpToJsObject(GetMessage("FM_UTIL_ARC_ERROR"));
                    ?>
;
					</script>
					<?php 
                }
                break;
            case "unpack":
                global $USER;
                if (isset($_POST["packTo"])) {
                    if (substr($_POST["packTo"], 0, 1) == "/") {
                        $pack_to = $_POST["packTo"];
                    } else {
                        $pack_to = "/" . $_POST["packTo"];
                    }
                }
                $siteFrom = CFileMan::__CheckSite($_GET['site']);
                $siteTo = CFileMan::__CheckSite($_POST['siteTo']);
                $docRootFrom = CSite::GetSiteDocRoot($siteFrom);
                $docRootTo = CSite::GetSiteDocRoot($siteTo);
                if (!($USER->CanDoFileOperation('fm_create_new_file', array($siteTo, $_POST["packTo"])) || $USER->CanDoFileOperation('fm_create_new_folder', array($siteTo, $_POST["packTo"])))) {
                    ?>
					<script>
						window.BXFM_archivePermsError = true;
					</script>
					<?php 
                    return;
                }
                $bReplaceFiles = $_POST["case_option"] == "replace" ? true : false;
                $arc = CBXArchive::GetArchive($docRootFrom . $_POST["files"][0]);
                if ($arc instanceof IBXArchive) {
                    global $USER;
                    $arc->SetOptions(array("REMOVE_PATH" => $docRootFrom, "UNPACK_REPLACE" => $bReplaceFiles, "CHECK_PERMISSIONS" => $USER->IsAdmin() ? false : true));
                    $uRes = $arc->Unpack($docRootTo . $pack_to);
                    if (!$uRes) {
                        $uErrors = $arc->GetErrors();
                        ?>
						<script>
						window.fmUnpackSuccess = false;
						window.fmUnpackErrors = <?php 
                        echo CUtil::PhpToJSObject($uErrors);
                        ?>
						</script>
					<?php 
                    } else {
                        ?>
						<script>
						window.fmUnpackSuccess = true;
						</script>
					<?php 
                    }
                } else {
                    ?>
					<script>
					window.fmUnpackSuccess = false;
					window.fmUnpackErrors = <?php 
                    echo CUtil::PhpToJsObject(GetMessage("FM_UTIL_ARC_ERROR"));
                    ?>
;
					</script>
					<?php 
                }
                break;
        }
    }
Exemple #4
0
		"exts" => array("xml", "xsl"),
		"gtype" => "text",
		"name" => GetMessage("MAIN_BFSD_FTYPE_XML")
	),
	"csv" => array(
		"exts" => array("csv"),
		"gtype" => "text",
		"name" => GetMessage("MAIN_BFSD_FTYPE_CSV")
	),
	"flash" => array(
		"exts" => array("fla", "swf"),
		"gtype" => "file",
		"name" => GetMessage("MAIN_BFSD_FTYPE_SWF")
	),
	"archive" => array(
		"exts" => CBXArchive::GetArchiveExtensions(),
		"gtype" => "file",
		"name" => GetMessage("MAIN_BFSD_FTYPE_ARC")
	),
	"file" => array(
		"exts" => array(),
		"gtype" => "file",
		"name" => GetMessage("MAIN_BFSD_FTYPE_NA")
	)
);

// AddEventHandler("fileman", "OnBeforeHTMLEditorScriptsGet", "bitrix_tabs");
// function bitrix_tabs($editorName, $arEditorParams){return array("JS" => array('bitrix_tabs.js'));}

class CFileMan
{
Exemple #5
0
 public static function import($arParams)
 {
     global $APPLICATION;
     // check fields
     $aMsg = array();
     $arParams['SET_ID'] = intval($arParams['SET_ID']);
     $arParams['IMPORT_IF_FILE_EXISTS'] = isset($arParams['IMPORT_IF_FILE_EXISTS']) && $arParams['IMPORT_IF_FILE_EXISTS'] == 'Y' ? true : false;
     if (isset($arParams['FILE']) && GetFileExtension($arParams['FILE']) != 'zip') {
         $aMsg["FILE_EXT"] = array("id" => "FILE_EXT", "text" => GetMessage("MAIN_SMILE_IMPORT_FILE_EXT_ERROR"));
     } else {
         if (!isset($arParams['FILE']) || !file_exists($arParams['FILE'])) {
             $aMsg["FILE"] = array("id" => "FILE", "text" => GetMessage("MAIN_SMILE_IMPORT_FILE_ERROR"));
         } else {
             if ($arParams['SET_ID'] <= 0) {
                 $aMsg["SET_ID"] = array("id" => "SET_ID", "text" => GetMessage("MAIN_SMILE_IMPORT_SET_ID_ERROR"));
             }
         }
     }
     if (!empty($aMsg)) {
         $e = new CAdminException($aMsg);
         $APPLICATION->ThrowException($e);
         return false;
     }
     $sUnpackDir = CTempFile::GetDirectoryName(1);
     CheckDirPath($sUnpackDir);
     /** @var IBXArchive $oArchiver */
     $oArchiver = CBXArchive::GetArchive($arParams['FILE'], "ZIP");
     $oArchiver->SetOptions(array("STEP_TIME" => 300));
     if (!$oArchiver->Unpack($sUnpackDir)) {
         $aMsg["UNPACK"] = array("id" => "UNPACK", "text" => GetMessage("MAIN_SMILE_IMPORT_UNPACK_ERROR"));
         $e = new CAdminException($aMsg);
         $APPLICATION->ThrowException($e);
         return false;
     }
     $arSmiles = array();
     if (file_exists($sUnpackDir . 'install.csv')) {
         $arLang = array();
         $db_res = CLanguage::GetList($b = "sort", $o = "asc");
         while ($res = $db_res->Fetch()) {
             if (file_exists($sUnpackDir . 'install_lang_' . $res["LID"] . '.csv')) {
                 $arSmiles = array();
                 $csvFile = new CCSVData();
                 $csvFile->LoadFile($sUnpackDir . 'install_lang_' . $res["LID"] . '.csv');
                 $csvFile->SetFieldsType("R");
                 $csvFile->SetFirstHeader(false);
                 while ($smile = $csvFile->Fetch()) {
                     if (defined('BX_UTF') && BX_UTF && $res["LID"] == 'ru') {
                         $smile[1] = $APPLICATION->ConvertCharset($smile[1], 'windows-1251', 'utf-8');
                     }
                     $arLang[$smile[0]][$res["LID"]] = $smile[1];
                 }
             }
         }
         $csvFile = new CCSVData();
         $csvFile->LoadFile($sUnpackDir . 'install.csv');
         $csvFile->SetFieldsType("R");
         $csvFile->SetFirstHeader(false);
         while ($smileRes = $csvFile->Fetch()) {
             $smile = array('TYPE' => $smileRes[0], 'CLICKABLE' => $smileRes[1] == 'Y' ? 'Y' : 'N', 'SORT' => intval($smileRes[2]), 'IMAGE' => $smileRes[3], 'IMAGE_WIDTH' => intval($smileRes[4]), 'IMAGE_HEIGHT' => intval($smileRes[5]), 'IMAGE_DEFINITION' => in_array($smileRes[6], array(self::IMAGE_SD, self::IMAGE_HD, self::IMAGE_UHD)) ? $smileRes[6] : ($smileRes[6] == 'Y' ? self::IMAGE_HD : self::IMAGE_SD), 'HIDDEN' => in_array($smileRes[7], array('Y', 'N')) ? $smileRes[7] : 'N', 'IMAGE_LANG' => in_array($smileRes[7], array('Y', 'N')) ? $smileRes[8] : $smileRes[7], 'TYPING' => in_array($smileRes[7], array('Y', 'N')) ? $smileRes[9] : $smileRes[8]);
             if (!in_array($smile['TYPE'], array(CSmile::TYPE_SMILE, CSmile::TYPE_ICON))) {
                 continue;
             }
             $smile['IMAGE'] = GetFileName($smile['IMAGE']);
             $imgArray = CFile::GetImageSize($sUnpackDir . $smile['IMAGE']);
             if (!is_array($imgArray)) {
                 continue;
             }
             $arInsert = array('TYPE' => $smile['TYPE'], 'SET_ID' => $arParams['SET_ID'], 'CLICKABLE' => $smile['CLICKABLE'], 'SORT' => $smile['SORT'], 'IMAGE' => $smile['IMAGE'], 'IMAGE_WIDTH' => $smile['IMAGE_WIDTH'], 'IMAGE_HEIGHT' => $smile['IMAGE_HEIGHT'], 'IMAGE_DEFINITION' => $smile['IMAGE_DEFINITION'], 'HIDDEN' => $smile['HIDDEN'], 'TYPING' => $smile['TYPING']);
             if (isset($arLang[$smile['IMAGE_LANG']])) {
                 $arInsert['LANG'] = $arLang[$smile['IMAGE_LANG']];
             }
             $arSmiles[] = $arInsert;
         }
     } else {
         $smileSet = CSmileSet::getById($arParams['SET_ID']);
         if ($handle = @opendir($sUnpackDir)) {
             $sort = 300;
             while (($file = readdir($handle)) !== false) {
                 if ($file == "." || $file == "..") {
                     continue;
                 }
                 if (is_file($sUnpackDir . $file)) {
                     $imgArray = CFile::GetImageSize($sUnpackDir . $file);
                     if (is_array($imgArray)) {
                         $smileHR = self::IMAGE_SD;
                         $smileType = CSmile::TYPE_SMILE;
                         $smileCode = GetFileNameWithoutExtension($file);
                         if (strpos($file, 'smile_') !== false && strpos($file, 'smile_') == 0) {
                             $smileCode = substr($smileCode, 6);
                         } elseif (strpos($file, 'smile') !== false && strpos($file, 'smile') == 0) {
                             $smileCode = substr($smileCode, 5);
                         } elseif (strpos($file, 'icon_') !== false && strpos($file, 'icon_') == 0) {
                             $smileType = CSmile::TYPE_ICON;
                             $smileCode = substr($smileCode, 5);
                         } else {
                             if (strpos($file, 'icon') !== false && strpos($file, 'icon') == 0) {
                                 $smileType = CSmile::TYPE_ICON;
                                 $smileCode = substr($smileCode, 4);
                             }
                         }
                         if (strrpos($smileCode, '_hr') !== false && strrpos($smileCode, '_hr') == strlen($smileCode) - 3) {
                             $smileHR = self::IMAGE_HD;
                             $smileCode = substr($smileCode, 0, strrpos($smileCode, '_hr'));
                         }
                         if ($pos = strpos($smileCode, '_hr_')) {
                             $smileHR = self::IMAGE_HD;
                             $smileCode = substr($smileCode, 0, $pos) . '_' . substr($smileCode, $pos + 4);
                         }
                         $arSmiles[] = array('TYPE' => $smileType, 'SET_ID' => $arParams['SET_ID'], 'CLICKABLE' => 'Y', 'SORT' => $sort, 'IMAGE' => $file, 'IMAGE_WIDTH' => intval($imgArray[0]), 'IMAGE_HEIGHT' => intval($imgArray[1]), 'IMAGE_DEFINITION' => $smileHR, 'TYPING' => ':' . (isset($smileSet['STRING_ID']) ? $smileSet['STRING_ID'] : $smileSet['ID']) . '/' . $smileCode . ':');
                         $sort = $sort + 5;
                     }
                 }
             }
             @closedir($handle);
         }
     }
     $importSmile = 0;
     foreach ($arSmiles as $smile) {
         $sUploadDir = ($smile['TYPE'] == CSmile::TYPE_ICON ? CSmile::PATH_TO_ICON : CSmile::PATH_TO_SMILE) . intval($smile["SET_ID"]) . '/';
         if (file_exists($sUnpackDir . $smile['IMAGE']) && ($arParams['IMPORT_IF_FILE_EXISTS'] || !file_exists($_SERVER["DOCUMENT_ROOT"] . $sUploadDir . $smile['IMAGE']))) {
             if (CheckDirPath($_SERVER["DOCUMENT_ROOT"] . $sUploadDir)) {
                 $insertId = CSmile::add($smile);
                 if ($insertId) {
                     if ($arParams['IMPORT_IF_FILE_EXISTS'] && file_exists($_SERVER["DOCUMENT_ROOT"] . $sUploadDir . $smile['IMAGE'])) {
                         $importSmile++;
                     } else {
                         if (copy($sUnpackDir . $smile['IMAGE'], $_SERVER["DOCUMENT_ROOT"] . $sUploadDir . $smile['IMAGE'])) {
                             @chmod($_SERVER["DOCUMENT_ROOT"] . $sUploadDir . $smile['IMAGE'], BX_FILE_PERMISSIONS);
                             $importSmile++;
                         } else {
                             CSmile::delete($insertId);
                         }
                     }
                 }
                 $APPLICATION->ResetException();
             }
         }
     }
     return $importSmile;
 }
         }
     }
 } else {
     if ($USER->CanDoFileOperation('fm_view_listing', $arPath)) {
         $arActions[] = array("ICON" => "", "TEXT" => GetMessage('FILEMAN_N_OPEN'), "DEFAULT" => true, "ACTION" => "javascript:" . $sTableID . ".GetAdminList('fileman_admin.php?" . $addUrl . "&site=" . urlencode($site) . "&path=" . $fpathUrl . "&show_perms_for=" . IntVal($show_perms_for) . "', GALCallBack);");
     }
     if ($USER->CanDoFileOperation('fm_edit_existent_folder', $arPath)) {
         $arActions[] = array("ICON" => "btn_fileman_prop", "TEXT" => GetMessage("FILEMAN_ADMIN_FOLDER_PROP"), "ACTION" => $lAdmin->ActionRedirect("fileman_folder.php?" . $addUrl . "&site=" . urlencode($site) . "&path=" . $fpathUrl . ""));
     }
 }
 $type = $Elem["TYPE"] == "F" ? 'file' : 'folder';
 if ($logical != "Y") {
     if ($Elem["TYPE"] == "F" && $USER->CanDoFileOperation('fm_view_file', $arPath) && ($USER->CanDoOperation('edit_php') || $USER->CanDoFileOperation('fm_lpa', $arPath) || !(HasScriptExtension($f_NAME) || substr($Elem["NAME"], 0, 1) == ".")) || $Elem["TYPE"] == "D" && $USER->CanDoFileOperation('fm_view_listing', $arPath)) {
         $arActions[] = array("SEPARATOR" => true);
         $arActions[] = array("ICON" => "pack", "TEXT" => GetMessage("FILEMAN_ADMIN_ARC_PACK"), "ACTION" => "window.PackUnpackRun([{'path' : '" . CUtil::JSEscape($fpath) . "', 'isDir' : '" . $arrIsDir[$fpath] . "'}], true); return false;");
         $is_archive = CBXArchive::IsArchive($fpath);
         if ($is_archive) {
             $arActions[] = array("ICON" => "unpack", "TEXT" => GetMessage("FILEMAN_ADMIN_ARC_UNPACK"), "ACTION" => "window.PackUnpackRun(['" . CUtil::JSEscape($fpath) . "'], false); return false;");
         }
     }
     if ($USER->CanDoFileOperation('fm_rename_' . $type, $arPath)) {
         $arActions[] = array("SEPARATOR" => true);
         $arActions[] = array("ICON" => "rename", "TEXT" => GetMessage("FILEMAN_RENAME_SAVE"), "ACTION" => 'setCheckbox(\'' . addslashes($f_NAME) . '\'); if(' . $lAdmin->table_id . '.IsActionEnabled(\'edit\')){document.forms[\'form_' . $lAdmin->table_id . '\'].elements[\'action_button\'].value=\'edit\'; ' . $lAdmin->ActionPost() . '}else{document.location.href=\'fileman_rename.php?' . $addUrl . '&path=' . urlencode($path) . '&site=' . $site . '&files[]=' . CFileman::GetFileName($arPath[1]) . '\'}');
     }
     // Copy
     if ($USER->CanDoFileOperation('fm_view_file', $arPath) && ($USER->CanDoOperation('edit_php') || $USER->CanDoFileOperation('fm_lpa', $arPath) || !(HasScriptExtension($f_NAME) || substr($Elem["NAME"], 0, 1) == ".")) && $Elem["TYPE"] == "F" || $Elem["TYPE"] == "D" && $USER->CanDoFileOperation('fm_view_listing', $arPath)) {
         $arActions[] = array("ICON" => "copy", "TEXT" => GetMessage("FILEMAN_ADM_COPY"), "ACTION" => "window.CopyMoveRun([{'path' : '" . CUtil::JSEscape($fpath) . "', 'isDir' : '" . $arrIsDir[$fpath] . "'}], true); return false;");
     }
     // Move
     if ($USER->CanDoOperation('fileman_admin_folders') && $USER->CanDoFileOperation('fm_delete_' . $type, $arPath)) {
         if ($USER->CanDoFileOperation('fm_view_file', $arPath) && ($USER->CanDoOperation('edit_php') || $USER->CanDoFileOperation('fm_lpa', $arPath) || !(HasScriptExtension($f_NAME) || substr($Elem["NAME"], 0, 1) == ".")) && $Elem["TYPE"] == "F" || $Elem["TYPE"] == "D" && $USER->CanDoFileOperation('fm_view_listing', $arPath)) {
$dirInstall = $_SERVER['DOCUMENT_ROOT'].'/local/modules/mytools';

switch($_REQUEST['action']) {
	case 'install':

		if(!is_dir($dirDownload))
			mkdir($dirDownload, 0755, true);

		if(copy('http://mytools.nbykov.ru/upload/mytools/mytools.zip', $dirDownload.'/mytools.zip')) {

			$arUnpackOptions = Array(
				'REMOVE_PATH' => $_SERVER['DOCUMENT_ROOT'],
				'UNPACK_REPLACE' => true
			);

			$resArchiver = CBXArchive::GetArchive($dirDownload . '/mytools.zip', 'ZIP');
			$resArchiver->SetOptions($arUnpackOptions);
			if(!$resArchiver->Unpack($dirDownload))
				$arErrors[] = 'Ошибка при распаковке архива';

			unlink($dirInstall.'/mytools.zip');
		}
		else
			$arErrors[] = 'Ошибка при скачивании архиа';

		break;

	case 'delete':
		unlink(__FILE__);
		localredirect('/');
		break;
Exemple #8
0
 protected function packData($xmlFile)
 {
     $tmpDir = $this->path . "/tmp";
     $archiveName = $tmpDir . "/" . $this->feedType . "_" . $this->fileNameSalt . ".zip";
     $oArchiver = \CBXArchive::GetArchive($archiveName, "ZIP");
     $oArchiver->SetOptions(array("REMOVE_PATH" => $this->path . "/xml", "ADD_PATH" => $this->feedType));
     if ($oArchiver->Pack($xmlFile)) {
         \Bitrix\Main\IO\File::deleteFile($xmlFile);
     }
     return $archiveName;
 }
Exemple #9
0
if ($_SERVER["REQUEST_METHOD"] == "POST" && strlen($backButton) > 0) {
    $STEP = 1;
}
if ($_SERVER["REQUEST_METHOD"] == "POST" && $STEP == 2 && check_bitrix_sessid()) {
    if (!is_array($SITE_ID) || empty($SITE_ID)) {
        $strError .= GetMessage("LEARNING_BAD_SITE_ID") . "<br>";
    }
    if (strlen($URL_DATA_FILE) > 0) {
        if (!CBXArchive::IsArchive($_SERVER["DOCUMENT_ROOT"] . $URL_DATA_FILE)) {
            $strError .= GetMessage("LEARNING_NOT_TAR_GZ") . "<br>";
        }
    } else {
        $strError .= GetMessage("LEARNING_DATA_FILE_NOT_FOUND");
    }
    if (strlen($strError) <= 0) {
        $oArchiver = CBXArchive::GetArchive($_SERVER["DOCUMENT_ROOT"] . $URL_DATA_FILE);
        if ($oArchiver === false) {
            $strError .= GetMessage("LEARNING_NOT_TAR_GZ") . "<br>";
        }
    }
    if (strlen($strError) <= 0 && $oArchiver !== false) {
        $tmp_dir = BX_PERSONAL_ROOT . "/tmp/learning/" . uniqid(rand());
        CheckDirPath($_SERVER["DOCUMENT_ROOT"] . $tmp_dir);
        if ($oArchiver->Unpack($_SERVER["DOCUMENT_ROOT"] . $tmp_dir)) {
            if (!isset($SCORM)) {
                $package = new CCourseImport($tmp_dir, $SITE_ID);
                if (!strlen($package->LAST_ERROR)) {
                    if (!$package->ImportPackage()) {
                        $strError .= $package->LAST_ERROR;
                    }
                } else {
Exemple #10
0
    $exportFilePath = "/acrit.exportpro/" . $profileDefaults["PROFILE_CODE"] . ".xml";
}
$bUseCompress = $arProfile["USE_COMPRESS"] == "Y" ? 'checked="checked"' : "";
if ($arProfile["USE_COMPRESS"] == "Y") {
    $originalName = $_SERVER["DOCUMENT_ROOT"] . $arProfile["SETUP"]["URL_DATA_FILE"];
    $zipPath == false;
    $fileZipPath == false;
    if (stripos($arProfile["SETUP"]["URL_DATA_FILE"], "csv") !== false) {
        $zipPath = str_replace("csv", "zip", $originalName);
        $fileZipPath = str_replace("csv", "zip", $arProfile["SETUP"]["URL_DATA_FILE"]);
    } elseif (stripos($arProfile["SETUP"]["URL_DATA_FILE"], "xml") !== false) {
        $zipPath = str_replace("xml", "zip", $originalName);
        $fileZipPath = str_replace("xml", "zip", $arProfile["SETUP"]["URL_DATA_FILE"]);
    }
    if ($zipPath) {
        $packarc = CBXArchive::GetArchive($zipPath);
    }
}
$productsPerStep = intval($arProfile['SETUP']['EXPORT_STEP']) <= 0 ? 50 : intval($arProfile['SETUP']['EXPORT_STEP']);
?>
<tr class="heading">
    <td colspan="2" valign="top"><?php 
echo GetMessage('ACRIT_EXPORTPRO_RUNTYPE_RUN');
?>
</td>
</tr>
<?php 
if ($arProfile["SETUP"]["FILE_TYPE"] == "csv") {
    ?>
    <tr id="tr_csv_info">
        <td colspan="2">