コード例 #1
0
ファイル: functions.php プロジェクト: Satariall/izurit
function forumCommentsCommentWeb(array $comment, array $arParams, array $arResult, ForumCommentsComponent $component)
{
    global $APPLICATION;
    $arParams["AVATAR_SIZE"] = intval($arParams["AVATAR_SIZE"]) ?: 58;
    $res = array("ID" => $comment["ID"], "NEW" => $comment["NEW"] == "Y" ? "Y" : "N", "APPROVED" => $comment["APPROVED"], "POST_TIMESTAMP" => $comment["POST_TIMESTAMP"], "AUTHOR" => array("ID" => $comment["AUTHOR_ID"], "NAME" => $comment["~NAME"], "LAST_NAME" => $comment["~LAST_NAME"], "SECOND_NAME" => $comment["~SECOND_NAME"], "AVATAR" => $comment["AVATAR"] && $comment["AVATAR"]["FILE"] ? $comment["AVATAR"]["FILE"]['src'] : ""), "FILES" => $comment["FILES"], "UF" => $comment["PROPS"], "POST_MESSAGE_TEXT" => $comment["POST_MESSAGE_TEXT"], "~POST_MESSAGE_TEXT" => $comment["~POST_MESSAGE_TEXT"], "CLASSNAME" => "", "BEFORE_HEADER" => "", "BEFORE_ACTIONS" => "", "AFTER_ACTIONS" => "", "AFTER_HEADER" => "", "BEFORE" => "", "AFTER" => "", "BEFORE_RECORD" => "", "AFTER_RECORD" => "");
    if (!empty($res["FILES"])) {
        foreach ($res["FILES"] as $key => $file) {
            $res["FILES"][$key]["URL"] = "/bitrix/components/bitrix/forum.interface/show_file.php?fid=" . $file["ID"];
            if (CFile::IsImage($file["SRC"], $file["CONTENT_TYPE"])) {
                $res["FILES"][$key]["THUMBNAIL"] = "/bitrix/components/bitrix/forum.interface/show_file.php?fid=" . $file["ID"] . "&width=90&height=90";
                $res["FILES"][$key]["SRC"] = "/bitrix/components/bitrix/forum.interface/show_file.php?fid=" . $file["ID"];
            }
        }
    }
    return $res;
}
コード例 #2
0
 public static function RenderFiles($fileIDs, $fileUrlTemplate = '', $fileMaxWidth = 0, $fileMaxHeight = 0)
 {
     if (!is_array($fileIDs)) {
         return 0;
     }
     $fileUrlTemplate = strval($fileUrlTemplate);
     $fileMaxWidth = intval($fileMaxWidth);
     if ($fileMaxWidth <= 0) {
         $fileMaxWidth = 350;
     }
     $fileMaxHeight = intval($fileMaxHeight);
     if ($fileMaxHeight <= 350) {
         $fileMaxHeight = 350;
     }
     $file = new CFile();
     $processed = 0;
     foreach ($fileIDs as $fileID) {
         $fileInfo = $file->GetFileArray($fileID);
         if (!is_array($fileInfo)) {
             continue;
         }
         if ($processed > 0) {
             echo '<span class="bx-br-separator"><br/></span>';
         }
         echo '<span class="fields files">';
         $fileInfo['name'] = $fileInfo['ORIGINAL_NAME'];
         if ($file->IsImage($fileInfo['ORIGINAL_NAME'], $fileInfo['CONTENT_TYPE'])) {
             echo $file->ShowImage($fileInfo, $fileMaxWidth, $fileMaxHeight, '', '', true, false, 0, 0, $fileUrlTemplate);
         } else {
             echo '<span class="crm-entity-file-info"><a target="_blank" class="crm-entity-file-link" href="', htmlspecialcharsbx(CComponentEngine::MakePathFromTemplate($fileUrlTemplate, array('file_id' => $fileInfo['ID']))), '">', htmlspecialcharsbx($fileInfo['ORIGINAL_NAME']) . '</a><span class="crm-entity-file-size">', CFile::FormatSize($fileInfo['FILE_SIZE']) . '</span></span>';
         }
         echo '</span>';
         $processed++;
     }
     return $processed;
 }
コード例 #3
0
ファイル: support.php プロジェクト: k-kalashnikov/geekcon_new
 function AddMessage($ticketID, $arFields, &$arrFILES, $checkRights = "Y")
 {
     if (strlen($arFields["MESSAGE"]) > 0 || is_array($arFields["FILES"]) && count($arFields["FILES"]) > 0) {
         $err_mess = CTicket::err_mess() . "<br>Function: AddMessage<br>Line: ";
         global $DB, $USER;
         $bAdmin = "N";
         $bSupportTeam = "N";
         $bSupportClient = "N";
         if ($checkRights == "Y") {
             $bAdmin = CTicket::IsAdmin() ? "Y" : "N";
             $bSupportTeam = CTicket::IsSupportTeam() ? "Y" : "N";
             $bSupportClient = CTicket::IsSupportClient() ? "Y" : "N";
             $uid = intval($USER->GetID());
         } else {
             $bAdmin = "Y";
             $bSupportTeam = "Y";
             $bSupportClient = "Y";
             //if (is_object($USER)) $uid = intval($USER->GetID()); else $uid = -1;
             $uid = 0;
         }
         if ($bAdmin != "Y" && $bSupportTeam != "Y" && $bSupportClient != "Y") {
             return false;
         }
         $ticketID = intval($ticketID);
         if ($ticketID <= 0) {
             return 0;
         }
         $strSql = "SELECT RESPONSIBLE_USER_ID, LAST_MESSAGE_USER_ID, REOPEN, SITE_ID, TITLE FROM b_ticket WHERE ID='{$ticketID}'";
         $rsTicket = $DB->Query($strSql, false, $err_mess . __LINE__);
         $arTicket = $rsTicket->Fetch();
         $currentResponsibleUserID = $arTicket["RESPONSIBLE_USER_ID"];
         $siteID = $arTicket["SITE_ID"];
         $tTitle = $arTicket["TITLE"];
         $strSql = "SELECT max(C_NUMBER) MAX_NUMBER FROM b_ticket_message WHERE TICKET_ID='{$ticketID}'";
         $z = $DB->Query($strSql, false, $err_mess . __LINE__);
         $zr = $z->Fetch();
         $maxNumber = intval($zr['MAX_NUMBER']);
         if ((strlen(trim($arFields["MESSAGE_AUTHOR_SID"])) > 0 || intval($arFields["MESSAGE_AUTHOR_USER_ID"]) > 0 || intval($arFields["MESSAGE_CREATED_USER_ID"]) > 0) && ($bSupportTeam == "Y" || $bAdmin == "Y")) {
             $ownerUserID = intval($arFields["MESSAGE_AUTHOR_USER_ID"]);
             $ownerSid = "'" . $DB->ForSql($arFields["MESSAGE_AUTHOR_SID"], 2000) . "'";
             $ownerGuestID = intval($arFields["MESSAGE_AUTHOR_GUEST_ID"]) > 0 ? intval($arFields["MESSAGE_AUTHOR_GUEST_ID"]) : "null";
             $createdUserID = intval($arFields["MESSAGE_CREATED_USER_ID"]) > 0 ? intval($arFields["MESSAGE_CREATED_USER_ID"]) : intval($uid);
             $createdGuestID = intval($arFields["MESSAGE_CREATED_GUEST_ID"]) > 0 ? intval($arFields["MESSAGE_CREATED_GUEST_ID"]) : intval($_SESSION["SESS_GUEST_ID"]);
         } else {
             $ownerUserID = intval($uid);
             $ownerSid = "null";
             $ownerGuestID = intval($_SESSION["SESS_GUEST_ID"]);
             $createdUserID = intval($uid);
             $createdGuestID = intval($_SESSION["SESS_GUEST_ID"]);
         }
         if (intval($ownerGuestID) <= 0) {
             $ownerGuestID = "null";
         }
         $MessageBySupportTeam = "null";
         if ($ownerUserID <= 0) {
             $ownerUserID = "null";
         } else {
             $MessageBySupportTeam = "'N'";
             if (CTicket::IsSupportTeam($ownerUserID) || CTicket::IsAdmin($ownerUserID)) {
                 $MessageBySupportTeam = "'Y'";
             }
         }
         if ($createdUserID <= 0) {
             $createdUserID = "null";
         }
         if (intval($createdGuestID) <= 0) {
             $createdGuestID = "null";
         }
         $createdModuleName = strlen($arFields["MESSAGE_CREATED_MODULE_NAME"]) > 0 ? "'" . $DB->ForSql($arFields["MESSAGE_CREATED_MODULE_NAME"], 255) . "'" : "'support'";
         $externalID = intval($arFields["EXTERNAL_ID"]) > 0 ? intval($arFields["EXTERNAL_ID"]) : "null";
         $externalField1 = $arFields["EXTERNAL_FIELD_1"];
         if (is_set($arFields, "HIDDEN")) {
             $hidden = $arFields["HIDDEN"] == "Y" ? "Y" : "N";
         } elseif (is_set($arFields, "IS_HIDDEN")) {
             $hidden = $arFields["IS_HIDDEN"] == "Y" ? "Y" : "N";
         }
         $hidden = $hidden == "Y" ? "Y" : "N";
         $notChangeStatus = is_set($arFields, "NOT_CHANGE_STATUS") && $arFields["NOT_CHANGE_STATUS"] == "Y" ? "Y" : "N";
         $changeLastMessageDate = true;
         if ($arTicket["LAST_MESSAGE_USER_ID"] == $uid && $arTicket["REOPEN"] != "Y") {
             $changeLastMessageDate = false;
         }
         $TASK_TIME = intval($arFields["TASK_TIME"]) > 0 ? intval($arFields["TASK_TIME"]) : "null";
         if (is_set($arFields, "LOG")) {
             $log = $arFields["LOG"] == "Y" ? "Y" : "N";
         } elseif (is_set($arFields, "IS_LOG")) {
             $log = $arFields["IS_LOG"] == "Y" ? "Y" : "N";
         }
         $log = $log == "Y" ? "Y" : "N";
         if (is_set($arFields, "OVERDUE")) {
             $overdue = $arFields["OVERDUE"] == "Y" ? "Y" : "N";
         } elseif (is_set($arFields, "IS_OVERDUE")) {
             $overdue = $arFields["IS_OVERDUE"] == "Y" ? "Y" : "N";
         }
         $overdue = $overdue == "Y" ? "Y" : "N";
         $arFieldsI = array("TIMESTAMP_X" => $DB->GetNowFunction(), "DAY_CREATE" => $DB->CurrentDateFunction(), "C_NUMBER" => $maxNumber + 1, "TICKET_ID" => $ticketID, "IS_HIDDEN" => "'" . $hidden . "'", "IS_LOG" => "'" . $log . "'", "IS_OVERDUE" => "'" . $overdue . "'", "MESSAGE" => "'" . $DB->ForSql($arFields["MESSAGE"]) . "'", "MESSAGE_SEARCH" => "'" . $DB->ForSql(ToUpper($arFields["MESSAGE"])) . "'", "EXTERNAL_ID" => $externalID, "EXTERNAL_FIELD_1" => strlen($externalField1) > 0 ? "'" . $DB->ForSql($externalField1) . "'" : "null", "OWNER_USER_ID" => $ownerUserID, "OWNER_GUEST_ID" => $ownerGuestID, "OWNER_SID" => $ownerSid, "SOURCE_ID" => intval($arFields["MESSAGE_SOURCE_ID"]), "CREATED_USER_ID" => $createdUserID, "CREATED_GUEST_ID" => $createdGuestID, "CREATED_MODULE_NAME" => $createdModuleName, "MODIFIED_USER_ID" => $createdUserID, "MODIFIED_GUEST_ID" => $createdGuestID, "MESSAGE_BY_SUPPORT_TEAM" => $MessageBySupportTeam, "TASK_TIME" => $TASK_TIME, "NOT_CHANGE_STATUS" => "'" . $notChangeStatus . "'");
         CTimeZone::Disable();
         $arFieldsI["DATE_CREATE"] = $DB->CharToDateFunction(GetTime(time(), "FULL"));
         CTimeZone::Enable();
         if ($hidden != "Y" && $log != "Y" && $changeLastMessageDate == false) {
             if ($MessageBySupportTeam == "'Y'" || $maxNumber <= 0 && array_key_exists('SOURCE_SID', $arFields) && $arFields['SOURCE_SID'] === 'email') {
                 $arFieldsI["NOT_CHANGE_STATUS"] = "'N'";
             } else {
                 $arFieldsI["NOT_CHANGE_STATUS"] = "'Y'";
             }
         }
         if (intval($currentResponsibleUserID) > 0) {
             $arFieldsI["CURRENT_RESPONSIBLE_USER_ID"] = $currentResponsibleUserID;
         }
         $mid = $DB->Insert("b_ticket_message", $arFieldsI, $err_mess . __LINE__);
         if (intval($mid) > 0) {
             $not_image_extension_suffix = COption::GetOptionString("support", "NOT_IMAGE_EXTENSION_SUFFIX");
             $not_image_upload_dir = COption::GetOptionString("support", "NOT_IMAGE_UPLOAD_DIR");
             $max_size = COption::GetOptionString("support", "SUPPORT_MAX_FILESIZE");
             // сохраняем приаттаченные файлы
             $arFILES = $arFields["FILES"];
             if (is_array($arFILES) && count($arFILES) > 0) {
                 while (list($key, $arFILE) = each($arFILES)) {
                     if (strlen($arFILE["name"]) > 0) {
                         if ($bSupportTeam != "Y" && $bAdmin != "Y") {
                             $max_file_size = intval($max_size) * 1024;
                         }
                         $fes = "";
                         $upload_dir = "support";
                         if (!CFile::IsImage($arFILE["name"], $arFILE["type"])) {
                             $fes = $not_image_extension_suffix;
                             $arFILE["name"] .= $fes;
                             $upload_dir = $not_image_upload_dir;
                         }
                         if (!array_key_exists("MODULE_ID", $arFILE) || strlen($arFILE["MODULE_ID"]) <= 0) {
                             $arFILE["MODULE_ID"] = "support";
                         }
                         $fid = intval(CFile::SaveFile($arFILE, $upload_dir, $max_file_size));
                         if ($fid > 0) {
                             $md5 = md5(uniqid(mt_rand(), true) . time());
                             $arFILE["HASH"] = $md5;
                             $arFILE["FILE_ID"] = $fid;
                             $arFILE["MESSAGE_ID"] = $mid;
                             $arFILE["TICKET_ID"] = $ticketID;
                             $arFILE["EXTENSION_SUFFIX"] = $fes;
                             $arFields_fi = array("HASH" => "'" . $DB->ForSql($md5, 255) . "'", "MESSAGE_ID" => $mid, "FILE_ID" => $fid, "TICKET_ID" => $ticketID, "EXTENSION_SUFFIX" => strlen($fes) > 0 ? "'" . $DB->ForSql($fes, 255) . "'" : "null");
                             $link_id = $DB->Insert("b_ticket_message_2_file", $arFields_fi, $err_mess . __LINE__);
                             if (intval($link_id) > 0) {
                                 $arFILE["LINK_ID"] = $link_id;
                                 $arrFILES[] = $arFILE;
                             }
                         }
                     }
                 }
             }
             // если это не было скрытым сообщением или сообщение лога, то
             if ($notChangeStatus != "Y" && $hidden != "Y" && $log != "Y") {
                 // обновим ряд параметров обращения
                 if (!isset($arFields["AUTO_CLOSE_DAYS"])) {
                     $RESET_AUTO_CLOSE = "Y";
                 }
                 CTicket::UpdateLastParams($ticketID, $RESET_AUTO_CLOSE, $changeLastMessageDate, true);
                 // при необходимости создадим или удалим агенты-напоминальщики
                 //CTicketReminder::Update($ticketID);
             }
             if ($log != "Y") {
                 CSupportSearch::writeWordsInTable($mid, $siteID, $tTitle . " " . $arFields["MESSAGE"]);
             }
             //если была установлена галочка "не изменять статус обращени" - пересчитаем количество собщений
             if ($notChangeStatus == "Y" || $hidden == "Y") {
                 CTicket::UpdateMessages($ticketID);
             }
         }
     }
     return $mid;
 }
コード例 #4
0
ファイル: mobile_helper.php プロジェクト: mrdeadmouse/u136006
 public static function getUFForPostForm($arParams)
 {
     $arFileData = array();
     $arUF = $GLOBALS["USER_FIELD_MANAGER"]->GetUserFields($arParams["ENTITY_TYPE"], $arParams["ENTITY_ID"], LANGUAGE_ID);
     $ufCode = $arParams["UF_CODE"];
     if (!empty($arUF[$ufCode]) && !empty($arUF[$ufCode]["VALUE"])) {
         if ($arParams["IS_DISK_OR_WEBDAV_INSTALLED"]) {
             if (\Bitrix\Main\Config\Option::get('disk', 'successfully_converted', false) && CModule::IncludeModule('disk')) {
                 $userFieldManager = \Bitrix\Disk\Driver::getInstance()->getUserFieldManager();
                 $urlManager = \Bitrix\Disk\Driver::getInstance()->getUrlManager();
                 $userFieldManager->loadBatchAttachedObject($arUF[$ufCode]["VALUE"]);
                 foreach ($arUF[$ufCode]["VALUE"] as $attachedId) {
                     $attachedObject = $userFieldManager->getAttachedObjectById($attachedId);
                     if ($attachedObject) {
                         $file = $attachedObject->getObject();
                         $fileName = $file->getName();
                         $fileUrl = $urlManager->getUrlUfController('download', array('attachedId' => $attachedId));
                         $fileUrl = str_replace("/bitrix/tools/disk/uf.php", SITE_DIR . "mobile/ajax.php", $fileUrl);
                         $fileUrl = $fileUrl . (strpos($fileUrl, "?") === false ? "?" : "&") . "mobile_action=disk_uf_view&filename=" . $fileName;
                         if (\Bitrix\Disk\TypeFile::isImage($file) && ($realFile = $file->getFile())) {
                             $previewImageUrl = $urlManager->getUrlUfController('show', array('attachedId' => $attachedId, 'width' => 144, 'height' => 144, 'exact' => 'Y', 'signature' => \Bitrix\Disk\Security\ParameterSigner::getImageSignature($attachedId, 144, 144)));
                         } else {
                             $previewImageUrl = false;
                         }
                         $icon = CMobileHelper::mobileDiskGetIconByFilename($fileName);
                         $iconUrl = CComponentEngine::makePathFromTemplate('/bitrix/components/bitrix/mobile.disk.file.detail/images/' . $icon);
                         $fileFata = array('type' => $file->getExtension(), 'ufCode' => $ufCode, 'id' => $attachedId, 'extension' => $file->getExtension(), 'name' => $fileName, 'url' => $fileUrl, 'iconUrl' => $iconUrl);
                         if ($previewImageUrl) {
                             $fileFata['previewImageUrl'] = CHTTP::URN2URI($previewImageUrl);
                         }
                         $arFileData[] = $fileFata;
                     }
                 }
             } else {
                 $data = CWebDavIblock::getRootSectionDataForUser($GLOBALS["USER"]->GetID());
                 if (is_array($data)) {
                     $ibe = new CIBlockElement();
                     $dbWDFile = $ibe->GetList(array(), array('ID' => $arUF[$ufCode]["VALUE"], 'IBLOCK_ID' => $data["IBLOCK_ID"]), false, false, array('ID', 'IBLOCK_ID', 'PROPERTY_FILE'));
                     while ($arWDFile = $dbWDFile->Fetch()) {
                         if ($arFile = CFile::GetFileArray($arWDFile["PROPERTY_FILE_VALUE"])) {
                             if (CFile::IsImage($arFile["FILE_NAME"], $arFile["CONTENT_TYPE"])) {
                                 $imageResized = CFile::ResizeImageGet($arFile["ID"], array("width" => 144, "height" => 144), BX_RESIZE_IMAGE_EXACT, false, true);
                                 $previewImageUrl = $imageResized["src"];
                             } else {
                                 $previewImageUrl = false;
                             }
                             $fileExtension = GetFileExtension($arFile["FILE_NAME"]);
                             $fileData = array('type' => $fileExtension, 'ufCode' => $ufCode, 'id' => $arWDFile["ID"], 'extension' => $fileExtension, 'name' => $arFile["FILE_NAME"], 'url' => $arFile["SRC"]);
                             if ($previewImageUrl) {
                                 $fileData['previewImageUrl'] = CHTTP::URN2URI($previewImageUrl);
                             }
                             $arFileData[] = $fileData;
                         }
                     }
                 }
             }
         } else {
             $dbRes = CFile::GetList(array(), array("@ID" => implode(",", $arUF[$ufCode]["VALUE"])));
             while ($arFile = $dbRes->GetNext()) {
                 if (CFile::IsImage($arFile["FILE_NAME"], $arFile["CONTENT_TYPE"])) {
                     $imageResized = CFile::ResizeImageGet($arFile["ID"], array("width" => 144, "height" => 144), BX_RESIZE_IMAGE_EXACT, false, true);
                     $previewImageUrl = $imageResized["src"];
                 } else {
                     $previewImageUrl = false;
                 }
                 $fileExtension = GetFileExtension($arFile["FILE_NAME"]);
                 $fileData = array('type' => $fileExtension, 'ufCode' => $ufCode, 'id' => $arFile["ID"], 'extension' => $fileExtension, 'name' => $arFile["FILE_NAME"], 'downloadUrl' => $arFile["SRC"]);
                 if ($previewImageUrl) {
                     $fileData['previewImageUrl'] = CHTTP::URN2URI($previewImageUrl);
                 }
                 $arFileData[] = $fileData;
             }
         }
     }
     return $arFileData;
 }
コード例 #5
0
ファイル: component.php プロジェクト: spas-viktor/books
     // process element property files
     $arResult["ELEMENT_FILES"] = array();
     foreach ($arResult["PROPERTY_LIST"] as $propertyID) {
         $arProperty = $arResult["PROPERTY_LIST_FULL"][$propertyID];
         if ($arProperty["PROPERTY_TYPE"] == "F") {
             $arValues = array();
             if (intval($propertyID) > 0) {
                 foreach ($arResult["ELEMENT_PROPERTIES"][$propertyID] as $arProperty) {
                     $arValues[] = $arProperty["VALUE"];
                 }
             } else {
                 $arValues[] = $arResult["ELEMENT"][$propertyID];
             }
             foreach ($arValues as $value) {
                 if ($arFile = CFile::GetFileArray($value)) {
                     $arFile["IS_IMAGE"] = CFile::IsImage($arFile["FILE_NAME"], $arFile["CONTENT_TYPE"]);
                     $arResult["ELEMENT_FILES"][$value] = $arFile;
                 }
             }
         }
     }
     $bShowForm = true;
 } else {
     $bShowForm = true;
 }
 if ($bShowForm) {
     // prepare form data if some errors occured
     if (count($arResult["ERRORS"]) > 0) {
         //echo "<pre>",htmlspecialcharsbx(print_r($arUpdateValues, true)),"</pre>";
         foreach ($arUpdateValues as $key => $value) {
             if ($key == "IBLOCK_SECTION") {
コード例 #6
0
ファイル: storage.php プロジェクト: rasuldev/torino
 public static function OnFileSave(&$arFile, $strFileName, $strSavePath, $bForceMD5 = false, $bSkipExt = false)
 {
     if (!$arFile["tmp_name"] && !array_key_exists("content", $arFile)) {
         return false;
     }
     if (array_key_exists("bucket", $arFile)) {
         $bucket = $arFile["bucket"];
     } else {
         $bucket = CCloudStorage::FindBucketForFile($arFile, $strFileName);
     }
     if (!is_object($bucket)) {
         return false;
     }
     if (!$bucket->Init()) {
         return false;
     }
     $copySize = false;
     $subDir = "";
     $filePath = "";
     if (array_key_exists("content", $arFile)) {
         $arFile["tmp_name"] = CTempFile::GetFileName($arFile["name"]);
         CheckDirPath($arFile["tmp_name"]);
         $fp = fopen($arFile["tmp_name"], "ab");
         if ($fp) {
             fwrite($fp, $arFile["content"]);
             fclose($fp);
         }
     }
     if (array_key_exists("bucket", $arFile)) {
         $newName = bx_basename($arFile["tmp_name"]);
         $prefix = $bucket->GetFileSRC("/");
         $subDir = substr($arFile["tmp_name"], strlen($prefix));
         $subDir = substr($subDir, 0, -strlen($newName) - 1);
     } else {
         if ($bForceMD5 != true && COption::GetOptionString("main", "save_original_file_name", "N") == "Y") {
             if (COption::GetOptionString("main", "convert_original_file_name", "Y") == "Y") {
                 $newName = CCloudStorage::translit($strFileName);
             } else {
                 $newName = $strFileName;
             }
         } else {
             $strFileExt = $bSkipExt == true ? '' : strrchr($strFileName, ".");
             $newName = md5(uniqid(mt_rand(), true)) . $strFileExt;
         }
         //check for double extension vulnerability
         $newName = RemoveScriptExtension($newName);
         while (true) {
             $strRand = md5(mt_rand());
             $strRand = substr($strRand, 0, 3) . "/" . $strRand;
             if (substr($strSavePath, -1) == "/") {
                 $subDir = $strSavePath . $strRand;
             } else {
                 $subDir = $strSavePath . "/" . $strRand;
             }
             $subDir = ltrim($subDir, "/");
             $filePath = "/" . $subDir . "/" . $newName;
             if (!$bucket->FileExists($filePath)) {
                 break;
             }
         }
         $targetPath = $bucket->GetFileSRC("/");
         if (strpos($arFile["tmp_name"], $targetPath) === 0) {
             $arDbFile = array("SUBDIR" => "", "FILE_NAME" => substr($arFile["tmp_name"], strlen($targetPath)), "CONTENT_TYPE" => $arFile["type"]);
             $copyPath = $bucket->FileCopy($arDbFile, $filePath);
             if (!$copyPath) {
                 return false;
             }
             $copySize = $bucket->GetFileSize("/" . urldecode(substr($copyPath, strlen($targetPath))));
         } else {
             $imgArray = CFile::GetImageSize($arFile["tmp_name"], true, false);
             if (is_array($imgArray) && $imgArray[2] == IMAGETYPE_JPEG) {
                 $exifData = CFile::ExtractImageExif($arFile["tmp_name"]);
                 if ($exifData && isset($exifData['Orientation'])) {
                     $properlyOriented = CFile::ImageHandleOrientation($exifData['Orientation'], $arFile["tmp_name"]);
                     if ($properlyOriented) {
                         $jpgQuality = intval(COption::GetOptionString('main', 'image_resize_quality', '95'));
                         if ($jpgQuality <= 0 || $jpgQuality > 100) {
                             $jpgQuality = 95;
                         }
                         imagejpeg($properlyOriented, $arFile["tmp_name"], $jpgQuality);
                     }
                 }
             }
             if (!$bucket->SaveFile($filePath, $arFile)) {
                 return false;
             }
         }
     }
     $arFile["HANDLER_ID"] = $bucket->ID;
     $arFile["SUBDIR"] = $subDir;
     $arFile["FILE_NAME"] = $newName;
     $arFile["WIDTH"] = 0;
     $arFile["HEIGHT"] = 0;
     if (array_key_exists("bucket", $arFile)) {
         $arFile["WIDTH"] = $arFile["width"];
         $arFile["HEIGHT"] = $arFile["height"];
         $arFile["size"] = $arFile["file_size"];
     } elseif ($copySize !== false) {
         $arFile["size"] = $copySize;
         $bucket->IncFileCounter($copySize);
     } else {
         $bucket->IncFileCounter(filesize($arFile["tmp_name"]));
         $flashEnabled = !CFile::IsImage($arFile["ORIGINAL_NAME"], $arFile["type"]);
         $imgArray = CFile::GetImageSize($arFile["tmp_name"], true, $flashEnabled);
         if (is_array($imgArray)) {
             $arFile["WIDTH"] = $imgArray[0];
             $arFile["HEIGHT"] = $imgArray[1];
         }
     }
     if (isset($arFile["old_file"])) {
         CFile::DoDelete($arFile["old_file"]);
     }
     return true;
 }
コード例 #7
0
 }
 $arParams["PATH_TO_FONT"] = str_replace(array("\\", "//"), "/", trim($arParams["PATH_TO_FONT"]));
 if (file_exists($_SERVER['DOCUMENT_ROOT'] . $arParams["PATH_TO_FONT"])) {
     $arParams["PATH_TO_FONT"] = $_SERVER['DOCUMENT_ROOT'] . $arParams["PATH_TO_FONT"];
 } else {
     $arParams["PATH_TO_FONT"] = str_replace(array("\\", "//"), "/", $_SERVER['DOCUMENT_ROOT'] . "/" . BX_ROOT . "/modules/photogallery/fonts/" . trim($arParams["PATH_TO_FONT"]));
     $arParams["PATH_TO_FONT"] = file_exists($arParams["PATH_TO_FONT"]) ? $arParams["PATH_TO_FONT"] : "";
 }
 $arParams["WATERMARK_COLOR"] = '#' . trim($arParams["WATERMARK_COLOR"], ' #');
 $arParams["WATERMARK_SIZE"] = intVal($arParams["WATERMARK_SIZE"]);
 $arParams["WATERMARK_FILE_REL"] = '/' . trim($arParams["WATERMARK_FILE"], ' /');
 $arParams["WATERMARK_FILE"] = str_replace(array("\\", "//"), "/", $_SERVER['DOCUMENT_ROOT'] . $arParams["WATERMARK_FILE_REL"]);
 $arParams["WATERMARK_FILE"] = file_exists($arParams["WATERMARK_FILE"]) ? $arParams["WATERMARK_FILE"] : "";
 $arParams["WATERMARK_FILE_ORDER"] = strtolower($arParams["WATERMARK_FILE_ORDER"]);
 $arParams["WATERMARK_POSITION"] = trim($arParams["WATERMARK_POSITION"]);
 if ($arParams["WATERMARK_FILE"] && CFile::IsImage($arParams["WATERMARK_FILE"])) {
     $imgArray = CFile::GetImageSize($arParams["WATERMARK_FILE"]);
     $arParams["WATERMARK_FILE_WIDTH"] = $imgArray[0];
     $arParams["WATERMARK_FILE_HEIGHT"] = $imgArray[1];
 } else {
     $arParams["WATERMARK_FILE"] = "";
     $arParams["WATERMARK_FILE_REL"] = "";
 }
 $arPositions = array("TopLeft", "TopCenter", "TopRight", "CenterLeft", "Center", "CenterRight", "BottomLeft", "BottomCenter", "BottomRight");
 $arPositions2 = array("tl", "tc", "tr", "ml", "mc", "mr", "bl", "bc", "br");
 if (in_array($arParams["WATERMARK_POSITION"], $arPositions2)) {
     $arParams["WATERMARK_POSITION"] = str_replace($arPositions2, $arPositions, $arParams["WATERMARK_POSITION"]);
 } else {
     $arParams["WATERMARK_POSITION"] = "BottomRight";
 }
 $arParams["WATERMARK_TRANSPARENCY"] = trim($arParams["WATERMARK_TRANSPARENCY"]);
コード例 #8
0
ファイル: html_parser.php プロジェクト: rasuldev/torino
function __MPLParseRecordsHTML(&$response, &$arParams, &$arResult)
{
    $JSResult = array();
    $FHParser = new MPLSimpleHTMLParser($response);
    $SHParser = new MPLSimpleHTMLParser($GLOBALS["APPLICATION"]->GetHeadStrings());
    if ($_REQUEST["MODE"] == "LIST") {
        $messageList = $SHParser->getInnerHTML('<!--LOAD_SCRIPT-->', '<!--END_LOAD_SCRIPT-->') . $FHParser->getInnerHTML('<!--RCRDLIST_' . $arParams["ENTITY_XML_ID"] . '-->', '<!--RCRDLIST_END_' . $arParams["ENTITY_XML_ID"] . '-->');
        $messageNavigation = $FHParser->getTagHTML('a[class=feed-com-all]');
        $JSResult += array('status' => true, 'messageList' => $messageList, 'navigation' => $messageNavigation);
    } else {
        if ($_REQUEST["MODE"] == "RECORD") {
            $arParams["RESULT"] = !!$arParams["RESULT"] ? $arParams["RESULT"] : $_REQUEST["MID"];
            $message = $FHParser->getInnerHTML('<!--RCRD_' . $arParams["ENTITY_XML_ID"] . "-" . $arParams["RESULT"] . '-->', '<!--RCRD_END_' . $arParams["ENTITY_XML_ID"] . "-" . $arParams["RESULT"] . '-->');
            $res = $arParams["RECORDS"][$arParams["RESULT"]];
            if (!!$res["FILES"] && $res["PANELS"]["EDIT"] == "Y") {
                $_SESSION["MFI_UPLOADED_FILES_" . $arParams["mfi"]] = array();
                foreach ($res["FILES"] as $key => $arFile) {
                    $_SESSION["MFI_UPLOADED_FILES_" . $arParams["mfi"]][] = $key;
                    if (CFile::IsImage($arFile["FILE_NAME"], $arFile["CONTENT_TYPE"])) {
                        $aImgNew = CFile::ResizeImageGet($key, array("width" => 90, "height" => 90), BX_RESIZE_IMAGE_EXACT, true);
                        $res["FILES"][$key]["THUMBNAIL"] = $aImgNew["src"];
                        $aImgNew = CFile::ResizeImageGet($key, array("width" => $arParams["IMAGE_SIZE"], "height" => $arParams["IMAGE_SIZE"]), BX_RESIZE_IMAGE_PROPORTIONAL, true);
                        $res["FILES"][$key]["SRC"] = $aImgNew["src"];
                    }
                }
            }
            $JSResult += array('errorMessage' => $arParams["ERROR_MESSAGE"], 'okMessage' => $arParams["OK_MESSAGE"], 'status' => true, 'message' => $SHParser->getInnerHTML('<!--LOAD_SCRIPT-->', '<!--END_LOAD_SCRIPT-->') . $message, 'messageBBCode' => $arParams["RECORDS"][$arParams["RESULT"]]["~POST_MESSAGE_TEXT"], 'messageId' => array($arParams["ENTITY_XML_ID"], $arParams["RESULT"]), 'messageFields' => $res);
        }
    }
    $arResult["JSON"] = $JSResult;
}
コード例 #9
0
ファイル: iblock.php プロジェクト: mrdeadmouse/u136006
 /**
  * @param $id
  * @param $wfId
  * @param $params
  * @return array
  */
 public function getHistoryFileData($id, $wfId, &$params)
 {
     $fullpath = '';
     $options = $arFile = $arr = array();
     $io = self::GetIo();
     $arFilter = array("IBLOCK_ID" => isset($this->arParams['element_array']['ID']) && $this->arParams['element_array']['ID'] == $id ? $this->arParams['element_array']['IBLOCK_ID'] : $this->IBLOCK_ID, "ID" => $id, "SHOW_HISTORY" => "Y", "CHECK_PERMISSIONS" => "Y");
     if ($this->permission < "U") {
         $arFilter["SHOW_HISTORY"] = "N";
     }
     if (($this->workflow == 'bizproc' || $this->workflow == 'bizproc_limited') && $wfId > 0) {
         $history = new CBPHistoryService();
         $db_res = $history->GetHistoryList(array("ID" => "DESC"), array("DOCUMENT_ID" => array($this->wfParams['DOCUMENT_TYPE'][0], $this->wfParams['DOCUMENT_TYPE'][1], $id), "ID" => $wfId), false, false, array("ID", "DOCUMENT", "NAME"));
         if ($db_res && ($arr = $db_res->Fetch())) {
             $arFile = array("SRC" => $arr["DOCUMENT"]["PROPERTIES"][$this->file_prop]["VALUE"], "NAME" => $arr["DOCUMENT"]["NAME"]);
             $arr["NAME"] = $arr["DOCUMENT"]["NAME"];
             $fullpath = urldecode($arFile["SRC"]);
             if (substr($fullpath, 0, 4) != "http") {
                 $fullpath = $io->GetPhysicalName($_SERVER['DOCUMENT_ROOT'] . $arFile["SRC"]);
             } else {
                 $fullpath = CWebDavTools::urlEncode($fullpath);
             }
             $arTmpFile = CFile::MakeFileArray($fullpath);
             $fullpath = $arTmpFile['tmp_name'];
             $arFile["FILE_SIZE"] = $arTmpFile["size"];
         }
     } else {
         $arFilter['CHECK_PERMISSIONS'] = 'N';
         //check permissions manual! While infoblock perm's check by every section's (in dropped - we have error).
         $rs = CIBlockElement::GetList(array(), $arFilter, false, array("nTopCount" => 1), array("ID", "NAME", "TIMESTAMP_X", "IBLOCK_ID", "PROPERTY_" . $this->file_prop));
         if ($rs && ($arr = $rs->Fetch())) {
             if (empty($this->arParams["element_array"])) {
                 $this->arParams["element_array"] = $arr;
             }
             $arFile = CFile::GetFileArray($arr["PROPERTY_FILE_VALUE"]);
             $options["from_cloud"] = intval($arFile['HANDLER_ID']) > 0 ? "Y" : "N";
             $arTmpFile = array();
             if (CFile::IsImage($arFile["FILE_NAME"], $arFile["CONTENT_TYPE"])) {
                 if ($params["width"] > 0 || $params["height"] > 0) {
                     $arTmpFile = CFile::ResizeImageGet($arFile, array("width" => $params["width"], "height" => $params["height"]), $params["exact"] == "Y" ? BX_RESIZE_IMAGE_EXACT : BX_RESIZE_IMAGE_PROPORTIONAL, true, false, true);
                     $arTmpFile['tmp_name'] = ($options["from_cloud"] == "Y" ? "" : $_SERVER["DOCUMENT_ROOT"]) . $arTmpFile["src"];
                     $options["resized"] = "Y";
                     $arFile["FILE_SIZE"] = $arTmpFile["size"];
                     $arFile["SRC"] = $arTmpFile["src"];
                 }
                 if ($params["cache_image"] == "Y") {
                     $options["cache_time"] = 86400;
                 }
             } else {
                 $params["cache_image"] = "N";
             }
             if (empty($arTmpFile)) {
                 $arTmpFile = CFile::MakeFileArray($arr["PROPERTY_FILE_VALUE"]);
             }
             $fullpath = $arTmpFile['tmp_name'];
         }
     }
     $elementName = $arr['NAME'];
     return array($arFile, $options, $fullpath, $elementName);
 }
コード例 #10
0
ファイル: component.php プロジェクト: mrdeadmouse/u136006
                }
            }
        }
    }
} elseif (is_array($_SESSION[$varKeyFiles])) {
    foreach ($_SESSION[$varKeyFiles] as $fileID) {
        $rsFile = CFile::GetByID($fileID);
        if ($arFile = $rsFile->Fetch()) {
            if (CFile::IsImage($arFile["FILE_NAME"], $arFile["CONTENT_TYPE"])) {
                $image_resize = CFile::ResizeImageGet($arFile, array("width" => $arParams["THUMBNAIL_SIZE"], "height" => $arParams["THUMBNAIL_SIZE"]), $arParams["THUMBNAIL_RESIZE_METHOD"] == "EXACT" ? BX_RESIZE_IMAGE_EXACT : BX_RESIZE_IMAGE_PROPORTIONAL, true, false, false);
                $arResult["FILES"][] = array("id" => $fileID, "src" => $image_resize["src"], "name" => $arFile["ORIGINAL_NAME"]);
            } else {
                $arResult["FILES"][] = array("id" => $fileID, "src" => "", "name" => $arFile["ORIGINAL_NAME"]);
            }
        }
    }
}
if (is_array($_SESSION[$varKeyImages])) {
    foreach ($_SESSION[$varKeyImages] as $fileID) {
        $rsFile = CFile::GetByID($fileID);
        if ($arFile = $rsFile->Fetch()) {
            if (CFile::IsImage($arFile["FILE_NAME"], $arFile["CONTENT_TYPE"])) {
                $image_resize = CFile::ResizeImageGet($arFile, array("width" => $arParams["THUMBNAIL_SIZE"], "height" => $arParams["THUMBNAIL_SIZE"]), $arParams["THUMBNAIL_RESIZE_METHOD"] == "EXACT" ? BX_RESIZE_IMAGE_EXACT : BX_RESIZE_IMAGE_PROPORTIONAL, true, false, false);
                $arResult["FILES"][] = array("id" => $fileID, "src" => $image_resize["src"], "name" => $arFile["ORIGINAL_NAME"]);
            } else {
                $arResult["FILES"][] = array("id" => $fileID, "src" => "", "name" => $arFile["ORIGINAL_NAME"]);
            }
        }
    }
}
$this->IncludeComponentTemplate();
コード例 #11
0
ファイル: show_file.php プロジェクト: vim84/b-markt
    }
    if (empty($arResult["MESSAGE"])) {
        $arError = array("code" => "EMPTY MESSAGE", "title" => GetMessage("F_EMPTY_MID"));
    } elseif ($arParams["PERMISSION"]) {
        if ($arParams["PERMISSION"] < "E") {
            $arError = array("code" => "NOT RIGHT", "title" => GetMessage("F_NOT_RIGHT"));
        }
    } elseif (ForumCurrUserPermissions($arResult["MESSAGE"]["FORUM_ID"]) < "E") {
        $arError = array("code" => "NOT RIGHT", "title" => GetMessage("F_NOT_RIGHT"));
    }
}
if (!empty($arError)) {
    require $_SERVER["DOCUMENT_ROOT"] . BX_ROOT . "/modules/main/include/prolog_after.php";
    ShowError(!empty($arError["title"]) ? $arError["title"] : $arError["code"]);
    require $_SERVER["DOCUMENT_ROOT"] . BX_ROOT . "/modules/main/include/epilog.php";
    die;
}
// *************************/Default params*************************************************************
set_time_limit(0);
$options = array();
if ($arParams["ACTION"] == "download") {
    $options["force_download"] = true;
}
if (CFile::IsImage($arResult["FILE"]["ORIGINAL_NAME"], $arResult["FILE"]["CONTENT_TYPE"])) {
    if ($arParams['WIDTH'] > 0 && $arParams['HEIGHT'] > 0) {
        $arFileTmp = CFile::ResizeImageGet($arResult['FILE'], array("width" => $arParams["WIDTH"], "height" => $arParams["HEIGHT"]), BX_RESIZE_IMAGE_PROPORTIONAL, true);
        $arResult['FILE']["FILE_SIZE"] = $arFileTmp['size'];
        $arResult['FILE']["SRC"] = $arFileTmp['src'];
    }
}
CFile::ViewByUser($arResult["FILE"], $options);
コード例 #12
0
ファイル: action_iblock.php プロジェクト: mrdeadmouse/u136006
        $file_res = array("status" => "success");
        if (!empty($ob->LAST_ERROR)) {
            $file_res = array("status" => "error", "error" => array(array("id" => "error", "text" => $ob->LAST_ERROR)));
        }
    } else {
        $bVarsFromForm = true;
        $file_res = array("status" => "error", "error" => $arFileError);
    }
    // Main info about file
    // Additional info about file
    $file_res["id"] = $arElement["ID"];
    $file_res["number"] = $number;
    $file_res["title"] = $name;
    $file_res["description"] = $arFields["PREVIEW_TEXT"];
    $file_res["content_type"] = $arFile["type"];
    if (CFile::IsImage($name, $arFile["type"])) {
        $file_res["width"] = 0;
        $file_res["height"] = 0;
        $imgArray = CFile::GetImageSize($arFile["tmp_name"], true);
        if (is_array($imgArray)) {
            $file_res["width"] = $imgArray[0];
            $file_res["height"] = $imgArray[1];
        }
    }
    $result["FILE"][$name] = $file_res;
    $result["FILE_INFO"][$arFile["name"]] = $file_res;
}
/************** Answer **********************************************/
$url = $wuo->getUrl();
$bVarsFromForm = $bVarsFromForm ? $bVarsFromForm : !empty($arError);
$uploader = array();
コード例 #13
0
ファイル: class.php プロジェクト: webgksupport/alpina
 private function parseHTML($response, $mode = "RECORD")
 {
     include_once __DIR__ . "/html_parser.php";
     $JSResult = array();
     $FHParser = new MPLSimpleHTMLParser($response);
     $SHParser = new MPLSimpleHTMLParser($this->getApplication()->GetHeadStrings());
     $arParams =& $this->arParams;
     if ($mode == "LIST") {
         $messageList = $SHParser->getInnerHTML('<!--LOAD_SCRIPT-->', '<!--END_LOAD_SCRIPT-->') . $FHParser->getInnerHTML('<!--RCRDLIST_' . $arParams["ENTITY_XML_ID"] . '-->', '<!--RCRDLIST_END_' . $arParams["ENTITY_XML_ID"] . '-->');
         $messageNavigation = $FHParser->getTagHTML('a[class=feed-com-all]');
         $JSResult += array('status' => "success", 'messageList' => $messageList, 'navigation' => $messageNavigation);
     } else {
         if ($mode == "RECORD") {
             $record = $arParams["RESULT"];
             if ($record <= 0) {
                 $filter = $this->request->getQuery("FILTER");
                 $record = is_array($filter) ? intval($filter["ID"]) : 0;
             }
             $message = $FHParser->getInnerHTML('<!--RCRD_' . $arParams["ENTITY_XML_ID"] . "-" . $record . '-->', '<!--RCRD_END_' . $arParams["ENTITY_XML_ID"] . "-" . $record . '-->');
             $res = false;
             if (array_key_exists($record, $arParams["RECORDS"]) && array_key_exists($record, $arParams["~RECORDS"])) {
                 $res = $arParams["RECORDS"][$record];
                 $res = array_merge($arParams["~RECORDS"][$record], $res, $this->isWeb() ? $res["WEB"] : $res["MOBILE"]);
                 unset($res["WEB"]);
                 unset($res["MOBILE"]);
                 if (!!$res["FILES"] && ($this->arParams["RIGHTS"]["EDIT"] == "ALL" || $this->arParams["RIGHTS"]["EDIT"] == "Y" || $this->arParams["RIGHTS"]["EDIT"] == "OWN" && $res["AUTHOR"]["ID"] == $this->getUser()->getId())) {
                     $_SESSION["MFI_UPLOADED_FILES_" . $arParams["mfi"]] = array();
                     foreach ($res["FILES"] as $key => $arFile) {
                         $_SESSION["MFI_UPLOADED_FILES_" . $arParams["mfi"]][] = $key;
                         if (CFile::IsImage($arFile["FILE_NAME"], $arFile["CONTENT_TYPE"])) {
                             $aImgNew = CFile::ResizeImageGet($key, array("width" => 90, "height" => 90), BX_RESIZE_IMAGE_EXACT, true);
                             $res["FILES"][$key]["THUMBNAIL"] = $aImgNew["src"];
                             $aImgNew = CFile::ResizeImageGet($key, array("width" => $arParams["IMAGE_SIZE"], "height" => $arParams["IMAGE_SIZE"]), BX_RESIZE_IMAGE_PROPORTIONAL, true);
                             $res["FILES"][$key]["SRC"] = $aImgNew["src"];
                         }
                     }
                 }
             }
             $JSResult += array('errorMessage' => $arParams["ERROR_MESSAGE"], 'okMessage' => $arParams["OK_MESSAGE"], 'status' => "success", 'message' => $SHParser->getInnerHTML('<!--LOAD_SCRIPT-->', '<!--END_LOAD_SCRIPT-->') . $message, 'messageBBCode' => $arParams["~RECORDS"][$record]["~POST_MESSAGE_TEXT"], 'messageId' => array($arParams["ENTITY_XML_ID"], $record), 'messageFields' => $res);
         }
     }
     return $JSResult;
 }
コード例 #14
0
ファイル: CUserEx.php プロジェクト: Hawkart/megatv
 /**
  * При загрузке аватара уменьшаем его размер до 150х150px
  */
 public static function updateAvatar($USER_ID)
 {
     $imageMaxWidth = 216;
     // Максимальная ширина уменьшенной картинки
     $imageMaxHeight = 216;
     // Максимальная высота уменьшенной картинки
     $rsUser = \CUser::GetByID($USER_ID);
     $arUser = $rsUser->Fetch();
     if (intval($arUser["PERSONAL_PHOTO"]) > 0) {
         $arFile = \CFile::GetFileArray($arUser["PERSONAL_PHOTO"]);
         // проверяем, что файл является картинкой
         if (!\CFile::IsImage($arFile["FILE_NAME"])) {
             echo "не является картинкой";
             continue;
         }
         // Если размер больше допустимого
         if ($arFile["WIDTH"] > $imageMaxWidth || $arFile["HEIGHT"] > $imageMaxHeight) {
             // Временная картинка
             $tmpFilePath = $_SERVER['DOCUMENT_ROOT'] . "/upload/tmp/" . $arFile["FILE_NAME"];
             // Уменьшаем картинку
             $resizeRez = \CFile::ResizeImageFile($source = $_SERVER['DOCUMENT_ROOT'] . $arFile["SRC"], $dest = $tmpFilePath, array('width' => $imageMaxWidth, 'height' => $imageMaxHeight), $resizeType = BX_RESIZE_IMAGE_EXACT, $waterMark = array(), $jpgQuality = 95);
             // Записываем изменение в свойство
             if ($resizeRez && $tmpFilePath) {
                 $arNewFile = \CFile::MakeFileArray($tmpFilePath);
                 $arNewFile['del'] = "Y";
                 $arNewFile['old_file'] = $arUser['PERSONAL_PHOTO'];
                 $arNewFile["MODULE_ID"] = "main";
                 $fields['PERSONAL_PHOTO'] = $arNewFile;
                 $user = new \CUser();
                 $user->Update($arUser["ID"], $fields);
                 $rsUser = \CUser::GetByID($USER_ID);
                 $arUser = $rsUser->Fetch();
                 // Удалим временный файл
                 unlink($tmpFilePath);
             }
         }
     }
     return $arUser;
 }
コード例 #15
0
<?php

if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) {
    die;
}
if (sizeof($arResult['FILES']) <= 0) {
    return;
}
WDUFLoadStyle();
$jsIds = "";
foreach ($arResult['FILES'] as $id => $arWDFile) {
    if (CFile::IsImage($arWDFile['NAME'])) {
        $nodeId = "webdav-inline-" . $id . "-" . randString(4);
        $jsIds .= $jsIds !== "" ? ', "' . $nodeId . '"' : '"' . $nodeId . '"';
        ?>
<img src="<?php 
        echo CMobileLazyLoad::getBase64Stub();
        ?>
" <?php 
        ?>
 border="0" <?php 
        ?>
 data-preview-src="<?php 
        echo $arWDFile['SMALL_SRC'];
        ?>
" <?php 
        ?>
 data-src="<?php 
        echo $arWDFile['SRC'];
        ?>
" <?php 
コード例 #16
0
ファイル: template.php プロジェクト: rasuldev/torino
    ?>
_old_id<?php 
    echo $postFix;
    ?>
" value="<?php 
    echo $res;
    ?>
" />
		<?php 
    echo CFile::InputFile($arParams["arUserField"]["FIELD_NAME"], 0, $res, false, 0, "", "", 0, "", ' value="' . $res . '"', true, isset($arParams['SHOW_FILE_PATH']) ? $arParams['SHOW_FILE_PATH'] : true);
    ?>
		<br>
<?php 
    $arFile = CFile::GetFileArray($res);
    if ($arFile) {
        if (CFile::IsImage($arFile["SRC"], $arFile["CONTENT_TYPE"])) {
            echo CFile::ShowImage($arFile, isset($arParams["FILE_MAX_WIDTH"]) ? (int) $arParams["FILE_MAX_WIDTH"] : 0, isset($arParams["FILE_MAX_HEIGHT"]) ? (int) $arParams["FILE_MAX_HEIGHT"] : 0, null, '', false, 0, 0, 0, !empty($arParams['FILE_URL_TEMPLATE']) ? $arParams['FILE_URL_TEMPLATE'] : '');
        } else {
            if ($arParams['FILE_URL_TEMPLATE'] != '') {
                $src = CComponentEngine::MakePathFromTemplate($arParams['FILE_URL_TEMPLATE'], array('file_id' => $arFile["ID"]));
            } else {
                $src = $arFile["SRC"];
            }
            echo '<a href="' . htmlspecialcharsbx($src) . '">' . htmlspecialcharsbx($arFile["FILE_NAME"]) . '</a> (' . CFile::FormatSize($arFile["FILE_SIZE"]) . ')';
        }
    }
    ?>
	</div>
	<?php 
}
?>
コード例 #17
0
##############################################
# Bitrix: SiteManager                        #
# Copyright (c) 2002 - 2011 Bitrix           #
# http://www.bitrixsoft.com                  #
# mailto:admin@bitrixsoft.com                #
##############################################
*/
require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php";
if (CModule::IncludeModule("support") && strlen($hash) > 0) {
    $rsFiles = CTicket::GetFileList($v1 = "s_id", $v2 = "asc", array("HASH" => $hash));
    if ($arFile = $rsFiles->Fetch()) {
        set_time_limit(0);
        if ($action == "download") {
            CFile::ViewByUser($arFile, array("force_download" => true));
        } else {
            if (substr($arFile["CONTENT_TYPE"], 0, 6) === 'image/' && CFile::IsImage($arFile["FILE_NAME"], $arFile["CONTENT_TYPE"]) && (!empty($arFile["SRC"]) && CFile::GetImageSize($_SERVER["DOCUMENT_ROOT"] . $arFile["SRC"]) || $arFile["WIDTH"] > 0 && $arFile["HEIGHT"] > 0)) {
                CFile::ViewByUser($arFile, array("content_type" => $arFile["CONTENT_TYPE"]));
            } else {
                // check extension
                $ar = pathinfo($arFile["ORIGINAL_NAME"]);
                $ext = $ar["extension"];
                switch (strtolower($ext)) {
                    case "xla":
                    case "xlb":
                    case "xlc":
                    case "xll":
                    case "xlm":
                    case "xls":
                    case "xlsx":
                    case "xlt":
                    case "xlw":
コード例 #18
0
ファイル: functions.php プロジェクト: mrdeadmouse/u136006
    function __build_item_info(&$res, $arParams, $WrapLongWords = false)
    {
        global $DB, $USER;
        static $bTheFirstTimeonPage = true;
        static $bShowWebdav = true;
        static $arBPTemplates = array();
        static $arOfficeExtensions = false;
        static $checkParentSectionIsLink = array();
        $nameTemplate = "#NOBR##LAST_NAME# #NAME##/NOBR#";
        static $arNameFormats = array();
        if (!isset($arNameFormats[SITE_ID])) {
            $arNameFormats[SITE_ID] = CSite::GetNameFormat(false);
        }
        if (isset($arNameFormats[SITE_ID])) {
            $nameTemplate = $arNameFormats[SITE_ID];
        }
        if (!$arOfficeExtensions) {
            $arOfficeExtensions = __wd_get_office_extensions();
        }
        if (!isset($arParams["OBJECT"])) {
            return;
        }
        $ob = $arParams["OBJECT"];
        static $allowExtDocServices = null;
        if ($allowExtDocServices === null) {
            $allowExtDocServicesGlobal = CWebDavTools::allowUseExtServiceGlobal();
            $allowExtDocServicesLocal = CWebDavTools::allowUseExtServiceLocal();
            $allowExtDocServices = $allowExtDocServicesGlobal;
            if ($ob->arRootSection['UF_USE_EXT_SERVICES'] && $allowExtDocServicesLocal) {
                $allowExtDocServices = 'Y' == CWebDavIblock::resolveDefaultUseExtServices($ob->arRootSection['UF_USE_EXT_SERVICES']);
            }
        }
        static $rootDataForCurrentUser = null;
        static $isUserLib = null;
        if ($rootDataForCurrentUser === null && $USER->getId()) {
            $rootDataForCurrentUser = CWebDavIblock::getRootSectionDataForUser($USER->getId());
            $isUserLib = $ob->attributes['user_id'] == $USER->getId() && !($ob->meta_state == CWebDavIblock::DROPPED);
        }
        static $isExtranetUser = null;
        if ($isExtranetUser === null) {
            $isExtranetUser = !$USER->getId() || !CWebDavTools::isIntranetUser($USER->getId());
        }
        $bInTrash = "/" . $ob->meta_names["TRASH"]["alias"] == $ob->_udecode($ob->_path);
        if ($res["TYPE"] != "S" && $arBPTemplates != $arParams["TEMPLATES"]) {
            $bShowWebdav = true;
            $arBPTemplates = $arParams["TEMPLATES"];
            if (is_array($arParams["TEMPLATES"]) && !empty($arParams["TEMPLATES"])) {
                foreach ($arParams["TEMPLATES"] as $key => $arTemplateState) {
                    if (in_array($arTemplateState["AUTO_EXECUTE"], array(2, 3, 6, 7)) && (is_array($arTemplateState["PARAMETERS"]) || is_array($arTemplateState["TEMPLATE_PARAMETERS"]))) {
                        $arTemplateState["TEMPLATE_PARAMETERS"] = is_array($arTemplateState["PARAMETERS"]) ? $arTemplateState["PARAMETERS"] : $arTemplateState["TEMPLATE_PARAMETERS"];
                        foreach ($arTemplateState["TEMPLATE_PARAMETERS"] as $val) {
                            if ($val["Required"] == 1 && empty($val["Default"])) {
                                $bShowWebdav = false;
                                break;
                            }
                        }
                    }
                }
            }
        }
        $res["bShowWebDav"] = $bShowWebdav;
        /************** Grid Data ******************************************/
        $arActions = array();
        if ($res["TYPE"] == "S") {
            $arActions["section_open"] = array("ICONCLASS" => "section_open", "TITLE" => GetMessage("WD_OPEN_SECTION"), "TEXT" => GetMessage("WD_OPEN"), "ONCLICK" => "jsUtils.Redirect([], '" . CUtil::JSEscape($res["URL"]["~THIS"]) . "');", "DEFAULT" => true);
            if ($res["SHOW"]["UNDELETE"] == "Y") {
                $arActions["section_undelete"] = array("ICONCLASS" => "section_download", "TITLE" => GetMessage("WD_UNDELETE_SECTION"), "TEXT" => GetMessage("WD_UNDELETE"), "ONCLICK" => "jsUtils.Redirect([], '" . CUtil::JSEscape(WDAddPageParams($res["URL"]["~UNDELETE"], array("edit_section" => "Y", "sessid" => bitrix_sessid()), false)) . "');", "DEFAULT" => false);
            }
            if ($res["SHOW"]["EDIT"] == "Y") {
                if ($ob->Type == "iblock" && $arParams["OBJECT"]->CheckWebRights("", false, array("action" => "create"))) {
                    //sharing with antoher user. Only user_lib files.
                    global $USER;
                    if (!empty($arParams["OBJECT"]->attributes['user_id']) && $arParams["OBJECT"]->attributes['user_id'] == $USER->getID() && !$isExtranetUser) {
                        if (empty($res['LINK'])) {
                            if (!empty($res['SHARED_SECTION'])) {
                                //usage. Show list user
                                $uriToShareSection = $GLOBALS['APPLICATION']->GetCurUri(http_build_query(array('toWDController' => 1, 'wdaction' => 'detail_user_share', 'shareSectionId' => $res["ID"])));
                                $arActions["section_share"] = array("ICONCLASS" => "section_share", "TITLE" => GetMessage("WD_SHARE_TITLE_2"), "TEXT" => GetMessage("WD_SHARE_NAME_2"), "ONCLICK" => "WDShareFolder('{$uriToShareSection}', {$res["ID"]}, null, '" . CUtil::JSEscape($res["NAME"]) . "')");
                            } else {
                                if (!isset($checkParentSectionIsLink[$res['IBLOCK_SECTION_ID']])) {
                                    $checkParentSectionIsLink[$res['IBLOCK_SECTION_ID']] = CWebDavSymlinkHelper::isLink(CWebDavSymlinkHelper::ENTITY_TYPE_USER, $arParams["OBJECT"]->attributes['user_id'], array('ID' => $res['IBLOCK_SECTION_ID'], 'IBLOCK_ID' => $res['IBLOCK_ID']));
                                }
                                //if element in link - don't share
                                if (!$checkParentSectionIsLink[$res['IBLOCK_SECTION_ID']]) {
                                    $uriToShareSection = $GLOBALS['APPLICATION']->GetCurUri(http_build_query(array('toWDController' => 1, 'wdaction' => 'detail_user_share', 'shareSectionId' => $res["ID"])));
                                    $arActions["section_share"] = array("ICONCLASS" => "section_share", "TITLE" => GetMessage("WD_SHARE_TITLE_2"), "TEXT" => GetMessage("WD_SHARE_NAME_2"), "ONCLICK" => "WDShareFolder('{$uriToShareSection}', {$res["ID"]}, null, '" . CUtil::JSEscape($res["NAME"]) . "')");
                                }
                            }
                        } else {
                            //usage. Show list user
                            $uriToShareSection = $GLOBALS['APPLICATION']->GetCurUri(http_build_query(array('toWDController' => 1, 'wdaction' => 'info_user_share', 'shareSectionId' => $res['LINK']['SECTION_ID'])));
                            $arActions["section_share"] = array("ICONCLASS" => "section_share", "TITLE" => GetMessage("WD_MANAGE_SHARE_TITLE"), "TEXT" => GetMessage("WD_MANAGE_SHARE_NAME"), "ONCLICK" => "WDShareFolder('{$uriToShareSection}', {$res['LINK']['SECTION_ID']}, '" . CUtil::JSEscape($res["URL"]["~DELETE"]) . "', '" . CUtil::JSEscape($res["NAME"]) . "')");
                        }
                    } elseif (CWebDavIblock::$possibleUseSymlinkByInternalSections && !$isExtranetUser) {
                        if (empty($res['LINK'])) {
                            if (!empty($res['SHARED_SECTION'])) {
                                //usage. Show list user
                                $uriToShareSection = $GLOBALS['APPLICATION']->GetCurUri(http_build_query(array('toWDController' => 1, 'wdaction' => 'info_user_share', 'shareSectionId' => $res["ID"])));
                                $uriToDisconnectSection = $GLOBALS['APPLICATION']->GetCurUri(http_build_query(array('toWDController' => 1, 'wdaction' => 'disconnect', 'shareSectionId' => $res["ID"])));
                                $arActions["section_share"] = array("ICONCLASS" => "section_share", "TITLE" => GetMessage("WD_MANAGE_SHARE_TITLE"), "TEXT" => GetMessage("WD_MANAGE_SHARE_TITLE"), "ONCLICK" => "WDShareFolderInSharedDocs('{$uriToShareSection}', {$res["ID"]}, '{$uriToDisconnectSection}', '" . CUtil::JSEscape($res["NAME"]) . "')");
                            } else {
                                $uriToShareSection = $GLOBALS['APPLICATION']->GetCurUri(http_build_query(array('toWDController' => 1, 'wdaction' => 'connect', 'shareSectionId' => $res["ID"])));
                                $arActions["section_share"] = array("ICONCLASS" => "section_share", "TITLE" => GetMessage("WD_SHARE_SECTION_CONNECT_TITLE"), "TEXT" => GetMessage("WD_SHARE_SECTION_CONNECT_NAME"), "ONCLICK" => "showWebdavSharedSectionDiskPopup('{$uriToShareSection}', {$res["ID"]}, null, '" . CUtil::JSEscape($res["NAME"]) . "')");
                            }
                        }
                    }
                }
                $arActions["section_rename"] = array("ICONCLASS" => "section_rename", "TITLE" => GetMessage("WD_RENAME_SECTION_TITLE"), "TEXT" => GetMessage("WD_RENAME_NAME"), "ONCLICK" => "WDRename(BX('ID_" . $res["TYPE"] . $res["ID"] . "'), bxGrid_" . $arParams["GRID_ID"] . ", '" . $arParams["GRID_ID"] . "')");
                if ($ob->Type == "iblock" && $arParams["OBJECT"]->CheckWebRights("", false, array("action" => "create"))) {
                    $url = WDAddPageParams($res["URL"]["SECTIONS_DIALOG"], array("ACTION" => "COPY", "NAME" => urlencode($res["NAME"]), "ID" => "S" . $res["ID"]), false);
                    $arActions["section_copy"] = array("ICONCLASS" => "section_copy", "TITLE" => GetMessage("WD_COPY_SECTION_TITLE"), "TEXT" => GetMessage("WD_COPY_NAME"), "ONCLICK" => "(new BX.CDialog({'width': 450, 'heght':400, 'content_url':'" . CUtil::JSEscape($url) . "'})).Show()");
                    $url = WDAddPageParams($res["URL"]["SECTIONS_DIALOG"], array("ACTION" => "MOVE", "NAME" => urlencode($res["NAME"]), "ID" => "S" . $res["ID"]), false);
                    $arActions["section_move"] = array("ICONCLASS" => "section_move", "TITLE" => GetMessage("WD_MOVE_SECTION_TITLE"), "TEXT" => GetMessage("WD_MOVE_NAME"), "ONCLICK" => "(new BX.CDialog({'width': 450, 'heght':400, 'content_url':'" . CUtil::JSEscape($url) . "'})).Show()");
                }
            }
            if ($res["SHOW"]["RIGHTS"] == "Y") {
                $urlParams = array("IBLOCK_ID" => $arParams["IBLOCK_ID"], "ENTITY_TYPE" => "SECTION", "ENTITY_ID" => $res['ID'], "back_url" => urlencode($GLOBALS['APPLICATION']->GetCurPage()));
                if (isset($ob->attributes['user_id'])) {
                    $urlParams['SOCNET_TYPE'] = 'user';
                    $urlParams['SOCNET_ID'] = $ob->attributes['user_id'];
                } elseif (isset($ob->attributes['group_id'])) {
                    $urlParams['SOCNET_TYPE'] = 'group';
                    $urlParams['SOCNET_ID'] = $ob->attributes['group_id'];
                }
                $url = WDAddPageParams("/bitrix/components/bitrix/webdav.section.list/templates/.default/iblock_e_rights.php", $urlParams, false);
                $arActions["section_permissions"] = array("ICONCLASS" => "section_permissions", "TITLE" => GetMessage("WD_SECTION_PERMISSIONS"), "TEXT" => GetMessage("WD_PERMISSIONS"), "ONCLICK" => "(new BX.CDialog({'width': 750, 'heght':400, 'content_url':'" . CUtil::JSEscape($url) . "'})).Show()");
            }
            if ($res["SHOW"]["DELETE"] == "Y" && (!$bInTrash || $bInTrash && $arParams["PERMISSION"] > "W")) {
                if (!empty($res['LINK'])) {
                    $arActions["section_unshare"] = array("ICONCLASS" => "section_drop", "TITLE" => GetMessage("WD_UNSHARE_SECTION"), "TEXT" => GetMessage("WD_UNSHARE"), "ONCLICK" => "WDConfirm('" . CUtil::JSEscape(GetMessage("WD_UNSHARE_TITLE")) . "', '" . CUtil::JSEscape(GetMessage("WD_UNSHARE_SECTION_CONFIRM", array('#NAME#' => $res['NAME']))) . "', function() {jsUtils.Redirect([], '" . CUtil::JSEscape($res["URL"]["~DELETE"]) . "')})");
                } elseif (!empty($res['SHARED_SECTION']) && isset($arActions["section_share"])) {
                    $arActions["section_drop"] = array("ICONCLASS" => "section_drop", "TITLE" => GetMessage("WD_DELETE_SECTION"), "TEXT" => GetMessage("WD_DELETE"), "ONCLICK" => "WDConfirm('" . CUtil::JSEscape(GetMessage("WD_DELETE_OWN_SHARE_SECTION_TITLE")) . "', '" . CUtil::JSEscape(GetMessage("WD_DELETE_OWN_SHARE_SECTION_CONFIRM", array('#NAME#' => $res['NAME']))) . "', function() {jsUtils.Redirect([], '" . CUtil::JSEscape($res["URL"]["~DELETE"]) . "')})");
                } else {
                    $forceDeleteUrl = CHTTP::urlAddParams($res["URL"]["~DELETE"], array('delete_without_trash' => 1));
                    $arActions["section_drop"] = array("ICONCLASS" => "section_drop", "TITLE" => GetMessage("WD_DELETE_SECTION"), "TEXT" => GetMessage("WD_DELETE"));
                    if ($res["SHOW"]["UNDELETE"] == "Y") {
                        $arActions["section_drop"]['ONCLICK'] = "WDConfirm('" . CUtil::JSEscape(GetMessage("WD_DELETE_TITLE")) . "', '" . CUtil::JSEscape(GetMessage($res["SHOW"]["UNDELETE"] == "Y" ? "WD_DESTROY_SECTION_CONFIRM" : "WD_DELETE_SECTION_CONFIRM", array('#NAME#' => $res['NAME']))) . "', function() {jsUtils.Redirect([], '" . CUtil::JSEscape($res["URL"]["~DELETE"]) . "')})";
                    } elseif ($arParams['OBJECT']->CheckRight($res["E_RIGHTS"], "iblock_edit") >= "X") {
                        $arActions["section_drop"]['ONCLICK'] = "WDConfirmDelete('" . CUtil::JSEscape(GetMessage("WD_DELETE_TITLE")) . "', '" . CUtil::JSEscape(GetMessage("WD_TRASH_DELETE_DESTROY_SECTION_CONFIRM", array("#NAME#" => $res['NAME']))) . "'" . ", '" . CUtil::JSEscape(GetMessage("WD_TRASH_DELETE_BUTTON")) . "'" . ", '" . CUtil::JSEscape(GetMessage("WD_TRASH_DESTROY_BUTTON")) . "'" . ", '" . CUtil::JSEscape(GetMessage("WD_TRASH_CANCEL_DELETE_BUTTON")) . "'" . ", function() { var urlDelete = '" . CUtil::JSEscape($res["URL"]["~DELETE"]) . "';  jsUtils.Redirect([], urlDelete)}" . ", function() { var urlDelete = '" . CUtil::JSEscape($forceDeleteUrl) . "'; jsUtils.Redirect([], urlDelete)})";
                    } else {
                        $arActions["section_drop"]['ONCLICK'] = "WDConfirm('" . CUtil::JSEscape(GetMessage("WD_DELETE_TITLE")) . "', '" . CUtil::JSEscape(GetMessage("WD_DELETE_SECTION_CONFIRM", array("#NAME#" => $res['NAME']))) . "', function() { var urlDelete = '" . CUtil::JSEscape($res["URL"]["~DELETE"]) . "';  jsUtils.Redirect([], urlDelete)})";
                    }
                }
            }
            $arActions['preview_launch'] = array('type' => 'folder', 'src' => $res["URL"]["~THIS"], 'title' => $res['NAME'], 'owner' => CUser::FormatName(CSite::GetNameFormat(false), array('LOGIN' => $res['CREATED_BY']['LOGIN'], 'NAME' => $res['CREATED_BY']['NAME'], 'SECOND_NAME' => $res['CREATED_BY']['SECOND_NAME'], 'LAST_NAME' => $res['CREATED_BY']['LAST_NAME']), true, false), 'size' => CFile::FormatSize($res['PROPERTY_WEBDAV_SIZE_VALUE']), 'dateModify' => FormatDate('FULL', MakeTimeStamp($res["TIMESTAMP_X"])));
        } else {
            $arActions["element_open"] = array("ICONCLASS" => "element_open", "TITLE" => GetMessage("WD_OPEN_DOCUMENT"), "TEXT" => GetMessage("WD_OPEN"), "ONCLICK" => "OpenDoc('" . CUtil::JSEscape(htmlspecialcharsbx($res["URL"]["~THIS"])) . "', " . (in_array($res["FILE_EXTENTION"], $arOfficeExtensions) && $arParams['DEFAULT_EDIT'] === 'Y' ? "true" : "false") . ");", "DEFAULT" => true);
            if ($allowExtDocServices && CWebDavTools::allowPreviewFile($res["FILE_EXTENTION"], $res['PROPERTY_WEBDAV_SIZE_VALUE'])) {
                //showInViewer
                $downloadUrl = CUtil::JSEscape($res["URL"]["~DOWNLOAD"]);
                $editInUrl = $editrUrl = CUtil::JSEscape(($GLOBALS['APPLICATION']->IsHTTPS() ? 'https' : 'http') . '://' . str_replace("//", "/", $_SERVER['HTTP_HOST'] . "/" . $res["URL"]["THIS"])) . '?' . bitrix_sessid_get() . '&editIn=' . CWebDavLogOnlineEditBase::DEFAULT_SERVICE_NAME . '&start=1';
                $downloadUrl .= (strpos($downloadUrl, "?") === false ? "?" : "&") . "ncc=1&force_download=1";
                $viewerUrl = CUtil::JSEscape(($GLOBALS['APPLICATION']->IsHTTPS() ? 'https' : 'http') . '://' . str_replace("//", "/", $_SERVER['HTTP_HOST'] . "/" . $res["URL"]["THIS"])) . '?showInViewer=1';
                $arActions['preview_launch'] = array('type' => 'iframe', 'src' => $viewerUrl, 'download' => $downloadUrl, 'history' => CHTTP::urlAddParams($res['URL']['VIEW'], array('webdavForm' . $res['IBLOCK_ID'] . '_active_tab' => 'tab_history')), 'edit' => $res['LOCK_STATUS'] == 'green' && CWebDavEditDocGoogle::isEditable($res["FILE_EXTENTION"]) && $res['E_RIGHTS']['element_edit'] ? $editInUrl : '', 'askConvert' => CWebDavEditDocGoogle::isNeedConvertExtension($res["FILE_EXTENTION"]), 'title' => $res['NAME'], 'inPersonalLib' => $isUserLib && $res['LOCK_STATUS'] == 'green' && $res['E_RIGHTS']['element_edit'] ? '1' : '', 'externalId' => $isUserLib ? "st{$rootDataForCurrentUser['IBLOCK_ID']}|{$rootDataForCurrentUser['SECTION_ID']}|f{$res['ID']}" : '', 'relativePath' => $res['PATH']);
            } elseif ($allowExtDocServices && CWebDavEditDocGoogle::isEditable($res["FILE_EXTENTION"])) {
                //showInViewer
                $downloadUrl = CUtil::JSEscape($res["URL"]["~DOWNLOAD"]);
                $editInUrl = $editrUrl = CUtil::JSEscape(($GLOBALS['APPLICATION']->IsHTTPS() ? 'https' : 'http') . '://' . str_replace("//", "/", $_SERVER['HTTP_HOST'] . "/" . $res["URL"]["THIS"])) . '?' . bitrix_sessid_get() . '&editIn=' . CWebDavLogOnlineEditBase::DEFAULT_SERVICE_NAME . '&start=1';
                $downloadUrl .= (strpos($downloadUrl, "?") === false ? "?" : "&") . "ncc=1&force_download=1";
                $viewerUrl = CUtil::JSEscape(($GLOBALS['APPLICATION']->IsHTTPS() ? 'https' : 'http') . '://' . str_replace("//", "/", $_SERVER['HTTP_HOST'] . "/" . $res["URL"]["THIS"])) . '?showInViewer=1';
                $arActions['preview_launch'] = array('type' => 'onlyedit', 'src' => $viewerUrl, 'download' => $downloadUrl, 'history' => CHTTP::urlAddParams($res['URL']['VIEW'], array('webdavForm' . $res['IBLOCK_ID'] . '_active_tab' => 'tab_history')), 'edit' => $res['LOCK_STATUS'] == 'green' && CWebDavEditDocGoogle::isEditable($res["FILE_EXTENTION"]) && $res['E_RIGHTS']['element_edit'] ? $editInUrl : '', 'askConvert' => CWebDavEditDocGoogle::isNeedConvertExtension($res["FILE_EXTENTION"]), 'title' => $res['NAME'], 'owner' => CUser::FormatName(CSite::GetNameFormat(false), array('LOGIN' => $res['CREATED_BY']['LOGIN'], 'NAME' => $res['CREATED_BY']['NAME'], 'SECOND_NAME' => $res['CREATED_BY']['SECOND_NAME'], 'LAST_NAME' => $res['CREATED_BY']['LAST_NAME']), true, false), 'size' => CFile::FormatSize($res['PROPERTY_WEBDAV_SIZE_VALUE']), 'dateModify' => FormatDate('FULL', MakeTimeStamp($res["TIMESTAMP_X"])), 'tooBigSizeMsg' => true, 'inPersonalLib' => $isUserLib && $res['LOCK_STATUS'] == 'green' && $res['E_RIGHTS']['element_edit'] ? '1' : '', 'externalId' => $isUserLib ? "st{$rootDataForCurrentUser['IBLOCK_ID']}|{$rootDataForCurrentUser['SECTION_ID']}|f{$res['ID']}" : '', 'relativePath' => $res['PATH']);
            } elseif (CFile::IsImage($res['NAME'])) {
                $downloadUrl = CUtil::JSEscape($res["URL"]["~DOWNLOAD"]);
                $downloadUrl .= (strpos($downloadUrl, "?") === false ? "?" : "&") . "ncc=1&force_download=1";
                $arActions['preview_launch'] = array('type' => 'image', 'src' => $downloadUrl, 'download' => $downloadUrl, 'title' => $res['NAME']);
            } else {
                $downloadUrl = CUtil::JSEscape($res["URL"]["~DOWNLOAD"]);
                $downloadUrl .= (strpos($downloadUrl, "?") === false ? "?" : "&") . "ncc=1&force_download=1";
                $arActions['preview_launch'] = array('type' => 'unknown', 'src' => $downloadUrl, 'download' => $downloadUrl, 'title' => $res['NAME'], 'owner' => CUser::FormatName(CSite::GetNameFormat(false), array('LOGIN' => $res['CREATED_BY']['LOGIN'], 'NAME' => $res['CREATED_BY']['NAME'], 'SECOND_NAME' => $res['CREATED_BY']['SECOND_NAME'], 'LAST_NAME' => $res['CREATED_BY']['LAST_NAME']), true, false), 'size' => CFile::FormatSize($res['PROPERTY_WEBDAV_SIZE_VALUE']), 'dateModify' => FormatDate('FULL', MakeTimeStamp($res["TIMESTAMP_X"])), 'tooBigSizeMsg' => $allowExtDocServices && CWebDavTools::allowPreviewFile($res["FILE_EXTENTION"], $res['PROPERTY_WEBDAV_SIZE_VALUE'], false), 'inPersonalLib' => $isUserLib && $res['LOCK_STATUS'] == 'green' && $res['E_RIGHTS']['element_edit'] ? '1' : '', 'externalId' => $isUserLib ? "st{$rootDataForCurrentUser['IBLOCK_ID']}|{$rootDataForCurrentUser['SECTION_ID']}|f{$res['ID']}" : '', 'relativePath' => $res['PATH']);
            }
            $downloadUrl = CUtil::JSEscape($res["URL"]["~DOWNLOAD"]);
            $downloadUrl .= (strpos($downloadUrl, "?") === false ? "?" : "&") . "ncc=1&force_download=1";
            $arActions["element_download"] = array("ICONCLASS" => "element_download", "TITLE" => GetMessage("WD_DOWNLOAD_ELEMENT"), "TEXT" => GetMessage("WD_DOWNLOAD"), "ONCLICK" => "window.location.href = '" . $downloadUrl . "';", "DEFAULT" => false);
            if ($arParams["PERMISSION"] >= "U") {
                $urlT = CUtil::JSEscape(($GLOBALS['APPLICATION']->IsHTTPS() ? 'https' : 'http') . '://' . str_replace("//", "/", $_SERVER['HTTP_HOST'] . "/" . $res["URL"]["THIS"]));
                $arActions["copy_ext_link"] = array("ICONCLASS" => "element_ext_link", "TITLE" => GetMessage("WD_COPY_EXT_LINK_TITLE"), "TEXT" => GetMessage("WD_COPY_EXT_LINK"), "ONCLICK" => CWebDavExtLinks::InsertDialogCallText($urlT));
            }
            if ($res["SHOW"]["UNDELETE"] == "Y") {
                $arActions["element_undelete"] = array("ICONCLASS" => "element_download", "TITLE" => GetMessage("WD_UNDELETE_ELEMENT"), "TEXT" => GetMessage("WD_UNDELETE"), "ONCLICK" => "jsUtils.Redirect([], '" . CUtil::JSEscape(WDAddPageParams($res["URL"]["~UNDELETE"], array("edit" => "Y", "sessid" => bitrix_sessid()), false)) . "');", "DEFAULT" => false);
            }
            if ($arParams["PERMISSION"] >= "U") {
                if ($res["SHOW"]["LOCK"] == "Y" || $res["SHOW"]["UNLOCK"] == "Y") {
                    $arActions["element_upload"] = array("ICONCLASS" => "element_edit", "TITLE" => GetMessage("WD_UPLOAD_ELEMENT"), "TEXT" => GetMessage("WD_UPLOAD"), "ONCLICK" => "jsUtils.Redirect([], '" . CUtil::JSEscape($res["URL"][$arParams["OBJECT"]->Type == "folder" ? "EDIT" : "~VIEW"] . '#upload') . "');");
                }
                if ($ob->Type == "iblock" && $res["SHOW"]["UNLOCK"] == "Y") {
                    $arActions["element_unlock"] = array("ICONCLASS" => "element_unlock", "TITLE" => GetMessage("WD_UNLOCK_ELEMENT"), "TEXT" => GetMessage("WD_UNLOCK"), "ONCLICK" => "jsUtils.Redirect([], '" . CUtil::JSEscape($res["URL"]["~UNLOCK"]) . "');");
                }
                if ($ob->Type == "iblock" && $res["SHOW"]["LOCK"] == "Y") {
                    $arActions["element_lock"] = array("ICONCLASS" => "element_unlock", "TITLE" => GetMessage("WD_LOCK_ELEMENT"), "TEXT" => GetMessage("WD_LOCK"), "ONCLICK" => "jsUtils.Redirect([], '" . CUtil::JSEscape($res["URL"]["~LOCK"]) . "');");
                }
                if (($res["SHOW"]["LOCK"] == "Y" || $res["SHOW"]["UNLOCK"] == "Y") && in_array($res["FILE_EXTENTION"], $arOfficeExtensions)) {
                    $arActions["element_edit_office"] = array("ICONCLASS" => "element_edit", "TITLE" => GetMessage("WD_EDIT_MSOFFICE"), "TEXT" => GetMessage("WD_EDIT_MSOFFICE_MENU"), "OFFICECHECK" => true, "DISABLED" => !($bShowWebdav && $res["SHOW"]["EDIT"] == "Y"), "ONCLICK" => 'return EditDocWithProgID(\'' . CUtil::addslashes($res["URL"]["~THIS"]) . '\');');
                }
            }
            $arActions["element_view"] = array("ICONCLASS" => "element_view", "TITLE" => GetMessage("WD_VIEW_ELEMENT"), "TEXT" => GetMessage($res["~TYPE"] == "FILE" ? "WD_PROPERTIES" : "WD_VIEW"), "ONCLICK" => "jsUtils.Redirect([], '" . CUtil::JSEscape($res["URL"][$res["~TYPE"] == "FILE" ? "EDIT" : "~VIEW"]) . "');");
            if ($arParams["USE_COMMENTS"] == "Y" && IsModuleInstalled("forum")) {
                $arActions["element_comment"] = array("ICONCLASS" => "element_comment", "TITLE" => GetMessage("WD_ELEMENT_COMMENT_NAME"), "TEXT" => GetMessage("WD_ELEMENT_COMMENT_TITLE"), "ONCLICK" => "jsUtils.Redirect([], '" . CUtil::JSEscape($res["URL"]["~VIEW"] . "?webdavForm" . $arParams["IBLOCK_ID"] . "_active_tab=tab_comments") . "');");
            }
            if ($arParams["PERMISSION"] >= "U") {
                $arActions["copy_link"] = array("ICONCLASS" => "element_download", "TITLE" => GetMessage("WD_COPY_LINK_TITLE"), "TEXT" => GetMessage("WD_COPY_LINK"), "ONCLICK" => "WDCopyLinkDialog('" . CUtil::JSEscape(($GLOBALS['APPLICATION']->IsHTTPS() ? 'https' : 'http') . '://' . str_replace("//", "/", $_SERVER['HTTP_HOST'] . "/" . $res["URL"]["THIS"])) . "')");
                /*
                $urlT = CUtil::JSEscape(($GLOBALS['APPLICATION']->IsHTTPS() ? 'https' : 'http').'://'.str_replace("//", "/", $_SERVER['HTTP_HOST']."/".$res["URL"]["THIS"]));
                $arActions["copy_ext_link"] = array(
                	"ICONCLASS" => "element_download",
                	"TITLE" => GetMessage("WD_COPY_EXT_LINK_TITLE"),
                	"TEXT" => GetMessage("WD_COPY_EXT_LINK"),
                	"ONCLICK" => CWebDavExtLinks::InsertDialogCallText($urlT)
                );
                */
                if ($res["SHOW"]["HISTORY"] == "Y") {
                    $arActions["element_history"] = array("ICONCLASS" => "element_history" . ($res["SHOW"]["BP"] == "Y" ? " bizproc_history" : ""), "TITLE" => GetMessage("WD_HIST_ELEMENT_ALT"), "TEXT" => GetMessage("WD_HIST_ELEMENT"), "ONCLICK" => "jsUtils.Redirect([], '" . CUtil::JSEscape($res["URL"]["~VIEW"] . "?webdavForm" . $arParams["IBLOCK_ID"] . "_active_tab=tab_history") . "');");
                }
                if ($res["SHOW"]["LOCK"] == "Y" || $res["SHOW"]["UNLOCK"] == "Y") {
                    if ($res["SHOW"]["BP_VIEW"] == "Y") {
                        $arActionsBpTmp[] = array("ICONCLASS" => "bizproc_document", "TITLE" => GetMessage("IBLIST_A_BP_H"), "TEXT" => GetMessage("IBLIST_A_BP_H"), "ONCLICK" => "jsUtils.Redirect([], '" . CUtil::JSEscape($res["URL"]["~BP"]) . "');");
                    }
                    if ($res["SHOW"]["BP_START"] == "Y" && is_array($arParams["TEMPLATES"])) {
                        $arr = array();
                        foreach ($arParams["TEMPLATES"] as $key => $arWorkflowTemplate) {
                            if (!CBPDocument::CanUserOperateDocument(CBPCanUserOperateOperation::StartWorkflow, $GLOBALS["USER"]->GetID(), $res["DOCUMENT_ID"], array("UserGroups" => $res["USER_GROUPS"], "DocumentStates" => $res["~arDocumentStates"], "WorkflowTemplateList" => $arTemplates, "WorkflowTemplateId" => $arWorkflowTemplate["ID"]))) {
                                continue;
                            }
                            $url = $res["URL"]["~BP_START"];
                            $url .= (strpos($url, "?") === false ? "?" : "&") . "workflow_template_id=" . $arWorkflowTemplate["ID"] . '&' . bitrix_sessid_get();
                            $arr[] = array("ICONCLASS" => "", "TITLE" => $arWorkflowTemplate["DESCRIPTION"], "TEXT" => $arWorkflowTemplate["NAME"], "ONCLICK" => "jsUtils.Redirect([], '" . CUtil::JSEscape($url) . "');");
                        }
                        if (!empty($arr)) {
                            $arActionsBpTmp[] = array("ICONCLASS" => "bizproc_start", "TITLE" => GetMessage("WD_START_BP_TITLE"), "TEXT" => GetMessage("WD_START_BP"), "MENU" => $arr);
                        }
                    }
                    //if ($res["SHOW"]["BP_CLONE"] == "Y")
                    //{
                    //$arActionsBpTmp[] = array(
                    //"ICONCLASS" => "bizproc_document",
                    //"TITLE" => GetMessage("WD_CREATE_VERSION_ALT"),
                    //"TEXT" => GetMessage("WD_CREATE_VERSION"),
                    //"ONCLICK" => "jsUtils.Redirect([], '".CUtil::JSEscape($res["URL"]["~CLONE"])."');");
                    //$arActionsBpTmp[] = array(
                    //"ICONCLASS" => "bizproc_document",
                    //"TITLE" => GetMessage("WD_VERSIONS_ALT"),
                    //"TEXT" => GetMessage("WD_VERSIONS"),
                    //"ONCLICK" => "jsUtils.Redirect([], '".CUtil::JSEscape($res["URL"]["~VERSIONS"])."');");
                    //}
                    if (!empty($arActionsBpTmp)) {
                        $arActions += $arActionsBpTmp;
                    }
                    $arActions["separator_del"] = array("SEPARATOR" => true);
                    if ($ob->Type == "folder" || $ob->Type == "iblock" && $res["WF_PARENT_ELEMENT_ID"] === null) {
                        $arActions["element_rename"] = array("ICONCLASS" => "element_rename", "TITLE" => GetMessage("WD_RENAME_TITLE"), "TEXT" => GetMessage("WD_RENAME_NAME"), "ONCLICK" => "WDRename(BX('ID_" . $res["TYPE"] . $res["ID"] . "'), bxGrid_" . $arParams["GRID_ID"] . ", '" . $arParams["GRID_ID"] . "')");
                    }
                }
                if ($res["SHOW"]["COPY"] == 'Y') {
                    $url = WDAddPageParams($res["URL"]["SECTIONS_DIALOG"], array("ACTION" => "COPY", "NAME" => urlencode($res["NAME"]), "ID" => "E" . $res["ID"]), false);
                    $arActions["element_copy"] = array("ICONCLASS" => "element_copy", "TITLE" => GetMessage("WD_COPY_TITLE"), "TEXT" => GetMessage("WD_COPY_NAME"), "ONCLICK" => "(new BX.CDialog({'width': 450, 'heght':400, 'content_url':'" . CUtil::JSEscape($url) . "'})).Show()");
                }
                if ($ob->Type == "iblock" && $res["WF_PARENT_ELEMENT_ID"] === null && $res["SHOW"]["EDIT"] == "Y") {
                    $url = WDAddPageParams($res["URL"]["SECTIONS_DIALOG"], array("ACTION" => "MOVE", "NAME" => urlencode($res["NAME"]), "ID" => "E" . $res["ID"]), false);
                    $arActions["element_move"] = array("ICONCLASS" => "element_move", "TITLE" => GetMessage("WD_MOVE_TITLE"), "TEXT" => GetMessage("WD_MOVE_NAME"), "ONCLICK" => "(new BX.CDialog({'width': 450, 'heght':400, 'content_url':'" . CUtil::JSEscape($url) . "'})).Show()");
                }
                if ($res["SHOW"]["RIGHTS"] == "Y") {
                    $urlParams = array("IBLOCK_ID" => $arParams["IBLOCK_ID"], "ENTITY_TYPE" => "ELEMENT", "ENTITY_ID" => $res['ID'], "back_url" => urlencode($GLOBALS['APPLICATION']->GetCurPageParam()));
                    if (isset($ob->attributes['user_id'])) {
                        $urlParams['SOCNET_TYPE'] = 'user';
                        $urlParams['SOCNET_ID'] = $ob->attributes['user_id'];
                    } elseif (isset($ob->attributes['group_id'])) {
                        $urlParams['SOCNET_TYPE'] = 'group';
                        $urlParams['SOCNET_ID'] = $ob->attributes['group_id'];
                    }
                    $url = WDAddPageParams("/bitrix/components/bitrix/webdav.section.list/templates/.default/iblock_e_rights.php", $urlParams, false);
                    $arActions["element_permissions"] = array("ICONCLASS" => "element_permissions", "TITLE" => GetMessage("WD_ELEMENT_PERMISSIONS"), "TEXT" => GetMessage("WD_PERMISSIONS"), "ONCLICK" => "(new BX.CDialog({'width': 750, 'heght':400, 'content_url':'" . CUtil::JSEscape($url) . "'})).Show()");
                }
                if ($res["SHOW"]["DELETE"] == "Y" && (!$bInTrash || $bInTrash && $arParams["PERMISSION"] >= "X")) {
                    $forceDeleteUrl = CHTTP::urlAddParams($res["URL"]["~DELETE"], array('delete_without_trash' => 1));
                    $arActions["element_delete"] = array("ICONCLASS" => "element_delete", "TITLE" => GetMessage("WD_DELETE_ELEMENT"), "TEXT" => GetMessage("WD_DELETE"));
                    if ($res["SHOW"]["UNDELETE"] == "Y") {
                        $arActions["element_delete"]["ONCLICK"] = "WDConfirm('" . CUtil::JSEscape(GetMessage("WD_DELETE_TITLE")) . "', '" . CUtil::JSEscape(GetMessage($res["SHOW"]["UNDELETE"] == "Y" ? "WD_DESTROY_CONFIRM" : "WD_DELETE_CONFIRM", array("#NAME#" => $res['NAME']))) . "', function() {jsUtils.Redirect([], '" . CUtil::JSEscape($res["URL"]["~DELETE"]) . "')})";
                    } elseif ($arParams['OBJECT']->CheckRight($res["E_RIGHTS"], "iblock_edit") >= "X") {
                        $arActions["element_delete"]['ONCLICK'] = "WDConfirmDelete('" . CUtil::JSEscape(GetMessage("WD_DELETE_TITLE")) . "', '" . CUtil::JSEscape(GetMessage("WD_TRASH_DELETE_DESTROY_ELEMENT_CONFIRM", array("#NAME#" => $res['NAME']))) . "'" . ", '" . CUtil::JSEscape(GetMessage("WD_TRASH_DELETE_BUTTON")) . "'" . ", '" . CUtil::JSEscape(GetMessage("WD_TRASH_DESTROY_BUTTON")) . "'" . ", '" . CUtil::JSEscape(GetMessage("WD_TRASH_CANCEL_DELETE_BUTTON")) . "'" . ", function() { var urlDelete = '" . CUtil::JSEscape($res["URL"]["~DELETE"]) . "';  jsUtils.Redirect([], urlDelete)}" . ", function() { var urlDelete = '" . CUtil::JSEscape($forceDeleteUrl) . "'; jsUtils.Redirect([], urlDelete)})";
                    } else {
                        $arActions["element_delete"]['ONCLICK'] = "WDConfirm('" . CUtil::JSEscape(GetMessage("WD_DELETE_TITLE")) . "', '" . CUtil::JSEscape(GetMessage("WD_DELETE_CONFIRM", array("#NAME#" => $res['NAME']))) . "', function() { var urlDelete = '" . CUtil::JSEscape($res["URL"]["~DELETE"]) . "';  jsUtils.Redirect([], urlDelete)})";
                    }
                }
            }
        }
        foreach (array("MODIFIED_BY", "CREATED_BY", "WF_LOCKED_BY") as $user_key) {
            $aCols[$user_key] = is_array($res[$user_key]) ? $res[$user_key] : __parse_user($res[$user_key], $arParams["USER_VIEW_URL"], isset($arParams["NAME_TEMPLATE"]) ? $arParams["NAME_TEMPLATE"] : null);
            $aCols[$user_key] = "<div class=\"wd-user-link\">" . $aCols[$user_key]['main_user_link'] . "</div>";
        }
        if ($res["TYPE"] == "S") {
            $classNameForIcon = !empty($res['LINK']) || !empty($res['SHARED_SECTION']) ? 'shared-section-icon' : 'section-icon';
            $res["FTYPE"] = "folder";
            $aCols["PLAIN_NAME"] = $res["NAME"];
            $aCols["NAME"]['shared'] = $res["SHOW"]["SHARED"] ? '<div class="element-shared"></div>' : '';
            $aCols["NAME"] = '<div class="section-name">
					<div class="' . $classNameForIcon . '"></div>' . $aCols["NAME"]['shared'] . '<a class="section-title" id="sec' . $res['ID'] . '" href="' . $res["URL"]["THIS"] . '"' . 'data-bx-viewer="' . $arActions['preview_launch']['type'] . '" ' . 'data-bx-title="' . htmlspecialcharsbx($arActions['preview_launch']['title']) . '" ' . 'data-bx-src="' . $arActions['preview_launch']['src'] . '" ' . 'data-bx-size="' . $arActions['preview_launch']['size'] . '" ' . 'data-bx-owner="' . htmlspecialcharsbx($arActions['preview_launch']['owner']) . '" ' . 'data-bx-dateModify="' . htmlspecialcharsbx($arActions['preview_launch']['dateModify']) . '" ' . '>' . $res["NAME"] . '</a>
				</div>';
            if ((!empty($res['LINK']) || !empty($res['SHARED_SECTION'])) && isset($arActions["section_share"])) {
                $aCols['FILE_SIZE'] = '<div id="sec' . $res['ID'] . '-share" class="wd-share-hotkey-share section-name" onclick="' . $arActions["section_share"]['ONCLICK'] . '">' . GetMessage('WD_ALREADY_SHARE_SECTION') . '</div></div> ';
            } elseif (!empty($arParams["OBJECT"]->attributes['user_id']) && $arParams["OBJECT"]->attributes['user_id'] == $USER->getId() && !empty($arActions["section_share"]) && !$isExtranetUser) {
                $aCols['FILE_SIZE'] = '<div id="sec' . $res['ID'] . '-share" class="wd-share-hotkey-potential-share section-name" onclick="' . $arActions["section_share"]['ONCLICK'] . '"><div class="shared-section-icon"></div> ' . GetMessage('WD_MAKE_SHARE_SECTION') . '</div> ';
            } elseif (empty($arParams["OBJECT"]->attributes['user_id']) && CWebDavIblock::$possibleUseSymlinkByInternalSections && !empty($arActions["section_share"]) && !$isExtranetUser) {
                $aCols['FILE_SIZE'] = '<div id="sec' . $res['ID'] . '-share" class="wd-share-hotkey-potential-share section-name" onclick="' . $arActions["section_share"]['ONCLICK'] . '"><div class="shared-section-icon"></div> ' . GetMessage('WD_SHARE_SECTION_CONNECT_IN_GRID') . '</div> ';
            }
        } else {
            $aCols["NAME"] = array();
            $hintLink = __make_hint($res);
            if (!isset($arParams['MERGE_VIEW'])) {
                $aCols["NAME"]['hint'] = $res['HINT'];
            } else {
                $aCols["NAME"]['hint'] = '';
                $hintLink = '';
            }
            $aCols["NAME"]['icon'] = '<div class="element-icon icons icon-' . substr($res["FILE_EXTENTION"], 1) . '"></div>';
            $aCols["NAME"]['shared'] = $res["SHOW"]["SHARED"] ? '<div class="element-shared"></div>' : '';
            if (strlen($res["NAME"]) == 0) {
                $aCols["NAME"]["name"] = "<span>&nbsp;</span>";
            } else {
                $resName = $WrapLongWords ? WrapLongWords(htmlspecialcharsbx($res["NAME"])) : htmlspecialcharsbx($res["NAME"]);
                if ($ob->Type != "iblock") {
                    $aCols["NAME"]['name'] = '<a class="element-title ' . (strlen($hintLink) > 0 ? 'element-hint ' : ' ') . '" id="doc' . $res['ID'] . '" ' . $hintLink . 'href="' . htmlspecialcharsbx($res["URL"]["THIS"]) . '" onclick="return OpenDoc(this, ' . (in_array($res["FILE_EXTENTION"], $arOfficeExtensions) && $arParams['DEFAULT_EDIT'] == 'Y' ? "true" : "false") . ')"' . ' target="_blank"' . (strlen($hintLink) > 0 ? '' : ' title="' . GetMessage("WD_DOWNLOAD_ELEMENT") . '"') . '>' . $resName . '</a>';
                } else {
                    $aCols["NAME"]['name'] = '<a class="element-title ' . (strlen($hintLink) > 0 ? 'element-hint ' : ' ') . '" id="doc' . $res['ID'] . '" ' . $hintLink . ' ' . 'data-bx-viewer="' . $arActions['preview_launch']['type'] . '" ' . 'data-bx-title="' . htmlspecialcharsbx($arActions['preview_launch']['title']) . '" ' . 'data-bx-src="' . $arActions['preview_launch']['src'] . '" ' . 'data-bx-historyPage="' . $arActions['preview_launch']['history'] . '" ' . 'data-bx-edit="' . $arActions['preview_launch']['edit'] . '" ' . 'data-bx-isFromUserLib="' . $arActions['preview_launch']['inPersonalLib'] . '" ' . 'data-bx-externalId="' . $arActions['preview_launch']['externalId'] . '" ' . 'data-bx-relativePath="' . $arActions['preview_launch']['relativePath'] . '" ' . 'data-bx-askConvert="' . $arActions['preview_launch']['askConvert'] . '" ' . 'data-bx-download="' . $arActions['preview_launch']['download'] . '" ' . 'data-bx-size="' . $arActions['preview_launch']['size'] . '" ' . 'data-bx-owner="' . htmlspecialcharsbx($arActions['preview_launch']['owner']) . '" ' . 'data-bx-dateModify="' . htmlspecialcharsbx($arActions['preview_launch']['dateModify']) . '" ' . 'data-bx-tooBigSizeMsg="' . htmlspecialcharsbx($arActions['preview_launch']['tooBigSizeMsg']) . '" ' . '>' . $resName . '</a>';
                }
            }
            $aCols["NAME"]['status'] = '';
            if ($arParams["PERMISSION"] >= "U" && in_array($res['LOCK_STATUS'], array("red", "yellow"))) {
                $aCols["NAME"]['status'] .= '<div class="element-status-' . $res['LOCK_STATUS'] . '">';
                if ($res['LOCK_STATUS'] == "yellow") {
                    $aCols["NAME"]['status'] .= '[' . GetMessage("IBLOCK_YELLOW_MSG") . ']';
                } else {
                    if (!is_array($res['WF_LOCKED_BY']) && intval($res['WF_LOCKED_BY']) > 0) {
                        $rUserLockedBy = CUser::GetByID($res['WF_LOCKED_BY']);
                        $res['WF_LOCKED_BY'] = $rUserLockedBy->Fetch();
                    }
                    if (isset($res['WF_LOCKED_BY']['ID']) && $res['WF_LOCKED_BY']['ID'] > 0) {
                        $res['LOCKED_USER_NAME'] = CUser::FormatName($nameTemplate, $res['WF_LOCKED_BY']);
                        $aCols["NAME"]['status'] .= '[' . trim(GetMessage("IBLOCK_RED_MSG", array('#NAME#' => $res['LOCKED_USER_NAME']))) . ']';
                    } else {
                        $aCols["NAME"]['status'] .= '[' . GetMessage("IBLOCK_RED_MSG_OTHER") . ']';
                    }
                }
                $aCols["NAME"]['status'] .= '</div>';
            }
            if ($arParams["USE_COMMENTS"] == "Y" && intVal($res["PROPERTY_FORUM_MESSAGE_CNT_VALUE"]) > 0) {
                $aCols["NAME"]['comments'] = '<a href="' . $res["URL"]["VIEW"] . '?webdavForm' . $arParams["IBLOCK_ID"] . '_active_tab=tab_comments" class="element-properties element-comments" title="' . GetMessage("WD_COMMENTS_FOR_DOCUMENT") . " " . intVal($res["PROPERTY_FORUM_MESSAGE_CNT_VALUE"]) . '">' . intVal($res["PROPERTY_FORUM_MESSAGE_CNT_VALUE"]) . '</a>';
            }
            $aCols["PROPERTY_FORUM_MESSAGE_CNT"] = '<a href="' . $res["URL"]["VIEW"] . '">' . intVal($res["PROPERTY_FORUM_MESSAGE_CNT_VALUE"]) . '</a>';
            $aCols["BP_PUBLISHED"] = "<div class=\"wd-bp-published wd-bp-published-" . ($res["BP_PUBLISHED"] != "Y" ? "n" : "y") . "\"></div>";
            $aCols["NAME"]["version"] = "";
            if ($arParams["WORKFLOW"] == "bizproc" && $res["WF_PARENT_ELEMENT_ID"] > 0) {
                $aCols["NAME"]["version"] = "<span class=\"wd-element-version\">" . GetMessage("WD_NAME_VERSION") . "</span>";
            }
            $aCols["BIZPROC"] = "";
            if ($arParams["WORKFLOW"] == "bizproc" && !empty($res["arDocumentStates"])) {
                $arDocumentStates = $res["arDocumentStates"];
                if (count($arDocumentStates) == 1) {
                    $arDocumentState = reset($arDocumentStates);
                    $arTasksWorkflow = CBPDocument::GetUserTasksForWorkflow($GLOBALS["USER"]->GetID(), $arDocumentState["ID"]);
                    $aColss["BIZPROC"] = '<div class="bizproc-item-title">' . (!empty($arDocumentState["TEMPLATE_NAME"]) ? htmlspecialcharsbx(htmlspecialcharsbx($arDocumentState["TEMPLATE_NAME"])) : GetMessage("IBLIST_BP")) . ': ' . '<span class="bizproc-item-title bizproc-state-title" style="">' . '<a href="' . $res["URL"]["BP"] . '">' . (strlen($arDocumentState["STATE_TITLE"]) > 0 ? htmlspecialcharsbx(htmlspecialcharsbx($arDocumentState["STATE_TITLE"])) : htmlspecialcharsbx(htmlspecialcharsbx($arDocumentState["STATE_NAME"]))) . '</a>' . '</span>' . '</div>';
                    $aColss["BIZPROC"] = str_replace("'", "\"", $aColss["BIZPROC"]);
                    $aCols["NAME"]['bizproc'] = "<div class=\"element-bizproc-status bizproc-statuses " . (!(strlen($arDocumentState["ID"]) <= 0 || strlen($arDocumentState["WORKFLOW_STATUS"]) <= 0) ? 'bizproc-status-' . (empty($arTasksWorkflow) ? "inprogress" : "attention") : '') . "\" onmouseover='BX.hint(this, \"" . addslashes($aColss["BIZPROC"]) . "\")'></div>";
                    if (!empty($arTasksWorkflow)) {
                        $tmp = array();
                        foreach ($arTasksWorkflow as $key => $val) {
                            $url = CComponentEngine::MakePathFromTemplate($arParams["WEBDAV_TASK_URL"], array("ELEMENT_ID" => $res["ID"], "ID" => $val["ID"]));
                            $url = WDAddPageParams($url, array("back_url" => urlencode($GLOBALS['APPLICATION']->GetCurPageParam())), false);
                            $tmp[] = '<a href="' . $url . '">' . $val["NAME"] . '</a>';
                        }
                        $aColss["BIZPROC"] .= '<div class="bizproc-tasks">' . implode(", ", $tmp) . '</div>';
                    }
                } else {
                    $arTasks = array();
                    $bInprogress = false;
                    $tmp = array();
                    foreach ($arDocumentStates as $key => $arDocumentState) {
                        $arTasksWorkflow = CBPDocument::GetUserTasksForWorkflow($GLOBALS["USER"]->GetID(), $arDocumentState["ID"]);
                        if (!$bInprogress) {
                            $bInprogress = strlen($arDocumentState["ID"]) > 0 && strlen($arDocumentState["WORKFLOW_STATUS"]) > 0;
                        }
                        $tmp[$key] = '<li class="bizproc-item">' . '<div class="bizproc-item-title">' . '<div class="bizproc-statuses ' . (strlen($arDocumentState["ID"]) > 0 && strlen($arDocumentState["WORKFLOW_STATUS"]) > 0 ? 'bizproc-status-' . (empty($arTasksWorkflow) ? "inprogress" : "attention") : '') . '"></div>' . (!empty($arDocumentState["TEMPLATE_NAME"]) ? $arDocumentState["TEMPLATE_NAME"] : GetMessage("IBLIST_BP")) . '</div>' . '<div class="bizproc-item-title bizproc-state-title">' . (strlen($arDocumentState["STATE_TITLE"]) > 0 ? $arDocumentState["STATE_TITLE"] : $arDocumentState["STATE_NAME"]) . '</div>';
                        if (!empty($arTasksWorkflow)) {
                            $tmp_tasks = array();
                            foreach ($arTasksWorkflow as $val) {
                                $url = CComponentEngine::MakePathFromTemplate($arParams["WEBDAV_TASK_URL"], array("ELEMENT_ID" => $res["ID"], "ID" => $val["ID"]));
                                $url = WDAddPageParams($url, array("back_url" => urlencode($GLOBALS['APPLICATION']->GetCurPageParam())), false);
                                $tmp_tasks[] = '<a href="' . $url . '">' . $val["NAME"] . '</a>';
                                $arTasks[] = $val;
                            }
                            $tmp[$key] .= '<div class="bizproc-tasks">' . implode(", ", $tmp_tasks) . '</div>';
                        }
                        $tmp[$key] .= '</li>';
                    }
                    $aColss["BIZPROC"] = '<span class="bizproc-item-title">' . GetMessage("WD_BP_R_P") . ': <a href="' . $res["URL"]["BP"] . '" title="' . GetMessage("WD_BP_R_P_TITLE") . '">' . count($arDocumentStates) . '</a>' . '</span>' . (!empty($arTasks) ? '<br /><span class="bizproc-item-title">' . GetMessage("WD_TASKS") . ': <a href="' . $res["URL"]["BP_TASK"] . '" title="' . GetMessage("WD_TASKS_TITLE") . '">' . count($arTasks) . '</a></span>' : '');
                    $aCols["NAME"]['bizproc'] = "<div class=\"element-bizproc-status bizproc-statuses " . ($bInprogress ? ' bizproc-status-' . (empty($arTasks) ? "inprogress" : "attention") : '') . "\" onmouseover='BX.hint(this, \"" . addslashes($aColss['BIZPROC']) . "\")'></div>";
                }
                $aCols['BIZPROC'] = $aColss['BIZPROC'];
            }
        }
        $aCols["ACTIVE"] = $res["ACTIVE"] == "Y" ? GetMessage("WD_Y") : GetMessage("WD_N");
        $aCols["TIMESTAMP_X"] = "<div class='wd_column_date'>" . FormatDate('X', MakeTimeStamp($res["TIMESTAMP_X"])) . "</div>";
        $aCols["DATE_CREATE"] = "<div class='wd_column_date'>" . FormatDate('X', MakeTimeStamp($res["DATE_CREATE"])) . "</div>";
        $sName = '';
        $sRating = '';
        if ($res['TYPE'] != 'S') {
            if ($arParams["SHOW_RATING"] == 'Y' && $arParams["RATING_TAG"] == 'Y') {
                $sRating = "#RATING#";
            }
            $aCols["NAME"] = $aCols["NAME"]["hint"] . "<div class=\"element-name\">" . $aCols["NAME"]["icon"] . $aCols["NAME"]["shared"] . "<div class=\"element-name-wrapper\">" . $aCols["NAME"]["name"] . $aCols["NAME"]["version"] . CWebDavExtLinks::$icoRepStr . $aCols["NAME"]["comments"] . $sRating . $aCols["NAME"]["status"] . "</div>" . $aCols["NAME"]["bizproc"] . "</div>";
        }
        if ($bTheFirstTimeonPage == true && $res["PERMISSION"] >= "U") {
            $bTheFirstTimeonPage = false;
            ?>
<script>
try {
if (/*@cc_on ! @*/ false && new ActiveXObject("SharePoint.OpenDocuments.2"))
{
	BX.ready(
		function()
		{
			setTimeout(
				function ()
				{
					try
					{
						var res = document.getElementsByTagName("A");
						for (var ii = 0; ii < res.length; ii++)
						{
							if (res[ii].className.indexOf("element-edit-office") >= 0) { res[ii].style.display = 'block'; }
						}
					}
					catch(e) {}
				}
				, 10
			)
		}
	);
}
} catch(e) {}

BX.message({
	'wd_desktop_disk_is_installed': '<?php 
            echo (bool) CWebDavTools::isDesktopDiskInstall();
            ?>
'
});

</script>
<?php 
        }
        return array("actions" => $arActions, "columns" => $aCols);
    }
コード例 #19
0
ファイル: file.php プロジェクト: nycmic/bittest
 function ShowFile($iFileID, $max_file_size = 0, $iMaxW = 0, $iMaxH = 0, $bPopup = false, $sParams = false, $sPopupTitle = false, $iSizeWHTTP = 0, $iSizeHHTTP = 0)
 {
     $strResult = "";
     $arFile = CFile::GetFileArray($iFileID);
     if ($arFile) {
         $max_file_size = intval($max_file_size);
         if ($max_file_size <= 0) {
             $max_file_size = 1000000000;
         }
         $ct = $arFile["CONTENT_TYPE"];
         if ($arFile["FILE_SIZE"] <= $max_file_size && CFile::IsImage($arFile["SRC"], $ct)) {
             $strResult = CFile::ShowImage($arFile, $iMaxW, $iMaxH, $sParams, "", $bPopup, $sPopupTitle, $iSizeWHTTP, $iSizeHHTTP);
         } else {
             $strResult = '<a href="' . htmlspecialcharsbx($arFile["SRC"]) . '" title="' . GetMessage("FILE_FILE_DOWNLOAD") . '">' . htmlspecialcharsbx($arFile["FILE_NAME"]) . '</a>';
         }
     }
     return $strResult;
 }
コード例 #20
0
function getFileData($fileId, $orderId = 0, $arSize = array("WIDTH" => 90, "HEIGHT" => 90))
{
    $res = "";
    $arFile = CFile::GetFileArray($fileId);
    if ($arFile) {
        $is_image = CFile::IsImage($arFile["FILE_NAME"], $arFile["CONTENT_TYPE"]);
        if ($is_image) {
            $arImgProduct = CFile::ResizeImageGet($arFile, array("width" => $arSize["WIDTH"], "height" => $arSize["HEIGHT"]), BX_RESIZE_IMAGE_PROPORTIONAL, false, false);
            if (is_array($arImgProduct)) {
                $res = array("type" => "image", "value" => $arImgProduct["src"]);
            }
        } else {
            $res = array("type" => "file", "value" => "<a href=" . $arFile["SRC"] . ">" . $arFile["ORIGINAL_NAME"] . "</a>");
        }
    }
    return $res;
}
コード例 #21
0
ファイル: input.php プロジェクト: webgksupport/alpina
 protected static function getViewHtmlSingle(array $input, $value)
 {
     if (!is_array($value)) {
         $value = array('ID' => $value);
     }
     if ($src = $value['SRC']) {
         $attributes = ' href="' . htmlspecialcharsbx($src) . '" title="' . htmlspecialcharsbx(Loc::getMessage('INPUT_FILE_DOWNLOAD')) . '"';
         $content = \CFile::IsImage($src, $value['CONTENT_TYPE']) && $value['FILE_SIZE'] < 100000 ? '<img src="' . $src . '" border="0" alt="" style="max-height:100px; max-width:100px">' : $value['ORIGINAL_NAME'];
     } else {
         $attributes = '';
         $content = $value['ORIGINAL_NAME'];
     }
     if (!$content) {
         $content = $value['FILE_NAME'];
     }
     if (!$content) {
         $content = $value['ID'];
     }
     return "<a{$attributes}>{$content}</a>";
 }
コード例 #22
0
ファイル: helper.php プロジェクト: DarneoStudio/bitrix
 /**
  * Returns HTML code to show file (image or download link)
  * Similar to CFile::ShowFile but shows name of the file in the download link
  *
  * @param int $fileId - file id
  * @param array $arSize - width and height for image thumbnail
  * @return string
  */
 function getFileInfo($fileId, $arSize = array("WIDTH" => 90, "HEIGHT" => 90))
 {
     $resultHTML = "";
     $arFile = CFile::GetFileArray($fileId);
     if ($arFile) {
         $is_image = CFile::IsImage($arFile["FILE_NAME"], $arFile["CONTENT_TYPE"]);
         if ($is_image) {
             $resultHTML = CFile::ShowImage($arFile["ID"], $arSize["WIDTH"], $arSize["HEIGHT"], "border=0", $arFile["SRC"], true);
         } else {
             $resultHTML = '<a href="' . $arFile["SRC"] . '">' . $arFile["ORIGINAL_NAME"] . '</a>';
         }
     }
     return $resultHTML;
 }
コード例 #23
0
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) {
    die;
}
__IncludeLang(dirname(__FILE__) . '/lang/' . LANGUAGE_ID . '/' . basename(__FILE__));
if (sizeof($arResult['FILES']) <= 0) {
    return;
}
WDUFLoadStyle();
?>
<script>BX.message({'WDUF_FILE_TITLE_REV_HISTORY':'<?php 
echo GetMessageJS("WDUF_FILE_TITLE_REV_HISTORY");
?>
'});</script><?php 
foreach ($arResult['FILES'] as $id => $arWDFile) {
    if (CFile::IsImage($arWDFile['NAME'], $arWDFile["FILE"]["CONTENT_TYPE"])) {
        ?>
<div id="wdif-doc-<?php 
        echo $arWDFile['ID'];
        ?>
" class="feed-com-file-inline feed-com-file-wrap wduf-files-entity"><?php 
        ?>
<span class="feed-com-file-inline feed-com-img-wrap feed-com-img-load" style="width:<?php 
        echo $arWDFile["width"];
        ?>
px;height:<?php 
        echo $arWDFile["height"];
        ?>
px;"><?php 
        ?>
<img onload="this.parentNode.className='feed-com-img-wrap';" <?php 
コード例 #24
0
ファイル: medialib.php プロジェクト: andy-profi/bxApiDocs
 public static function GenerateThumbnail(&$arFile, $Params = array())
 {
     $rootPath = isset($Params['rootPath']) ? $Params['rootPath'] : CSite::GetSiteDocRoot(false);
     if (CFile::IsImage($arFile['FILE_NAME'])) {
         $arResized = CFile::ResizeImageGet($arFile, array('width' => $Params['width'], 'height' => $Params['height']));
         if ($arResized) {
             $arFile['THUMB_PATH'] = $arResized['src'];
         }
         $arFile['TYPE'] = 'image';
     } else {
         $arFile['TYPE'] = 'file';
     }
 }
コード例 #25
0
ファイル: wiki_parser.php プロジェクト: Satariall/izurit
 function _processFileCallback($matches)
 {
     static $sImageAlign = '';
     $bLink = false;
     if ($matches[1] == ':') {
         $bLink = true;
     }
     // if the internal file then get it
     $sFile = $sFileName = $sPath = trim($matches[3]);
     $bOur = false;
     if (is_numeric($sFile) && in_array($sFile, $this->arFile)) {
         $arFile = CFile::GetFileArray($sFile);
         if ($arFile != false) {
             $bOur = true;
             $sPath = $arFile['SRC'];
             $sFileName = $arFile['ORIGINAL_NAME'];
         }
     } else {
         if (isset($this->arVersionFile[strtolower($sFile)])) {
             $sPath = $this->arVersionFile[strtolower($sFile)];
             $sFileName = $sFile;
         } else {
             if (!empty($this->arFile)) {
                 $arFilter = array('@ID' => implode(',', $this->arFile));
                 $rsFile = CFile::GetList(array(), $arFilter);
                 while ($arFile = $rsFile->Fetch()) {
                     if ($arFile['ORIGINAL_NAME'] == $sFile) {
                         $bOur = true;
                         $sFile = $arFile['ID'];
                         $sPath = CFile::GetFileSRC($arFile);
                         $sFileName = $arFile['ORIGINAL_NAME'];
                         break;
                     }
                 }
             }
         }
     }
     // if the image is processed as a picture
     $sName = bx_basename($sPath);
     if (CFile::IsImage($sName)) {
         if ($bOur) {
             $imageFile = CFile::MakeFileArray($sPath);
             $checkRes = CFile::CheckImageFile($imageFile);
             if ($checkRes != null) {
                 return $checkRes;
             }
             if ($bLink) {
                 $sReturn = '<a href="' . htmlspecialcharsbx($sPath) . '" title="' . ($s = htmlspecialcharsbx($sFileName)) . '">' . $s . '</a>';
             } else {
                 $sReturn = CFile::ShowImage($sFile, COption::GetOptionString('wiki', 'image_max_width', 600), COption::GetOptionString('wiki', 'image_max_height', 600), 'border="0" align="' . $sImageAlign . '"');
             }
         } else {
             if ($bLink) {
                 $sReturn = '<a href="' . htmlspecialcharsbx($sPath) . '" title="' . ($s = htmlspecialcharsbx($sName)) . '">' . $s . '</a>';
             } else {
                 $sReturn = '<img src="' . htmlspecialcharsbx($sPath) . '" alt="' . htmlspecialcharsbx($sFileName) . '"/>';
             }
         }
     } else {
         if (strpos($sPath, 'http://') === 0) {
             $sReturn = ' [ <a href="' . htmlspecialcharsbx($sFile) . '" title="' . GetMessage('FILE_FILE_DOWNLOAD') . '">' . GetMessage('FILE_DOWNLOAD') . '</a> ] ';
         } else {
             $sReturn = '[' . GetMessage('FILE_NAME') . ':' . htmlspecialcharsbx(is_numeric($sFile) || empty($sFileName) ? $sFile : $sFileName) . ']';
         }
     }
     return $sReturn;
 }
コード例 #26
0
ファイル: admin_tool.php プロジェクト: akniyev/arteva.ru
function showImageOrDownloadLink($fileId, $orderId = 0, $arSize = array("WIDTH" => 90, "HEIGHT" => 90))
{
	$resultHTML = "";
	$arFile = CFile::GetFileArray($fileId);

	if ($arFile)
	{
		$is_image = CFile::IsImage($arFile["FILE_NAME"], $arFile["CONTENT_TYPE"]);
		if ($is_image)
			$resultHTML = CFile::ShowImage($arFile["ID"], $arSize["WIDTH"], $arSize["HEIGHT"], "border=0", "", true);
		else
			$resultHTML = "<a href=\"sale_order_detail.php?ID=".$orderId."&download=Y&file_id=".$arFile["ID"]."&".bitrix_sessid_get()."\">".$arFile["ORIGINAL_NAME"]."</a>";
	}

	return $resultHTML;
}
コード例 #27
0
                    $res["basic"] = array("src" => $res["original"]["src"] . "&" . http_build_query($arParams["SCREEN_SIZE"]), "width" => $arDestinationSize["width"], "height" => $arDestinationSize["height"]);
                }
            }
            $arResult["FILES"][$id] = array_merge($arResult["FILES"][$id], $res);
            $images[$id] = $arResult["FILES"][$id];
        } else {
            $files[$id] = $arWDFile;
        }
    }
    if ($this->__page == "view") {
        $arResult['IMAGES'] = $images;
        $arResult['FILES'] = $files;
    }
} else {
    $arParams["THUMB_SIZE"] = 100;
    $http_query = array("cache_image" => "Y", "width" => $arParams["THUMB_SIZE"], "height" => $arParams["THUMB_SIZE"]);
    if (isset($arParams["THUMB_SIZE"])) {
        foreach ($arResult['ELEMENTS'] as $id => $arElement) {
            if (CFile::IsImage($arElement['NAME'], $arElement['FILE']["CONTENT_TYPE"])) {
                CFile::ScaleImage($arElement["FILE"]["WIDTH"], $arElement["FILE"]["HEIGHT"], array("width" => $arParams["THUMB_SIZE"], "height" => $arParams["THUMB_SIZE"]), BX_RESIZE_IMAGE_PROPORTIONAL, $bNeedCreatePicture, $arSourceSize, $arDestinationSize);
                if ($bNeedCreatePicture) {
                    $arElement["original"] = array("src" => $arElement["URL_GET"], "width" => $arElement["FILE"]["WIDTH"], "height" => $arElement["FILE"]["HEIGHT"]);
                    $arElement["FILE"]["WIDTH"] = $arDestinationSize["width"];
                    $arElement["FILE"]["HEIGHT"] = $arDestinationSize["height"];
                    $arElement["URL_PREVIEW"] = $arElement["URL_GET"] . (strpos($arElement['URL_GET'], "?") === false ? "?" : "&") . http_build_query($http_query);
                    $arResult['ELEMENTS'][$id] = $arElement;
                }
            }
        }
    }
}
コード例 #28
0
<?php

if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) {
    die;
}
$arResult["ELEMENT"]["URL"]["~DOWNLOAD"] = $arResult["ELEMENT"]["URL"]["DOWNLOAD"];
if (!isset($arParams["THUMB_SIZE"]) && isset($_REQUEST["size"])) {
    $arParams["THUMB_SIZE"] = $_REQUEST["size"] > 0 && $_REQUEST["size"] < 600 ? $_REQUEST["size"] : 600;
}
if (isset($arParams["THUMB_SIZE"])) {
    if (CFile::IsImage($arResult["ELEMENT"]['NAME'], $arResult["ELEMENT"]['FILE']["CONTENT_TYPE"])) {
        CFile::ScaleImage($arResult["ELEMENT"]["FILE"]["WIDTH"], $arResult["ELEMENT"]["FILE"]["HEIGHT"], array("width" => $arParams["THUMB_SIZE"], "height" => $arParams["THUMB_SIZE"]), BX_RESIZE_IMAGE_PROPORTIONAL, $bNeedCreatePicture, $arSourceSize, $arDestinationSize);
        if ($bNeedCreatePicture) {
            $arResult["ELEMENT"]["original"] = array("src" => $arResult["ELEMENT"]["URL"]["DOWNLOAD"], "width" => $arResult["ELEMENT"]["FILE"]["WIDTH"], "height" => $arResult["ELEMENT"]["FILE"]["HEIGHT"]);
            $arResult["ELEMENT"]["FILE"]["WIDTH"] = $arDestinationSize["width"];
            $arResult["ELEMENT"]["FILE"]["HEIGHT"] = $arDestinationSize["height"];
            $arResult["ELEMENT"]["URL"]["DOWNLOAD"] = WDAddPageParams($arResult["ELEMENT"]["URL"]["DOWNLOAD"], array("cache_image" => "Y", "width" => $arParams["THUMB_SIZE"], "height" => $arParams["THUMB_SIZE"]));
        }
    }
}
コード例 #29
0
ファイル: file.php プロジェクト: spas-viktor/books
 function ShowFile($iFileID, $max_file_size = 0, $iMaxW = 0, $iMaxH = 0, $bPopup = false, $sParams = false, $sPopupTitle = false, $iSizeWHTTP = 0, $iSizeHHTTP = 0)
 {
     $strResult = "";
     $arFile = CFile::GetFileArray($iFileID);
     if ($arFile) {
         $max_file_size = intval($max_file_size);
         if ($max_file_size <= 0) {
             $max_file_size = 1000000000;
         }
         $ct = $arFile["CONTENT_TYPE"];
         $isVideo = strpos($ct, "video/") === 0;
         $isAudio = strpos($ct, "audio/") === 0;
         if ($max_file_size >= $arFile["FILE_SIZE"] && ($isVideo || $isAudio)) {
             $strResult = '<OBJECT ID="WMP64" WIDTH="' . ($iMaxW > 0 ? $iMaxW : '250') . '" HEIGHT="' . ($isAudio ? '45' : ($iMaxH > 0 ? $iMaxH : '220')) . '" CLASSID="CLSID:22D6f312-B0F6-11D0-94AB-0080C74C7E95" STANDBY="Loading Windows Media Player components..." TYPE="application/x-oleobject"> ' . '<PARAM NAME="AutoStart" VALUE="false"> ' . '<PARAM NAME="ShowDisplay" VALUE="false">' . '<PARAM NAME="ShowControls" VALUE="true" >' . '<PARAM NAME="ShowStatusBar" VALUE="0">' . '<PARAM NAME="FileName" VALUE="' . $arFile["SRC"] . '"> ' . '</OBJECT>';
         } elseif ($max_file_size >= $arFile["FILE_SIZE"] && CFile::IsImage($arFile["SRC"], $ct)) {
             $strResult = CFile::ShowImage($arFile, $iMaxW, $iMaxH, $sParams, "", $bPopup, $sPopupTitle, $iSizeWHTTP, $iSizeHHTTP);
         } else {
             $strResult = ' [ <a href="' . $arFile["SRC"] . '" title="' . GetMessage("FILE_FILE_DOWNLOAD") . '">' . GetMessage("FILE_DOWNLOAD") . '</a> ] ';
         }
     }
     return $strResult;
 }