foreach ($arSections as $val) { $arResultFirst[$prefix . $val["NAME"]] = $val + array("DEEP" => count($arPath)); } $arResult = $arResultFirst + $arResult; } while ($key = next($arActive)); } return $arResult; } /******************************************************************** Input params ********************************************************************/ /***************** BASE ********************************************/ $arParams["FOLDER"] = trim($_REQUEST["folder"]); $io = CBXVirtualIo::GetInstance(); $arParams["ACTIVE"] = $io->CombinePath(trim($_REQUEST["active"])); $ob = new CWebDavFile($arParams, ""); if (!$ob->CheckRights("MOVE", false, $path = "")) { $popupWindow->ShowError(GetMessage("WD_ACCESS_DENIED")); } //CWebDavFile::RegisterVirtualIOCompatibility($ob->real_path_full); $arParams["ELEMENT_ID"] = CUtil::JSEscape(empty($_REQUEST["element_id"]) ? "WD_IBLOCK_SECTION_ID" : $_REQUEST["element_id"]); /******************************************************************** /Input params ********************************************************************/ /******************************************************************** Data ********************************************************************/ if ($_REQUEST["return_array"] == "Y") { array_walk($_REQUEST, '__UnEscape'); //$_REQUEST["active"] = str_replace(array("///", "//"), "/", "/".$_REQUEST["active"]."/"); $result = array("dir_id" => md5($arParams["ACTIVE"]), "folder" => $arParams["ACTIVE"], "subdirs" => __WDGetSectionsTree($ob->real_path_full . $arParams["ACTIVE"], ""));
function LoadFile($arLink) { $hash = $arLink; if (is_array($arLink)) { $hash = $arLink["HASH"]; } if (strlen($hash) <= 0) { return true; } if (self::DEMO_HASH == $hash) { LocalRedirect(self::GetDemoLoadFileUrl()); } $arF = $arLink; if (!is_array($arLink)) { $resF = self::GetList(array("HASH" => $hash, "ACTUAL" => true), array("URL", "RESOURCE_TYPE", "FOLDER", "IBLOCK_TYPE", "IBLOCK_ID", "BASE_URL", "USER_ID", "ROOT_SECTION_ID", "DOWNLOAD_COUNT", "VERSION_ID", "FILE_ID", "ELEMENT_ID")); $arF = $resF->Fetch(); } if (is_array($arF)) { if (intval($arF["ROOT_SECTION_ID"]) <= 0) { unset($arF["ROOT_SECTION_ID"]); } $arF['check_permissions'] = false; if ($arF["RESOURCE_TYPE"] == "IBLOCK") { $ob = new CWebDavIblock($arF['IBLOCK_ID'], $arF['BASE_URL'], array_intersect_key($arF, array("URL" => true, "RESOURCE_TYPE" => true, "FOLDER" => true, "IBLOCK_TYPE" => true, "IBLOCK_ID" => true, "BASE_URL" => true, "USER_ID" => true, "ROOT_SECTION_ID" => true, "DOWNLOAD_COUNT" => true))); $ob->withoutAuthorization = true; } else { $ob = new CWebDavFile($arF, $arF["BASE_URL"]); } self::incDownloadCount($arF['HASH'], $arF['LINK_TYPE']); //for get history document (don't have url if ($arF['LINK_TYPE'] == self::LINK_TYPE_AUTO || !empty($arF['ELEMENT_ID'])) { $arF['VERSION_ID'] = intval($arF['VERSION_ID']); $arF['FILE_ID'] = intval($arF['FILE_ID']); $entityType = self::getEntityType(CIBlock::GetArrayByID($arF['IBLOCK_ID'], 'CODE')); $ob->wfParams['DOCUMENT_TYPE'] = self::getEntityIdDocumentData($entityType, array('ELEMENT_ID' => $arF['ELEMENT_ID'])); if ($arF['FILE_ID'] && !$arF['VERSION_ID']) { $document = $ob->findHistoryDocumentByFileId($arF['ELEMENT_ID'], $arF['FILE_ID'], $ob->wfParams['DOCUMENT_TYPE']); if (!empty($document['ID'])) { $arF['VERSION_ID'] = $document['ID']; } } $ob->SendHistoryFile($arF['ELEMENT_ID'], (int) $arF['VERSION_ID']); die; } $ob->SetPath($arF["URL"]); $options = array(); $options['path'] = $arF["URL"]; $options['check_permissions'] = false; if (true === ($status = $ob->GET($options))) { $x = $ob->SendFile($options, true); if (is_null($x)) { echo "error"; } die; } } else { echo "error"; die; } global $APPLICATION; LocalRedirect(CHTTP::urlAddParams($APPLICATION->GetCurPage(), array('notfoud' => true))); }