Ejemplo n.º 1
0
            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"], ""));
Ejemplo n.º 2
0
 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)));
 }