AuthForm(GetMessage("ACCESS_DENIED")); IncludeModuleLangFile($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/support/include.php"); IncludeModuleLangFile($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/support/admin/ticket_message_edit.php"); $err_mess = "File: ".__FILE__."
Line: "; define("HELP_FILE","ticket_list.php"); /*************************************************************************** Функции ***************************************************************************/ function CheckFields() // проверка на наличие обязательных полей { global $arrFILES, $bAdmin, $bSupportTeam; $arMsg = Array(); if ($bSupportTeam!="Y" && $bAdmin!="Y") { $max_size = COption::GetOptionString("support", "SUPPORT_MAX_FILESIZE"); $max_size = intval($max_size)*1024; } if ($max_size>0 && is_array($arrFILES) && count($arrFILES)>0) { $i = 0; foreach ($arrFILES as $key => $arFILE) { $i++; if (intval($arFILE["size"])>$max_size) { $arMsg[] = array("id"=>"FILE_".$i, "text"=> str_replace("#FILE_NAME#", $arFILE["name"], GetMessage("SUP_MAX_FILE_SIZE_EXCEEDING"))); //$str .= str_replace("#FILE_NAME#", $arFILE["name"], GetMessage("SUP_MAX_FILE_SIZE_EXCEEDING"))."
"; } } } if(!empty($arMsg)) { $e = new CAdminException($arMsg); $GLOBALS["APPLICATION"]->ThrowException($e); return false; } return true; } /*************************************************************************** Обработка GET | POST ***************************************************************************/ $TICKET_LIST_URL = $TICKET_LIST_URL <> ''? CUtil::AddSlashes(htmlspecialcharsbx((mb_substr($TICKET_LIST_URL, 0, 4) == 'http'?'':'/').$TICKET_LIST_URL)) : "ticket_list.php"; $TICKET_EDIT_URL = $TICKET_EDIT_URL <> ''? CUtil::AddSlashes(htmlspecialcharsbx((mb_substr($TICKET_EDIT_URL, 0, 4) == 'http'?'':'/').$TICKET_EDIT_URL)) : "ticket_edit.php"; $TICKET_MESSAGE_EDIT_URL = $TICKET_MESSAGE_EDIT_URL <> ''? CUtil::AddSlashes(htmlspecialcharsbx((mb_substr($TICKET_MESSAGE_EDIT_URL, 0, 4) == 'http'?'':'/').$TICKET_MESSAGE_EDIT_URL)) : "ticket_message_edit.php"; $arFiles = array(); $ID = intval($ID); $TICKET_ID = intval($TICKET_ID); $rsTicket = CTicket::GetByID($TICKET_ID, LANGUAGE_ID, "Y", "N", "N"); if ($arTicket = $rsTicket->Fetch()) { CTicket::UpdateOnline($ID, $USER->GetID()); if ($rsFiles = CTicket::GetFileList("s_id", "asc", array("MESSAGE_ID" => $ID))) : while ($arFile = $rsFiles->Fetch()) : $name = $arFile["ORIGINAL_NAME"]; if ($arFile["EXTENSION_SUFFIX"] <> '') : $suffix_length = mb_strlen($arFile["EXTENSION_SUFFIX"]); $name = mb_substr($name, 0, mb_strlen($name) - $suffix_length); endif; $arFile["NAME"] = $name; $arFiles[] = $arFile; endwhile; endif; // если была нажата кнопка "save" на текущей странице if (($save <> '' || $apply <> '') && $REQUEST_METHOD=="POST" && $bAdmin=="Y" && $ID>0 && $TICKET_ID>0 && check_bitrix_sessid()) { $DB->PrepareFields("b_ticket_message"); $arrFILES = array(); if (is_array($arFiles) && count($arFiles)>0) { reset ($arFiles); foreach($arFiles as $arFile) { $key = "EXIST_FILE_".$arFile["ID"]; $arF = $_FILES[$key]; $arF["MODULE_ID"] = "support"; $arF["old_file"] = $arFile["ID"]; $arF["del"] = ${$key."_del"}; if ($arF["del"]=="Y" || $arF["name"] <> '') $arrFILES[] = $arF; } } if (is_array($_FILES) && count($_FILES)>0) { foreach ($_FILES as $key => $arF) { if ($arF["name"] <> '') { $arF["MODULE_ID"] = "support"; if (mb_strpos($key, "NEW_FILE") !== false) { $arrFILES[] = $arF; } } } } if (CheckFields()) { $IS_SPAM = ($str_IS_SPAM=="Y" || $str_IS_SPAM=="N") ? $str_IS_SPAM : ""; $IS_HIDDEN = ($str_IS_HIDDEN=="Y" || $str_IS_HIDDEN=="N") ? $str_IS_HIDDEN : ""; $IS_LOG = ($str_IS_LOG=="Y" || $str_IS_LOG=="N") ? $str_IS_LOG : ""; $IS_OVERDUE = ($str_IS_OVERDUE=="Y" || $str_IS_OVERDUE=="N") ? $str_IS_OVERDUE : ""; $arFields = array( "C_NUMBER" => $C_NUMBER, "MESSAGE" => $MESSAGE, "SOURCE_ID" => $SOURCE_ID, "OWNER_SID" => $OWNER_SID, "OWNER_USER_ID" => $OWNER_USER_ID, "EXTERNAL_ID" => $EXTERNAL_ID, "EXTERNAL_FIELD_1" => $EXTERNAL_FIELD_1, "IS_SPAM" => $IS_SPAM, "TASK_TIME" => $TASK_TIME, "IS_HIDDEN" => $IS_HIDDEN, "IS_LOG" => $IS_LOG, "IS_OVERDUE" => $IS_OVERDUE, "NOT_CHANGE_STATUS" => $NOT_CHANGE_STATUS, "FILES" => $arrFILES ); if ($IS_LOG == "Y") unset($arFields["TASK_TIME"]); CTicket::UpdateMessage($ID, $arFields); //CTicket::UpdateLastParams2($TICKET_ID); CTicket::UpdateLastParamsN($TICKET_ID, array("EVENT"=>array(CTicket::UPDATE)), true, true); if (!$strError) { if ($save <> '') LocalRedirect($TICKET_EDIT_URL."?lang=".LANGUAGE_ID."&ID=".$TICKET_ID); elseif ($apply <> '') LocalRedirect($TICKET_MESSAGE_EDIT_URL."?ID=".$ID. "&TICKET_ID=".$TICKET_ID."&lang=".LANGUAGE_ID); } } else { if ($e = $APPLICATION->GetException()) $strError = new CAdminMessage(GetMessage("SUP_ERROR"), $e); } } $message = CTicket::GetMessageByID($ID); if (!($message->ExtractFields())) { //$strError .= GetMessage("SUP_MESSAGE_NOT_FOUND")."
"; $e = $APPLICATION->GetException(); $strError = new CAdminMessage(GetMessage("SUP_MESSAGE_NOT_FOUND"),$e); } else { $arFiles = array(); if ($rsFiles = CTicket::GetFileList("s_id", "asc", array("MESSAGE_ID" => $ID))) : while ($arFile = $rsFiles->Fetch()) : $name = $arFile["ORIGINAL_NAME"]; if ($arFile["EXTENSION_SUFFIX"] <> '') : $suffix_length = mb_strlen($arFile["EXTENSION_SUFFIX"]); $name = mb_substr($name, 0, mb_strlen($name) - $suffix_length); endif; $arFile["NAME"] = $name; $arFiles[] = $arFile; endwhile; endif; } if ($strError) $DB->InitTableVarsForEdit("b_ticket_message", "", "str_"); $str_OWNER_USER_ID = intval($str_OWNER_USER_ID)>0 ? intval($str_OWNER_USER_ID) : ""; $sDocTitle = GetMessage("SUP_EDIT_RECORD", array("#ID#" => $ID, "#TID#" => $TICKET_ID)); $APPLICATION->SetTitle($sDocTitle); } if ($ADD_PUBLIC_CHAIN=="Y" || !isset($ADD_PUBLIC_CHAIN)) { $APPLICATION->AddChainItem(GetMessage("SUP_TICKETS_LIST"), $TICKET_LIST_URL); $APPLICATION->AddChainItem(str_replace("#TID#",$TICKET_ID,GetMessage("SUP_TICKET_EDIT")), $TICKET_EDIT_URL."?ID=".$TICKET_ID); } $is_ie = IsIE(); $is_ie = true; require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");?> str_replace("#TID#",$TICKET_ID,GetMessage("SUP_TICKET_EDIT")), "LINK" => "/bitrix/admin/ticket_edit.php?lang=".LANGUAGE_ID."&ID=".$TICKET_ID ); if (intval($arTicket["MESSAGES"])>1) { $aMenu[] = array("SEPARATOR"=>"Y"); $aMenu[] = array( "TEXT" => GetMessage("SUP_DELETE_MESSAGE"), "LINK" => "javascript:if(confirm('".GetMessage("SUP_DELETE_MESSAGE_CONFIRM")."')) window.location='/bitrix/admin/ticket_edit.php?ID=".$TICKET_ID."&mdel_id=".$ID."&lang=".LANGUAGE_ID."&".bitrix_sessid_get(). "&set_default=Y';", "WARNING"=>"Y" ); } //echo ShowSubMenu($aMenu); $context = new CAdminContextMenu($aMenu); $context->Show(); //echo ShowError($strError); //echo ShowNote($strNote); if ($strError) echo $strError->Show(); /*************************************************************************** HTML форма ****************************************************************************/ ?>