function ParseFile($file) { $docRoot = CSite::GetSiteDocRoot(self::$curSite); $file = str_replace("//", "/", $file); $io = CBXVirtualIo::GetInstance(); $bIsDir = $io->DirectoryExists($file); if (is_link($file)) { return; } if ($bIsDir) { // Skip 'bitrix' and 'upload' folders if ($file == $docRoot . '/bitrix' || $file == $docRoot . '/upload' || $file == $docRoot . '/images') { return; } $oDir = new CFilemanUtilDir($file, array('obj' => $this, 'site' => self::$curSite, 'callBack' => "ParseFile", 'checkBreak' => "CheckBreak", 'checkSubdirs' => false)); $bSuccess = $oDir->Start(); $bBreak = $oDir->bBreak; $nextPath = $oDir->nextPath; if ($bBreak) { $this->ParseStop(CFilemanUtils::TrimPath($nextPath, $docRoot), self::$curSite); } } else { if (self::$bSkip) { if ($file == $docRoot . self::$lastPath) { self::$bSkip = false; } else { return; } // Files was handled earlier } $fileName = $io->ExtractNameFromPath($file); // Skip files stating from dot '.' or any non .php files if (GetFileExtension($fileName) != 'php' || preg_match('/^\\..*/i' . BX_UTF_PCRE_MODIFIER, $fileName)) { return; } // 1. Get file content $fTmp = $io->GetFile($file); $fileContent = $fTmp->GetContents(); $fileContent = str_replace("\r", "", $fileContent); $fileContent = str_replace("\n", "", $fileContent); // Find files with needed components $pattern = array('intranet.event_calendar', 'socialnetwork', 'socialnetwork_user', 'socialnetwork_group'); foreach ($pattern as $p) { if (preg_match('/includecomponent\\([\\n\\t\\r\\s]*("|\')bitrix:' . $p . '/i' . BX_UTF_PCRE_MODIFIER, $fileContent)) { $this->FetchParams($fileContent); break; } } } }
public static function Init($Params) { global $USER; $arWarnings = array(); if (!$USER->CanDoOperation('fileman_admin_files') && !$USER->CanDoOperation('fileman_admin_folders')) { $arWarnings[] = GetMessage('FM_UTIL_ACCESS_DENIED'); } $io = CBXVirtualIo::GetInstance(); if (count($arWarnings) == 0) { $pathTo = trim($Params['copyTo'], " /"); $site = CFileMan::__CheckSite($_GET['site']); $siteTo = $Params['siteTo'] ? $Params['siteTo'] : $site; $pathTo = $pathTo == "" ? "/" : "/" . $pathTo . "/"; $absPathTo = CSite::GetSiteDocRoot($siteTo) . $pathTo; $docRootFrom = CSite::GetSiteDocRoot($site); if (!$io->DirectoryExists($absPathTo)) { // Create destination directory $bAccess = $USER->CanDoOperation('fileman_admin_folders') && $USER->CanDoFileOperation('fm_create_new_folder', $pathTo); if ($Params['createCopyTo']) { if ($bAccess) { CFileMan::CreateDir(array($siteTo, $pathTo)); } } else { ?> <script>window.BXFM_NoCopyToDir = "<?php echo $bAccess ? "ask_user" : "access_denied"; ?> ";</script><?php return; } } foreach ($Params['arFiles'] as $file) { $filePath = $file['path']; $caseOption = $Params['caseOption']; if ($Params["userCaseLastPath"]) { if ($Params["userCaseLastPath"] != $filePath) { continue; } $caseOption = $Params['userCaseAnswer']; if ($Params["userCaseToAll"]) { $Params['caseOption'] = $caseOption; } $Params["userCaseLastPath"] = false; } $arPath_i = array($site, $filePath); $absPath_i = $docRootFrom . $filePath; $bDir_i = $io->DirectoryExists($absPath_i); $name_i = CFileman::GetFileName($filePath); $strWarn = ""; // Check if file already exists in destination folder if ($io->FileExists($absPathTo . $name_i) || $bDir_i == $io->DirectoryExists($absPathTo . $name_i) && $bDir_i) { $fTmp = $io->GetFile($absPathTo . $name_i); $fTmp1 = $io->GetFile($absPath_i); $altName = CFilemanCopy::GetAltFileName($absPathTo, $name_i, $bDir_i); if ($caseOption == 'ask') { ?> <script> window.BXFM_fileExist = { fileOld: { name: "<?php echo CUtil::JSEscape($name_i); ?> ", path: "<?php echo CUtil::JSEscape($pathTo . $name_i); ?> ", site: "<?php echo CUtil::JSEscape($siteTo); ?> ", bDir: <?php echo $bDir_i ? "true" : "false"; ?> , size: "<?php echo $bDir_i ? '-' : CFile::FormatSize($fTmp->GetFileSize()); ?> ", date: "<?php echo date(CDatabase::DateFormatToPHP(CLang::GetDateFormat("FULL")), CFilemanUtils::GetModifyTime($absPathTo . $name_i) + CTimeZone::GetOffset()); ?> " }, fileNew: { alt_name: "<?php echo CUtil::JSEscape($altName); ?> ", name: "<?php echo CUtil::JSEscape($name_i); ?> ", path: "<?php echo CUtil::JSEscape($filePath); ?> ", site: "<?php echo CUtil::JSEscape($site); ?> ", bDir: <?php echo $bDir_i ? "true" : "false"; ?> , size: "<?php echo $bDir_i ? '-' : CFile::FormatSize($fTmp1->GetFileSize()); ?> ", date: "<?php echo date(CDatabase::DateFormatToPHP(CLang::GetDateFormat("FULL")), CFilemanUtils::GetModifyTime($absPath_i) + CTimeZone::GetOffset()); ?> " } }; </script><?php return; } elseif ($caseOption == 'replace') { // We don't need to replace, couse it's one file if (CFileMan::NormalizePath($pathTo . "/" . $name_i) == $filePath) { continue; } $strWarn = CFileMan::CopyEx($arPath_i, array($siteTo, CFileMan::NormalizePath($pathTo . "/" . $name_i)), !$Params['bCopy'], true); if ($strWarn != "") { $arWarnings[] = $strWarn; $log = false; } elseif ($Params['bSearch'] && $Params['ssess'] && !$Params['bCopy']) { CFilemanSearch::DelFromSearchResult($Params['ssess'], $filePath); } } elseif ($caseOption == 'auto_rename') { $strWarn = CFileMan::CopyEx($arPath_i, array($siteTo, CFileMan::NormalizePath($pathTo . "/" . $altName)), !$Params['bCopy']); if ($strWarn != "") { $arWarnings[] = $strWarn; $log = false; } elseif ($Params['bSearch'] && $Params['ssess'] && !$Params['bCopy']) { CFilemanSearch::DelFromSearchResult($Params['ssess'], $filePath); } } elseif ($caseOption == 'skip') { continue; } } else { $strWarn = CFileMan::CopyEx($arPath_i, array($siteTo, CFileMan::NormalizePath($pathTo . "/" . $name_i)), !$Params['bCopy']); if ($strWarn != "") { $arWarnings[] = $strWarn; $log = false; } elseif ($Params['bSearch'] && $Params['ssess'] && !$Params['bCopy']) { CFilemanSearch::DelFromSearchResult($Params['ssess'], $filePath); } } $module_id = "fileman"; if (COption::GetOptionString($module_id, "log_page", "Y") == "Y" && $log) { $res_log['copy_to'] = substr($pathTo, 1); $res_log['path'] = substr($filePath, 1); if ($Params['bCopy'] == "copy") { if (!$bDir_i) { CEventLog::Log("content", "FILE_COPY", "fileman", "", serialize($res_log)); } else { CEventLog::Log("content", "SECTION_COPY", "fileman", "", serialize($res_log)); } } else { if (!$bDir_i) { CEventLog::Log("content", "FILE_MOVE", "fileman", "", serialize($res_log)); } else { CEventLog::Log("content", "SECTION_MOVE", "fileman", "", serialize($res_log)); } } } } } $arWarnings; ?> <script> window.BXFM_result = { status: "<?php echo count($arWarnings) > 0 ? 'errors' : 'ok'; ?> ", errors: <?php echo count($arWarnings) > 0 ? CUtil::PhpToJSObject($arWarnings) : '{}'; ?> }; </script><?php }
echo GetMessage("MAIN_F_TYPE"); ?> :</td> <td nowrap><?php $arr = array("reference" => array(GetMessage("FILEMAN_FILE"), GetMessage("FILEMAN_FOLDER")), "reference_id" => array("F", "D")); echo SelectBoxFromArray("find_type", $arr, htmlspecialcharsbx($find_type), GetMessage("MAIN_ALL")); ?> </td> </tr> <?php $oFilter->Buttons(array("table_id" => $sTableID, "url" => $APPLICATION->GetCurPage() . '?' . $addUrl_s . "&site=" . urlencode($site) . "&path=" . urlencode($path . "/" . $Elem["NAME"]), "form" => "find_form")); $oFilter->End(); ?> </form> <?php } ?> <?php if (empty($arGrActionAr)) { $lAdmin->bCanBeEdited = false; } $lAdmin->DisplayList(); ?> <?php CFilemanUtils::BuildDialogContent($site); ?> <?php require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_admin.php";
{ $adminChain->AddItem( array( "TEXT" => htmlspecialcharsex($chainLevel["TITLE"]), "LINK" => ((strlen($chainLevel["LINK"]) > 0) ? $chainLevel["LINK"] : ""), ) ); } } $adminChain->AddItem(array("TEXT" => GetMessage("FILEMAN_SERV_ACCESS_TITLE"), "LINK" => "")); $APPLICATION->SetTitle(GetMessage("FILEMAN_SERV_ACCESS_TITLE")); require($_SERVER["DOCUMENT_ROOT"]."/freetrix/modules/main/include/prolog_admin_after.php"); CFilemanUtils::InitScript(array( 'initServerAccess' => true, 'site' => $site )); $aMenu = array( array( "TEXT" => $bSearch ? GetMessage("FILEMAN_SA_BACK_2_SEARCH_RES") : GetMessage("FILEMAN_SA_BACK_2_FOLDER"), "LINK" => $backToFolderUrl ) ); $context = new CAdminContextMenu($aMenu); $context->Show(); ?> <?CAdminMessage::ShowMessage($strNotice);?> <?CAdminMessage::ShowMessage($strWarning);?>