AuthForm(GetMessage("ACCESS_DENIED")); IncludeModuleLangFile($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/support/include.php"); \Bitrix\Main\Localization\Loc::loadMessages(__FILE__); $err_mess = "File: ".__FILE__."
Line: "; define("HELP_FILE","ticket_list.php"); global $USER_FIELD_MANAGER; /*************************************************************************** Functions ***************************************************************************/ function CheckFields() { global $ID, $TITLE, $MESSAGE, $arFILES, $bSupportTeam, $bAdmin; $max_size = 0; $arMsg = Array(); if (trim($TITLE) == '' && intval($ID)<=0) //$str .= GetMessage("SUP_FORGOT_TITLE")."
"; $arMsg[] = array("id"=>"TITLE", "text"=> GetMessage("SUP_FORGOT_TITLE")); if (trim($MESSAGE) == '' && intval($ID)<=0) //$str .= GetMessage("SUP_FORGOT_MESSAGE")."
"; $arMsg[] = array("id"=>"MESSAGE", "text"=> GetMessage("SUP_FORGOT_MESSAGE")); 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($arFILES) && count($arFILES)>0) { $i = -1; foreach ($arFILES 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"))); } } if(!empty($arMsg)) { $e = new CAdminException($arMsg); $GLOBALS["APPLICATION"]->ThrowException($e); return false; } return true; } function Support_GetUserInfo($USER_ID, &$login, &$name, $safe_for_html=true) { static $arrUsers; $login = ""; $name = ""; if (intval($USER_ID)>0) { if (is_array($arrUsers) && in_array($USER_ID, array_keys($arrUsers))) { $login = $arrUsers[$USER_ID]["LOGIN"]; $name = $arrUsers[$USER_ID]["NAME"]; } else { $rsUser = CUser::GetByID($USER_ID); $arUser = $rsUser->Fetch(); $login = $arUser["LOGIN"]; $name = $arUser["NAME"]." ".$arUser["LAST_NAME"]; $arrUsers[$USER_ID] = array("LOGIN" => $login, "NAME" => $name); } if ($safe_for_html) { $login = htmlspecialcharsbx($login); $name = htmlspecialcharsbx($name); } } } function Support_GetDictionaryInfo($DID, &$name, &$desc, &$sid, $safe_for_html=true) { static $arrDic; $name = ""; $desc = ""; $sid = ""; if (intval($DID)>0) { if (is_array($arrDic) && in_array($DID, array_keys($arrDic))) { $name = $arrDic[$DID]["NAME"]; $desc = $arrDic[$DID]["DESC"]; $sid = $arrDic[$DID]["SID"]; } else { $rsD = CTicketDictionary::GetByID($DID); $arD = $rsD->Fetch(); $name = $arD["NAME"]; $desc = $arD["DESCR"]; $sid = $arD["SID"]; $arrDic[$DID] = array("NAME" => $name, "DESC" => $desc, "SID" => $sid); } if ($safe_for_html) { $name = htmlspecialcharsbx($name); $desc = htmlspecialcharsbx($desc); $sid = htmlspecialcharsbx($sid); } } } function _Support_GetDictionaryInfoEx($arDictionary = Array()) { //$arID = array_values($arDictionary); $arID = Array(); foreach ($arDictionary as $dic => $value) { if (intval($value) > 0) $arID[] = $value; else $GLOBALS["str_".$dic."_NAME"] = $GLOBALS["str_".$dic."_DESC"] = $GLOBALS["str_".$dic."_SID"] = ""; } if (!empty($arID)) { $arTypes = Array( "C" => "CATEGORY", "K" => "CRITICALITY", "S" => "STATUS", "M" => "MARK", "F" => "FUA", "SR" => "SOURCE", "D" => "DIFFICULTY" ); $rs = CTicketDictionary::GetList('', '', array("ID"=> $arID)); while ($ar = $rs->Fetch()) { $dic = $ar["C_TYPE"]; $GLOBALS["str_".$arTypes[$dic]."_NAME"] = $ar["NAME"]; $GLOBALS["str_".$arTypes[$dic]."_DESC"] = $ar["DESCR"]; $GLOBALS["str_".$arTypes[$dic]."_SID"] = $ar["SID"]; } } } function __GetDropDown($TYPE, &$TICKET_DICTIONARY) { $arReturn = Array(); if (array_key_exists($TYPE, $TICKET_DICTIONARY)) { foreach ($TICKET_DICTIONARY[$TYPE] as $key => $value) { $arReturn["REFERENCE"][] = $value["REFERENCE"]; $arReturn["REFERENCE_ID"][] = $key; } } return $arReturn; } function Support_GetSLAInfo($ID, &$name, &$description, $safe_for_html=true) { static $arrSLA; $name = ""; $description = ""; if (intval($ID)>0) { if (is_array($arrSLA) && in_array($ID, array_keys($arrSLA))) { $name = $arrSLA[$ID]["NAME"]; $description = $arrSLA[$ID]["DESCRIPTION"]; } else { $rs = CTicketSLA::GetByID($ID); $ar = $rs->Fetch(); $name = $ar["NAME"]; $description = $ar["DESCRIPTION"]; $arrSLA[$ar["ID"]] = array("NAME" => $ar["NAME"], "DESCRIPTION" => $ar["DESCRIPTION"]); } if ($safe_for_html) { $name = htmlspecialcharsbx($name); $description = htmlspecialcharsbx($description); } } } /*************************************************************************** Work with GET | POST ***************************************************************************/ $ID = intval($ID); if ($ID<=0) $bOwner = "Y"; else $bOwner = CTicket::IsOwner($ID) ? "Y" : "N"; if ($bDemo=="Y" && $bOwner=="Y") { $bSupportClient = "Y"; $bDemo = "N"; } $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"; if (intval($mdel_id)>0 && check_bitrix_sessid()) { CTicket::DeleteMessage($mdel_id, "Y"); LocalRedirect($TICKET_EDIT_URL."?ID=".$ID."&lang=".LANGUAGE_ID); } if ($action <> '' && check_bitrix_sessid()) { switch ($action) { case "close": CTicket::SetTicket(array("CLOSE" => "Y"), $ID); LocalRedirect($TICKET_EDIT_URL."?ID=".$ID."&lang=".LANGUAGE_ID); break; case "open": CTicket::SetTicket(array("CLOSE" => "N"), $ID); LocalRedirect($TICKET_EDIT_URL."?ID=".$ID."&lang=".LANGUAGE_ID); break; case "unmark_spam": CTicket::UnMarkAsSpam($ID); LocalRedirect($TICKET_EDIT_URL."?ID=".$ID."&lang=".LANGUAGE_ID); break; case "maybe_spam": CTicket::MarkAsSpam($ID, "N"); LocalRedirect($TICKET_EDIT_URL."?ID=".$ID."&lang=".LANGUAGE_ID); break; case "mark_spam": CTicket::MarkAsSpam($ID); LocalRedirect($TICKET_EDIT_URL."?ID=".$ID."&lang=".LANGUAGE_ID); break; } } // if button "Save" pressed if (($save <> '' || $apply <> '') && $REQUEST_METHOD=="POST" && check_bitrix_sessid()) { $arFILES = array(); if (is_array($_FILES) && count($_FILES)>0) { foreach ($_FILES as $key => $arFILE) { if ($arFILE["name"] <> '') { $arFILE["MODULE_ID"] = "support"; $arFILES[] = $arFILE; } } } if (CheckFields()) { if ($OPEN=="Y") $CLOSE="N"; if ($CLOSE=="Y") $OPEN="N"; if ($bAdmin!="Y" && $bSupportTeam!="Y") { $HIDDEN = "N"; $NOT_CHANGE_STATUS = "N"; } $arFields = array( "SITE_ID" => $SITE_ID, "CLOSE" => $CLOSE, "AUTO_CLOSE_DAYS" => $AUTO_CLOSE_DAYS, "TITLE" => $TITLE, "SLA_ID" => $SLA_ID, "CATEGORY_ID" => $CATEGORY_ID, "CRITICALITY_ID" => $CRITICALITY_ID, "STATUS_ID" => $STATUS_ID, "DIFFICULTY_ID" => $DIFFICULTY_ID, "MARK_ID" => $MARK_ID, "TASK_TIME" => $TASK_TIME, "HOLD_ON" => $HOLD_ON, "SOURCE_ID" => $SOURCE_ID, "OWNER_SID" => $OWNER_SID, "OWNER_USER_ID" => $OWNER_USER_ID, "MESSAGE_SOURCE_ID" => $MESSAGE_SOURCE_ID, "MESSAGE_AUTHOR_SID" => $MESSAGE_AUTHOR_SID, "MESSAGE_AUTHOR_USER_ID" => $MESSAGE_AUTHOR_USER_ID, "RESPONSIBLE_USER_ID" => $RESPONSIBLE_USER_ID, "MESSAGE" => $MESSAGE, "HIDDEN" => $HIDDEN, "NOT_CHANGE_STATUS" => $NOT_CHANGE_STATUS, "FILES" => $arFILES, "SUPPORT_COMMENTS" => $SUPPORT_COMMENTS, "COUPON" => $COUPON, ); if ($ID > 0) { $arFields['CHANGE_TITLE'] = $TITLE; } $NOTIFY = ($HIDDEN=="Y") ? "N" : "Y"; $bSetTicket = false; if (CTicket::IsAdmin()) $bSetTicket = true; else { $rsTicket = CTicket::GetByID($ID, SITE_ID, $check_rights = "Y", $get_user_name = "N", $get_extra_names = "N"); if ($arTicket = $rsTicket->GetNext()) $bSetTicket = true; } if ($bDemo!="Y" && $bAdmin!="Y" && ($bSupportTeam=="Y" && intval($ID) > 0 && !$bSetTicket)) { // send to ticket list if ($OWNER_USER_ID!=$USER->GetID()) LocalRedirect($TICKET_LIST_URL."?lang=".LANGUAGE_ID); } $USER_FIELD_MANAGER->EditFormAddFields($PROPERTY_ID, $arFields); $ID = CTicket::SetTicket($arFields, $ID, "Y", $NOTIFY); if (intval($ID)>0) { CTicket::UpdateOnline($ID); if (isset($_SESSION['TICKET_ID']) && isset($_SESSION['MESSAGE_ID'])) { $intLastTicketID = $_SESSION['TICKET_ID']; $arParam = Array( 'SPLIT_TICKET_ID' => $ID, 'SPLIT_TICKET_TITLE' => $TITLE, 'SPLIT_MESSAGE_USER_ID' => $USER->GetID(), 'SPLIT_ATTACH_FILE' => isset($_POST['ATTACH_FILE']) ? $_POST['ATTACH_FILE'] : Array(), 'SOURCE_TICKET_ID' => $intLastTicketID, 'SOURCE_TICKET_TITLE' => $_SESSION['TICKET_TITLE'], 'SOURCE_MESSAGE_ID' => $MESSAGE_SOURCE_ID, 'SOURCE_MESSAGE_NUM' => $_SESSION['MESSAGE_NUM'], 'SOURCE_MESSAGE_DATE' => $_SESSION['MESSAGE_DATE'] ); CTicket::SplitTicket($arParam); unset($_SESSION['TICKET_ID']); unset($_SESSION['TICKET_TITLE']); unset($_SESSION['MESSAGE_ID']); unset($_SESSION['MESSAGE_NUM']); unset($_SESSION['MESSAGE_DATE']); if ($save <> '') // save -> new ticket LocalRedirect($TICKET_EDIT_URL."?ID=".$ID."&lang=".LANGUAGE_ID); elseif ($apply <> '') // apply -> original ticket LocalRedirect($TICKET_EDIT_URL."?ID=".$intLastTicketID."&lang=".LANGUAGE_ID); } else { if ($save <> '') LocalRedirect($TICKET_LIST_URL."?lang=".LANGUAGE_ID); elseif ($apply <> '') { // change responsible if ($bDemo!="Y" && $bAdmin!="Y" && ($bSupportTeam=="Y" && $RESPONSIBLE_USER_ID!=$arTicket['RESPONSIBLE_USER_ID'])) { // send to ticket list LocalRedirect($TICKET_LIST_URL."?lang=".LANGUAGE_ID); } else { // else refresh page LocalRedirect($TICKET_EDIT_URL."?ID=".$ID."&lang=".LANGUAGE_ID); } } } } else { $e = new CAdminException(array()); $GLOBALS["APPLICATION"]->ThrowException($e); $ID = intval($_REQUEST['ID']); } } } $arrSiteRef = array(); $arrSiteID = array(); $rs = CSite::GetList(); while ($ar = $rs->Fetch()) { $arrSiteRef[] = "[".$ar["ID"]."] ".$ar["NAME"]; $arrSiteID[] = $ar["ID"]; } $get_user_name = "N"; $get_extra_names = "N"; $ALL_TICKET_FILES = Array(); $arStrUsers = array(); $site_id = (defined("ADMIN_SECTION") && ADMIN_SECTION==true) ? "" : SITE_ID; $ticket = CTicket::GetByID($ID, $site_id, "Y", $get_user_name, $get_extra_names); if (!($ticket && $ticket->ExtractFields())) { $ID=0; $str_lang = $TICKET_SITE = (defined("ADMIN_SECTION") && ADMIN_SECTION==true) ? reset($arrSiteID) : SITE_ID; $str_RESPONSIBLE_USER_ID = intval(COption::GetOptionString('support', 'DEFAULT_RESPONSIBLE_ID', '0')); } else { $str_lang = $TICKET_SITE = $str_SITE_ID; if ($str_DATE_CLOSE <> '') $str_CLOSE = "Y"; CTicket::UpdateOnline($ID); $rsFiles = CTicket::GetFileList("s_id", "asc", array("TICKET_ID" => $ID)); { while ($arFile = $rsFiles->Fetch()) { $name = $arFile["ORIGINAL_NAME"] <> '' ? $arFile["ORIGINAL_NAME"] : $arFile["FILE_NAME"]; if ($arFile["EXTENSION_SUFFIX"] <> '') { $suffix_length = mb_strlen($arFile["EXTENSION_SUFFIX"]); $name = mb_substr($name, 0, mb_strlen($name) - $suffix_length); } $ALL_TICKET_FILES[$arFile["MESSAGE_ID"]][] = array("HASH" => $arFile["HASH"], "NAME" => $name, "FILE_SIZE" => $arFile["FILE_SIZE"]); } } if ($get_user_name=="N") { //Support_GetUserInfo($str_RESPONSIBLE_USER_ID, $str_RESPONSIBLE_LOGIN, $str_RESPONSIBLE_NAME); //Support_GetUserInfo($str_OWNER_USER_ID, $str_OWNER_LOGIN, $str_OWNER_NAME); //Support_GetUserInfo($str_CREATED_USER_ID, $str_CREATED_LOGIN, $str_CREATED_NAME); //Support_GetUserInfo($str_MODIFIED_USER_ID, $str_MODIFIED_BY_LOGIN, $str_MODIFIED_BY_NAME); } $arUserIDs = array($str_RESPONSIBLE_USER_ID, $str_OWNER_USER_ID, $str_CREATED_USER_ID, $str_MODIFIED_USER_ID); $arGuestIDs = array($str_OWNER_GUEST_ID, $str_CREATED_GUEST_ID, $str_MODIFIED_GUEST_ID); $arStrUsers =CTicket::GetUsersPropertiesArray($arUserIDs, $arGuestIDs); if ($get_extra_names=="N") { /*Support_GetDictionaryInfo($str_CATEGORY_ID, $str_CATEGORY_NAME, $str_CATEGORY_DESC, $str_CATEGORY_SID); Support_GetDictionaryInfo($str_CRITICALITY_ID, $str_CRITICALITY_NAME, $str_CRITICALITY_DESC, $str_CRITICALITY_SID); Support_GetDictionaryInfo($str_STATUS_ID, $str_STATUS_NAME, $str_STATUS_DESC, $str_STATUS_SID); Support_GetDictionaryInfo($str_MARK_ID, $str_MARK_NAME, $str_MARK_DESC, $str_MARK_SID); Support_GetDictionaryInfo($str_SOURCE_ID, $str_SOURCE_NAME, $str_SOURCE_DESC, $str_SOURCE_SID);*/ $arDictionary = Array( "CATEGORY" => $GLOBALS["str_CATEGORY_ID"], "CRITICALITY" => $GLOBALS["str_CRITICALITY_ID"], "STATUS" => $GLOBALS["str_STATUS_ID"], "MARK" => $GLOBALS["str_MARK_ID"], "SOURCE" => $GLOBALS["str_SOURCE_ID"] ); _Support_GetDictionaryInfoEx($arDictionary); Support_GetSLAInfo($str_SLA_ID, $str_SLA_NAME, $str_SLA_DESCRIPTION); } } $str_HIDDEN = COption::GetOptionString("support","DEFAULT_VALUE_HIDDEN"); $str_NOTIFY = COption::GetOptionString("support","DEFAULT_VALUE_NOTIFY"); $srt_NOT_CHANGE_STATUS = ""; if($e = $APPLICATION->GetException()) { $message = new CAdminMessage(GetMessage("SUP_ERROR"), $e); $DB->InitTableVarsForEdit("b_ticket", "", "str_"); } if ($ID>0) $sDocTitle = GetMessage("SUP_EDIT_RECORD", array("#ID#" => $ID, "#TITLE#" => htmlspecialcharsback($str_TITLE))); else $sDocTitle = GetMessage("SUP_NEW_RECORD"); if (($bSupportTeam=="Y" || $bAdmin=="Y" || $bDemo=="Y") && $str_IS_SPAM <> '') { if ($str_IS_SPAM=="Y") $sDocTitle .= " [".GetMessage("SUP_SPAM")."!]"; else $sDocTitle .= " [".GetMessage("SUP_SPAM")."?]"; } $APPLICATION->SetTitle($sDocTitle); if ($ADD_PUBLIC_CHAIN=="Y" || !isset($ADD_PUBLIC_CHAIN)) { $APPLICATION->AddChainItem(GetMessage("SUP_RECORDS_LIST"), $TICKET_LIST_URL); } $VIEW_TICKET_DEFAULT_MODE = COption::GetOptionString("support", "VIEW_TICKET_DEFAULT_MODE"); $DEFAULT_AUTO_CLOSE_DAYS = COption::GetOptionString("support", "DEFAULT_AUTO_CLOSE_DAYS"); $ONLINE_AUTO_REFRESH = COption::GetOptionString("support", "ONLINE_AUTO_REFRESH"); $str_AUTO_CLOSE_DAYS = $str_AUTO_CLOSE_DAYS <> '' ? $str_AUTO_CLOSE_DAYS : $DEFAULT_AUTO_CLOSE_DAYS; $bResponsible = $bSupportTeam; $can_select_message_owner = "N"; $can_select_owner = "N"; $can_select_site = "N"; $can_select_sla = "N"; $can_select_category = "N"; $can_select_status = "N"; $can_select_difficulty = "N"; $can_select_responsible = "N"; $can_select_criticality = "N"; $can_select_mark = "N"; $can_select_mode = "N"; $default_mode = "edit"; if ($VIEW_TICKET_DEFAULT_MODE <> '') $default_mode = $VIEW_TICKET_DEFAULT_MODE; if ($ID>0) { if ($bSupportTeam=="Y" || $bAdmin=="Y" || $bDemo=="Y") { $can_select_message_owner = "Y"; $can_select_owner = "Y"; $can_select_sla = "Y"; $can_select_site = "Y"; $can_select_category = "Y"; $can_select_status = "Y"; $can_select_difficulty = "Y"; $can_select_responsible = "Y"; $can_select_criticality = "Y"; if ($str_DATE_CLOSE == '' && $VIEW_TICKET_DEFAULT_MODE <> '') $can_select_mode = "Y"; } if ($bOwner=="Y") { $can_select_criticality = "Y"; $can_select_mark = "Y"; } } if ($ID<=0) { if (defined("ADMIN_SECTION") && ADMIN_SECTION==true) $can_select_site = "Y"; if ($bSupportTeam=="Y" || $bAdmin=="Y" || $bDemo=="Y") { $can_select_owner = "Y"; $can_select_sla = "Y"; $can_select_category = "Y"; $can_select_status = "Y"; $can_select_difficulty = "Y"; $can_select_responsible = "Y"; $can_select_criticality = "Y"; } if ($bOwner=="Y") { $can_select_category = "Y"; $can_select_criticality = "Y"; } } if ($can_select_sla=="Y") { $TICKET_SLA = (intval($str_SLA_ID)>0) ? $str_SLA_ID : 1; $arrSlaRef = array(); $arrSlaID = array(); $rs = CTicketSLA::GetDropDown(); while ($ar = $rs->Fetch()) { $arrSlaRef[] = $ar["REFERENCE"]; $arrSlaID[] = $ar["ID"]; } } else $TICKET_SLA = (intval($str_SLA_ID)>0) ? $str_SLA_ID : CTicketSLA::GetForUser($TICKET_SITE); $arrSUPPORT_TEAM = array(); $TICKET_DICTIONARY = CTicketDictionary::GetDropDownArray($TICKET_SITE, $TICKET_SLA); $TICKET_DICTIONARY_ALL = CTicketDictionary::GetDropDownArray(); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");?> GetMessage("MAIN_ADMIN_MENU_LIST"), "TITLE" => GetMessage("SUP_RECORDS_LIST"), "LINK" => "/bitrix/admin/ticket_list.php?lang=".LANGUAGE_ID, "ICON" => "btn_list", ), ); if(intval($ID)>0) { $aMenu[] = array("SEPARATOR"=>"Y"); $aMenu[] = array( "TEXT" => GetMessage("MAIN_ADMIN_MENU_CREATE"), "TITLE" => GetMessage("SUP_CREATE_NEW_TICKET"), "ICON" => "btn_new", "LINK" => "/bitrix/admin/ticket_edit.php?lang=".LANGUAGE_ID, ); if ($str_DATE_CLOSE == '') { $aMenu[] = array( //"ICON" => "btn_close", "TEXT" => GetMessage("MAIN_ADMIN_MENU_CLOSE"), "TITLE" => GetMessage("SUP_CLOSE_TICKET"), "LINK" => "/bitrix/admin/ticket_edit.php?ID=".$ID."&action=close&lang=".LANGUAGE_ID."&".bitrix_sessid_get() ); } else { $aMenu[] = array( //"ICON" => "btn_open", "TEXT" => GetMessage("MAIN_ADMIN_MENU_OPEN"), "TITLE" => GetMessage("SUP_OPEN_TICKET"), "LINK" => "/bitrix/admin/ticket_edit.php?ID=".$ID."&action=open&lang=".LANGUAGE_ID."&".bitrix_sessid_get() ); } if ($bSupportTeam=="Y" || $bAdmin=="Y") { //$aMenu[] = array("NEWBAR"=>"Y"); $arSpamMenu = Array(); if ($str_IS_SPAM <> '') { $arSpamMenu[] = array( "TEXT" => GetMessage("SUP_UNMARK_TICKET"), "ACTION" => "window.location='/bitrix/admin/ticket_edit.php?ID=".$ID."&action=unmark_spam&lang=".LANGUAGE_ID."&".bitrix_sessid_get()."';" ); } if ($str_IS_SPAM!="N") { $arSpamMenu[] = array( "TEXT" => GetMessage("SUP_MARK_AS_POSSIBLE_SPAM"), "ACTION" => "window.location='/bitrix/admin/ticket_edit.php?ID=".$ID."&action=maybe_spam&lang=".LANGUAGE_ID."&".bitrix_sessid_get()."';" ); } if ($str_IS_SPAM!="Y" && $bAdmin=="Y") { $arSpamMenu[] = array( "TEXT" => GetMessage("SUP_MARK_AS_SPAM"), "ACTION" => "window.location='/bitrix/admin/ticket_edit.php?ID=".$ID."&action=mark_spam&lang=".LANGUAGE_ID."&".bitrix_sessid_get()."';" ); } if ($bAdmin=="Y" || $bDemo=="Y") { $arSpamMenu[] = array( "TEXT" => GetMessage("SUP_MARK_AS_SPAM_DELETE"), "ACTION" => "javascript:if(confirm('".GetMessage("SUP_MARK_AS_SPAM_DELETE_CONFIRM")."')) window.location='/bitrix/admin/ticket_list.php?ID=".$ID."&action=mark_spam_delete&lang=".LANGUAGE_ID."&".bitrix_sessid_get()."';", ); $aMenu[] = array( "TEXT" => GetMessage("MAIN_ADMIN_MENU_DELETE"), "TITLE" => GetMessage("SUP_DELETE_TICKET"), "ICON" => "btn_delete", "LINK" => "javascript:if(confirm('".GetMessage("SUP_DELETE_TICKET_CONFIRM")."')) window.location='/bitrix/admin/ticket_list.php?ID=".$ID."&action=delete&redirectafter=Y&lang=".LANGUAGE_ID."&".bitrix_sessid_get()."';", ); } if (!empty($arSpamMenu)) { $aMenu[] = array( "TEXT" => GetMessage("SUP_MENU_SPAM"), "TITLE" => GetMessage("SUP_MENU_SPAM_TITLE"), "MENU" => $arSpamMenu, ); } } } //echo ShowSubMenu($aMenu); $context = new CAdminContextMenu($aMenu); $context->Show(); if ($message) { echo $message->Show(); $messageA = $message->GetMessages(); } /*************************************************************************** HTML form ****************************************************************************/ $hkInst=CHotKeys::getInstance(); $arHK = array("B", "I", "U", "QUOTE", "CODE", "TRANSLIT"); foreach($arHK as $n => $s) { $arExecs = $hkInst->GetCodeByClassName("TICKET_EDIT_$s"); echo $hkInst->PrintJSExecs($arExecs); } ?> ExtractFields()) { $obUserTiket = $USER->GetByID($str_OWNER_USER_ID); $arUserTiket = $obUserTiket->Fetch(); $str_OWNER_LOGIN = htmlspecialcharsbx($arUserTiket['LOGIN']); $str_OWNER_NAME = htmlspecialcharsbx($arUserTiket['NAME']).' '.htmlspecialcharsbx($arUserTiket['LAST_NAME']); $str_lang = $TICKET_SITE = $str_SITE_ID; $TICKET_SLA = $str_SLA_ID = CTicketSLA::GetForUser($str_SITE_ID, $str_OWNER_USER_ID); $str_DIFFICULTY_ID = ''; $str_CRITICALITY_ID = ''; $obTicketMessage = CTicket::GetMessageByID($_SESSION['MESSAGE_ID']); $arTicketMessage = $obTicketMessage->Fetch(); $MESSAGE = $arTicketMessage['MESSAGE']; $_SESSION['MESSAGE_NUM'] = intval($arTicketMessage['C_NUMBER']); $_SESSION['MESSAGE_DATE'] = $arTicketMessage['DATE_CREATE']; $_SESSION["TICKET_TITLE"] = $str_TITLE; $str_TITLE = ''; $str_DATE_CLOSE = null; $arFiles = array(); if ($rsFiles = CTicket::GetFileList("s_id", "asc", array("MESSAGE_ID" => $_SESSION['MESSAGE_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); } $arFile["NAME"] = $name; $arFiles[] = $arFile; } } } } ?>