require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/support/prolog.php");
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/support/include.php");
$bDemo = (CTicket::IsDemo()) ? "Y" : "N";
$bAdmin = (CTicket::IsAdmin()) ? "Y" : "N";
$bSupportClient = (CTicket::IsSupportClient()) ? "Y" : "N";
$bSupportTeam = (CTicket::IsSupportTeam()) ? "Y" : "N";
$message = null;
$entity_id = $PROPERTY_ID = "SUPPORT";
$bADS = $bDemo == 'Y' || $bAdmin == 'Y' || $bSupportTeam == 'Y';
if($bAdmin!="Y" && $bSupportTeam!="Y" && $bDemo!="Y" && $bSupportClient!="Y") $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
IncludeModuleLangFile($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/support/include.php");
IncludeModuleLangFile($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/support/admin/ticket_list.php");
$err_mess = "File: ".__FILE__."
Line: ";
/***************************************************************************
Функции
***************************************************************************/
function CheckFilter() // проверка введенных полей
{
global $strError, $arFilterFields;
reset($arFilterFields); foreach ($arFilterFields as $f) global $$f;
$str = "";
$arMsg = Array();
if (trim($find_date_create1) <> '' || trim($find_date_create2) <> '')
{
// Дата создания
$date_1_ok = false;
$date1_stm = MkDateTime(ConvertDateTime($find_date_create1,"D.M.Y"),"d.m.Y");
$date2_stm = MkDateTime(ConvertDateTime($find_date_create2,"D.M.Y")." 23:59","d.m.Y H:i");
if (!$date1_stm && trim($find_date_create1) <> '')
{
//$str.= GetMessage("SUP_WRONG_DATE_CREATE_FROM")."
";
$arMsg[] = array("id"=>"find_date_create1", "text"=> GetMessage("SUP_WRONG_DATE_CREATE_FROM"));
}
else
{
$date_1_ok = true;
}
if (!$date2_stm && trim($find_date_create2) <> '')
{
//$str.= GetMessage("SUP_WRONG_DATE_CREATE_TILL")."
";
$arMsg[] = array("id"=>"find_date_create2", "text"=> GetMessage("SUP_WRONG_DATE_CREATE_TILL"));
}
elseif ($date_1_ok && $date2_stm <= $date1_stm && $date2_stm <> '')
{
//$str.= GetMessage("SUP_FROM_TILL_DATE_CREATE")."
";
$arMsg[] = array("id"=>"find_date_create2", "text"=> GetMessage("SUP_FROM_TILL_DATE_CREATE"));
}
}
if (trim($find_date_timestamp1) <> '' || trim($find_date_timestamp2) <> '')
{
// Дата изменения
$date_1_ok = false;
$date1_stm = MkDateTime(ConvertDateTime($find_date_timestamp1,"D.M.Y"),"d.m.Y");
$date2_stm = MkDateTime(ConvertDateTime($find_date_timestamp2,"D.M.Y")." 23:59","d.m.Y H:i");
if (!$date1_stm && trim($find_date_timestamp1) <> '')
{
//$str.= GetMessage("SUP_WRONG_DATE_TIMESTAMP_FROM")."
";
$arMsg[] = array("id"=>"find_date_timestamp1", "text"=> GetMessage("SUP_WRONG_DATE_TIMESTAMP_FROM"));
}
else
{
$date_1_ok = true;
}
if (!$date2_stm && trim($find_date_timestamp2) <> '')
{
//$str.= GetMessage("SUP_WRONG_DATE_TIMESTAMP_TILL")."
";
$arMsg[] = array("id"=>"find_date_timestamp2", "text"=> GetMessage("SUP_WRONG_DATE_TIMESTAMP_TILL"));
}
elseif ($date_1_ok && $date2_stm <= $date1_stm && $date2_stm <> '')
{
//$str.= GetMessage("SUP_FROM_TILL_DATE_TIMESTAMP")."
";
$arMsg[] = array("id"=>"find_date_timestamp2", "text"=> GetMessage("SUP_FROM_TILL_DATE_TIMESTAMP"));
}
}
if (trim($find_date_close1) <> '' || trim($find_date_close2) <> '')
{
// Дата закрытия
$date_1_ok = false;
$date1_stm = MkDateTime(ConvertDateTime($find_date_close1,"D.M.Y"),"d.m.Y");
$date2_stm = MkDateTime(ConvertDateTime($find_date_close2,"D.M.Y")." 23:59","d.m.Y H:i");
if (!$date1_stm && trim($find_date_close1) <> '')
{
//$str.= GetMessage("SUP_WRONG_DATE_CLOSE_FROM")."
";
$arMsg[] = array("id"=>"find_date_close1", "text"=> GetMessage("SUP_WRONG_DATE_CLOSE_FROM"));
}
else
{
$date_1_ok = true;
}
if (!$date2_stm && trim($find_date_close2) <> '')
{
//$str.= GetMessage("SUP_WRONG_DATE_CLOSE_TILL")."
";
$arMsg[] = array("id"=>"find_date_close2", "text"=> GetMessage("SUP_WRONG_DATE_CLOSE_TILL"));
}
elseif ($date_1_ok && $date2_stm <= $date1_stm && $date2_stm <> '')
{
//$str.= GetMessage("SUP_FROM_TILL_DATE_CLOSE")."
";
$arMsg[] = array("id"=>"find_date_close2", "text"=> GetMessage("SUP_FROM_TILL_DATE_CLOSE"));
}
}
// сообщений
if (intval($find_messages1)>0 and intval($find_messages2)>0 and $find_messages1>$find_messages2)
{
//$str .= GetMessage("SUP_MESSAGES1_MESSAGES2")."
";
$arMsg[] = array("id"=>"find_messages2", "text"=> GetMessage("SUP_MESSAGES1_MESSAGES2"));
}
if(!empty($arMsg))
{
$e = new CAdminException($arMsg);
$GLOBALS["APPLICATION"]->ThrowException($e);
return false;
}
return true;
}
/*function Support_GetUserInfo($USER_ID, &$login, &$name)
{
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 = htmlspecialcharsbx($arUser["LOGIN"]);
$name = htmlspecialcharsbx($arUser["NAME"]." ".$arUser["LAST_NAME"]);
$arrUsers[$USER_ID] = array("LOGIN" => $login, "NAME" => $name);
}
}
}*/
function Support_GetDictionaryInfo($DID, $TYPE, &$TICKET_DICTIONARY, &$name, &$desc, &$sid)
{
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"];
}
elseif(array_key_exists($TYPE, $TICKET_DICTIONARY) && array_key_exists($DID, $TICKET_DICTIONARY[$TYPE]))
{
$name = htmlspecialcharsbx($TICKET_DICTIONARY[$TYPE][$DID]["NAME"]);
$desc = htmlspecialcharsbx($TICKET_DICTIONARY[$TYPE][$DID]["DESCR"]);
$sid = $TICKET_DICTIONARY[$TYPE][$DID]["SID"];
$arrDic[$DID] = array("NAME" => $name, "DESC" => $desc, "SID" => $sid);
}
else
{
$rsD = CTicketDictionary::GetByID($DID);
$arD = $rsD->Fetch();
$name = htmlspecialcharsbx($arD["NAME"]);
$desc = htmlspecialcharsbx($arD["DESCR"]);
$sid = $arD["SID"];
$arrDic[$DID] = array("NAME" => $name, "DESC" => $desc, "SID" => $sid);
}
}
}
function Support_GetSiteInfo($SITE_ID)
{
static $arrSites;
$stSiteFullName = $SITE_ID;
if (is_array($arrSites) && in_array($SITE_ID, array_keys($arrSites)))
{
$stSiteFullName = $arrSites[$SITE_ID];
}
else
{
$rs = CSite::GetList();
while ($ar = $rs->Fetch())
{
$arrSites[$ar["ID"]] = "[".$ar["ID"]."] ".$ar["NAME"];
}
if (in_array($SITE_ID, array_keys($arrSites)))
{
$stSiteFullName = $arrSites[$SITE_ID];
}
}
return htmlspecialcharsEx($stSiteFullName);
}
function __GetDropDown($TYPE, &$TICKET_DICTIONARY)
{
$arReturn = Array();
if ($TYPE == "SR")
{
$arReturn["REFERENCE"][] = "web";
}
else
{
$arReturn["REFERENCE"][] = GetMessage("SUP_NO");
}
$arReturn["REFERENCE_ID"][] = "0";
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);
}
}
}
/***************************************************************************
Обработка GET | POST
****************************************************************************/
$arrUsers = array();
$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 ($tf == '')
{
$tf = ${COption::GetOptionString("main", "cookie_name", "BITRIX_SM")."_TICKET_FILTER"};
}
if ($tf == '')
{
$tf = "none";
}
$sTableID = "t_ticket_list";
if ($bADS)
$oSort = new CAdminSorting($sTableID, "s_default", "asc");
else
$oSort = new CAdminSorting($sTableID, "s_timestamp", "desc");
$lAdmin = new CAdminList($sTableID, $oSort);// инициализация списка
$arFilterHeads = array();
$arFilterHeads[] = GetMessage("SUP_F_TITLE_MESSAGE");
$arFilterHeads[] = GetMessage("SUP_F_ID");
if ($bADS)
{
$arFilterHeads[] = GetMessage("SUP_F_SITE");
}
$arFilterHeads[] = GetMessage("SUP_F_LAMP");
$arFilterHeads[] = GetMessage("SUP_F_CLOSE");
if ($bADS)
{
$arFilterHeads[] = GetMessage("SUP_F_HOLD_ON");
$arFilterHeads[] = GetMessage("SUP_F_SPAM");
$arFilterHeads[] = GetMessage("SUP_F_SPAM_MAYBE");
}
if ($bADS)
{
$arFilterHeads[] = GetMessage("SUP_F_DATE_CREATE");
}
if ($bADS)
{
$arFilterHeads[] = GetMessage("SUP_F_TIMESTAMP");
}
if ($bADS)
{
$arFilterHeads[] = GetMessage("SUP_F_OWNER");
}
if ($bADS)
{
$arFilterHeads[] = GetMessage("SUP_F_MODIFIED_BY");
}
if ($bADS)
{
$arFilterHeads[] = GetMessage("SUP_F_RESPONSIBLE");
}
if ($bADS)
{
$arFilterHeads[] = GetMessage("SUP_F_TICKET_TIME");
}
if ($bADS)
{
$arFilterHeads[] = GetMessage("SUP_F_MESSAGES_1_2");
$arFilterHeads[] = GetMessage("SUP_F_PROBLEM_TIME_1_2");
$arFilterHeads[] = GetMessage("SUP_F_OVERDUE_MESSAGES_1_2");
}
if ($bADS)
{
$arFilterHeads[] = GetMessage("SUP_F_AUTO_CLOSE_DAYS_LEFT");
}
if ($bADS)
{
$arFilterHeads[] = GetMessage("SUP_F_SLA");
}
if ($bADS)
{
$arFilterHeads[] = GetMessage("SUP_F_CATEGORY");
}
if ($bADS)
{
$arFilterHeads[] = GetMessage("SUP_F_CRITICALITY");
}
if ($bADS)
{
$arFilterHeads[] = GetMessage("SUP_F_STATUS");
}
if ($bADS)
{
$arFilterHeads[] = GetMessage("SUP_F_DIFFICULTY");
}
if ($bADS)
{
$arFilterHeads[] = GetMessage("SUP_F_MARK");
}
if ($bADS)
{
$arFilterHeads[] = GetMessage("SUP_F_SOURCE");
}
//$arFilterHeads[] = GetMessage("SUP_F_TITLE");
if ($bADS)
{
$arFilterHeads[] = GetMessage("SUP_F_SUPPORT_COMMENTS");
}
if ($bADS)
{
$arFilterHeads[] = GetMessage("SUP_F_SUPPORTTEAM_GROUP");
}
if ($bADS || $bSupportClient = 'Y')
{
$arFilterHeads[] = GetMessage("SUP_F_CLIENT_GROUP");
}
if ($bADS)
{
$arFilterHeads[] = GetMessage("SUP_F_COUPON");
}
$USER_FIELD_MANAGER->AddFindFields( $entity_id, $arFilterHeads );
$filter = new CAdminFilter(
$sTableID."_filter_id",
$arFilterHeads
);
if ($lAdmin->IsDefaultFilter())
{
if ($bADS)
{
$find_lamp = Array("red","yellow");
$by = "s_default";
$find_hold_on="N";
$sort = "asc";
}
else
{
$find_lamp = Array("red","green");
$by = "s_timestamp";
$sort = "desc";
}
$find_close="N";
$set_filter = "Y";
}
$arFilterFields = Array(
"find",
"find_type",
"find_message_exact_match",
"find_id",
"find_id_exact_match",
"find_site",
"find_lamp",
"find_date_create1",
"find_date_create2",
"find_date_timestamp1",
"find_date_timestamp2",
"find_date_close1",
"find_date_close2",
"find_close",
"find_ticket_time_1",
"find_ticket_time_2",
"find_title",
"find_title_exact_match",
"find_support_comments",
"find_support_comments_exact_match",
"find_messages1",
"find_messages2",
"find_problem_time1",
"find_problem_time2",
"find_overdue_messages1",
"find_overdue_messages2",
"find_auto_close_days_left1",
"find_auto_close_days_left2",
"find_owner",
"find_owner_exact_match",
"find_created_by",
"find_created_by_exact_match",
"find_responsible",
"find_responsible_exact_match",
"find_responsible_id",
"find_sla_id",
"find_category_id",
"find_criticality_id",
"find_status_id",
"find_difficulty_id",
"find_mark_id",
"find_source_id",
"find_modified_by",
"find_modified_by_exact_match",
"find_message",
"find_is_spam",
"find_is_spam_maybe",
"find_hold_on",
"find_supportteam_group_id",
"find_supportteam_group_id",
"find_client_group_id",
'find_coupon',
'find_coupon_exact_match',
);
$USER_FIELD_MANAGER->AdminListAddFilterFields( $entity_id, $arFilterFields );
$lAdmin->InitFilter($arFilterFields);//инициализация фильтра
InitBVar($find_id_exact_match);
InitBVar($find_title_exact_match);
InitBVar($find_support_comments_exact_match);
InitBVar($find_owner_exact_match);
InitBVar($find_created_by_exact_match);
InitBVar($find_responsible_exact_match);
InitBVar($find_modified_by_exact_match);
InitBVar($find_message_exact_match);
if (CheckFilter())
{
$arFilter = Array(
"MESSAGE_EXACT_MATCH" => $find_message_exact_match,
"ID" => ($find!="" && $find_type == "id"? $find: $find_id),
"ID_EXACT_MATCH" => $find_id_exact_match,
"SITE" => $find_site,
"LAMP" => $find_lamp,
"DATE_CREATE_1" => $find_date_create1,
"DATE_CREATE_2" => $find_date_create2,
"DATE_TIMESTAMP_1" => $find_date_timestamp1,
"DATE_TIMESTAMP_2" => $find_date_timestamp2,
"DATE_CLOSE_1" => $find_date_close1,
"DATE_CLOSE_2" => $find_date_close2,
"CLOSE" => $find_close,
"PROBLEM_TIME1" => $find_problem_time1,
"PROBLEM_TIME2" => $find_problem_time2,
"TICKET_TIME_1" => $find_ticket_time_1,
"TICKET_TIME_2" => $find_ticket_time_2,
"TITLE" => ($find!="" && $find_type == "name"? $find: $find_title),
"TITLE_EXACT_MATCH" => $find_title_exact_match,
"MESSAGES1" => $find_messages1,
"MESSAGES2" => $find_messages2,
"OVERDUE_MESSAGES1" => $find_overdue_messages1,
"OVERDUE_MESSAGES2" => $find_overdue_messages2,
"AUTO_CLOSE_DAYS_LEFT1" => $find_auto_close_days_left1,
"AUTO_CLOSE_DAYS_LEFT2" => $find_auto_close_days_left2,
"OWNER" => ($find!="" && $find_type == "owner"? $find: $find_owner),
"OWNER_EXACT_MATCH" => $find_owner_exact_match,
"CREATED_BY" => $find_created_by,
"CREATED_BY_EXACT_MATCH" => $find_created_by_exact_match,
"RESPONSIBLE" => $find_responsible,
"RESPONSIBLE_EXACT_MATCH" => $find_responsible_exact_match,
"RESPONSIBLE_ID" => $find_responsible_id,
"SLA_ID" => $find_sla_id,
"CATEGORY_ID" => $find_category_id,
"CRITICALITY_ID" => $find_criticality_id,
"STATUS_ID" => $find_status_id,
"DIFFICULTY_ID" => $find_difficulty_id,
"MARK_ID" => $find_mark_id,
"SOURCE_ID" => $find_source_id,
"MODIFIED_BY" => $find_modified_by,
"MODIFIED_BY_EXACT_MATCH" => $find_modified_by_exact_match,
"MESSAGE" => ($find!="" && $find_type == "message"? $find: $find_message),
"SUPPORT_COMMENTS" => $find_support_comments,
"SUPPORT_COMMENTS_EXACT_MATCH" => $find_support_comments_exact_match,
"IS_SPAM" => $find_is_spam,
"IS_SPAM_MAYBE" => $find_is_spam_maybe,
"HOLD_ON" => $find_hold_on,
"SUPPORTTEAM_GROUP_ID" => $find_supportteam_group_id,
"CLIENT_GROUP_ID" => $find_client_group_id,
'COUPON' => $find_coupon,
'COUPON_EXACT_MATCH' => $find_coupon_exact_match,
);
$USER_FIELD_MANAGER->AdminListAddFilter( $entity_id, $arFilter );
}
else
{
if($e = $APPLICATION->GetException())
{
$GLOBALS["lAdmin"]->AddFilterError(GetMessage("SUP_FILTER_ERROR").": ".$e->GetString());
//$message = new CAdminMessage(GetMessage("SUP_FILTER_ERROR"), $e);
}
}
// обработка действий групповых и одиночных
if($arID = $lAdmin->GroupAction())
{
if($_REQUEST['action_target']=='selected')
{
$rsData = CTicket::GetList(
'',
'',
$arFilter,
null,
"Y",
"Y",
"Y",
false,
array( "SELECT" => $lAdmin->GetVisibleHeaderColumns() )
);
while($arRes = $rsData->Fetch())
$arID[] = $arRes['ID'];
}
foreach($arID as $ID)
{
if($ID == '')
continue;
$ID = intval($ID);
switch($_REQUEST['action'])
{
case "close":
CTicket::SetTicket(array("CLOSE" => "Y"), $ID, "Y", "N");
break;
case "close_notify":
CTicket::SetTicket(array("CLOSE" => "Y"), $ID, "Y", "Y");
break;
case "open":
CTicket::SetTicket(array("CLOSE" => "N"), $ID, "Y", "N");
break;
case "open_notify":
CTicket::SetTicket(array("CLOSE" => "N"), $ID, "Y", "Y");
break;
case "unmark_spam":
CTicket::UnMarkAsSpam($ID);
break;
case "maybe_spam":
CTicket::MarkAsSpam($ID, "N");
break;
case "mark_spam":
CTicket::MarkAsSpam($ID);
break;
case "mark_spam_delete":
CTicket::MarkAsSpam($ID);
CTicket::Delete($ID);
break;
case "delete":
CTicket::Delete($ID);
if(isset($_REQUEST['redirectafter']) && $_REQUEST['redirectafter'] === "Y")
{
LocalRedirect($TICKET_LIST_URL."?lang=".LANGUAGE_ID);
}
break;
}
}
}
$get_extra_names = "N";
// инициализация списка - выборка данных
$TICKET_DICTIONARY = CTicketDictionary::GetDropDownArray();
$arHeaders = Array();
$arHeaders[] = array("id"=>"ID", "content"=>"ID", "sort"=>"s_id", "default"=>true,"align" => "center");
$arHeaders[] = array("id"=>"LAMP", "content"=>GetMessage("SUP_F_LAMP"), "sort"=>"s_lamp", "default"=>true,"align" => "center", "valign" => "middle");
$arHeaders[] = array("id"=>"TITLE", "content"=>GetMessage('SUP_TITLE'), "sort"=>"s_title", "default"=>true);
if ($bADS)
$arHeaders[] = array("id"=>"DATE_CREATE","content"=>GetMessage("SUP_DATE_CREATE"), "default"=>true, "sort"=>"s_date_create" );
$arHeaders[] = array("id"=>"TIMESTAMP_X", "content"=>GetMessage('SUP_TIMESTAMP'),"sort"=> "s_timestamp", "default"=>($bADS ? false : true ));
if ($bADS)
{
$arHeaders[] = array("id"=>"LAST_MESSAGE_DATE", "content"=>GetMessage('SUP_LAST_MESSAGE_DATE_EX'),"sort"=> "s_default", "default"=>true);
$arHeaders[] = array("id"=>"LAST_MESSAGE_DATE_EX", "content"=>GetMessage('SUP_LAST_MESSAGE_DATE'),"sort"=> "s_last_message_date");
}
$arHeaders[] = array("id"=>"MESSAGES", "content"=>GetMessage('SUP_MESSAGES'), "default"=>true, "sort" => "s_messages");
$arHeaders[] = array("id"=>"SLA_ID", "content"=>GetMessage("SUP_SLA"), "default"=>true, "sort"=>"s_sla");
$arHeaders[] = array("id"=>"CATEGORY_ID", "content"=>GetMessage("SUP_CATEGORY"), "default"=>false, "sort" => "s_category");
$arHeaders[] = array("id"=>"CRITICALITY_ID", "content"=>GetMessage("SUP_CRITICALITY"), "default"=>false, "sort" => "s_criticality");
$arHeaders[] = array("id"=>"SITE_ID", "content"=>GetMessage("SUP_SITE_ID"), "default"=>false, "sort" => "s_site_id");
$arHeaders[] = array("id"=>"RESPONSIBLE_USER_ID", "content"=>GetMessage("SUP_RESPONSIBLE"), "default"=>true, "sort" => "s_responsible");
$arHeaders[] = array("id"=>"STATUS_ID", "content"=>GetMessage("SUP_STATUS"), "default"=>false, "sort" => "s_status");
$arHeaders[] = array("id"=>"AUTO_CLOSE_DAYS_LEFT", "content"=>GetMessage("SUP_F_AUTO_CLOSE_DAYS_LEFT"), "sort" => "s_auto_close_days_left", "default"=>false);
if ($bADS)
$arHeaders[] = array("id"=>"DIFFICULTY_ID", "content"=>GetMessage("SUP_DIFFICULTY_1"), "default"=>false, "sort" => "s_difficulty");
$arHeaders[] = array("id"=>"MARK_ID", "content"=>GetMessage("SUP_MARK"), "default"=>false, "sort" => "s_mark");
if ($bADS)
$arHeaders[] = array("id"=>"PROBLEM_TIME", "content"=>GetMessage("SUP_PROBLEM_TIME"), "default"=>false, "sort" => "s_problem_time");
if ($bADS)
{
$arHeaders[] = array("id"=>"COUPON", "content"=>GetMessage("SUP_COUPON"), "default"=>false, "sort" => "s_coupon");
}
if ($bADS)
{
$arHeaders[] = array("id"=>"SUPPORT_DEADLINE", "content"=>GetMessage("SUP_DEADLINE"), "default"=>true, "sort" => "s_deadline");
}
$USER_FIELD_MANAGER->AdminListAddHeaders( $entity_id, $arHeaders );
// заголовок списка
$lAdmin->AddHeaders($arHeaders);
$get_user_name = "N";
global $by, $order;
$rsData = CTicket::GetList(
$by,
$order,
$arFilter,
null,
"Y",
$get_user_name,
$get_extra_names,
false,
array( "SELECT" => $lAdmin->GetVisibleHeaderColumns(), 'NAV_PARAMS' => array('nPageSize' => CAdminResult::GetNavSize($sTableID), 'bShowAll' => false) )
);
$rsData = new CAdminResult($rsData, $sTableID);
// установка строки навигации
$lAdmin->NavText($rsData->GetNavPrint(GetMessage("SUP_PAGES")));
// построение списка
$arRows = array();
$aUserIDs = array();
$arGuestIDs = array();
$arUsersPref = array("RESPONSIBLE", "OWNER", "CREATED", "MODIFIED");
$arGuestsPref = array("OWNER", "CREATED", "MODIFIED");
while($arRes = $rsData->NavNext(true, "f_"))
{
$lamp = "/bitrix/images/support/$f_LAMP.gif";
$lamp_alt = GetMessage("SUP_".mb_strtoupper($f_LAMP)."_ALT");
/*if ($get_user_name=="N")
{
Support_GetUserInfo($f_RESPONSIBLE_USER_ID, $f_RESPONSIBLE_LOGIN, $f_RESPONSIBLE_NAME);
Support_GetUserInfo($f_OWNER_USER_ID, $f_OWNER_LOGIN, $f_OWNER_NAME);
Support_GetUserInfo($f_MODIFIED_USER_ID, $f_MODIFIED_LOGIN, $f_MODIFIED_NAME);
}*/
foreach($arUsersPref as $cup)
{
$aUserIDs[] = $arRes[$cup . "_USER_ID"];
}
foreach($arGuestsPref as $cgp)
{
$arGuestIDs[] = $arRes[$cgp . "_GUEST_ID"];
}
if ($get_extra_names=="N")
{
Support_GetDictionaryInfo($f_CATEGORY_ID, "C" , $TICKET_DICTIONARY, $f_CATEGORY_NAME, $f_CATEGORY_DESC, $f_CATEGORY_SID);
Support_GetDictionaryInfo($f_CRITICALITY_ID, "K" , $TICKET_DICTIONARY, $f_CRITICALITY_NAME, $f_CRITICALITY_DESC, $f_CRITICALITY_SID);
Support_GetDictionaryInfo($f_STATUS_ID, "S" , $TICKET_DICTIONARY,$f_STATUS_NAME, $f_STATUS_DESC, $f_STATUS_SID);
Support_GetDictionaryInfo($f_DIFFICULTY_ID, "D" , $TICKET_DICTIONARY, $f_DIFFICULTY_NAME, $f_DIFFICULTY_DESC, $f_DIFFICULTY_SID);
Support_GetDictionaryInfo($f_MARK_ID, "M" , $TICKET_DICTIONARY, $f_MARK_NAME, $f_MARK_DESC, $f_MARK_SID);
Support_GetDictionaryInfo($f_SOURCE_ID, "SR" , $TICKET_DICTIONARY, $f_SOURCE_NAME, $f_SOURCE_DESC, $f_SOURCE_SID);
Support_GetSLAInfo($f_SLA_ID, $f_SLA_NAME, $f_SLA_DESCRIPTION);
}
$row =& $lAdmin->AddRow($f_ID, $arRes);
$arRow = array("objRow" => $row, "arFields" => $arRes);
$USER_FIELD_MANAGER->AddUserFields( $entity_id, $arRes, $row );
$row->AddViewField("ID", ''.$f_ID.'');
$ID_HTML = '';
if ($bADS)
{
if ($f_IS_SPAM <> '')
$ID_HTML .= '
'.GetMessage("SUP_SPAM").($f_IS_SPAM=="Y" ? "!" : "?").'';
if ($f_DATE_CLOSE == '')
{
if ($f_IS_OVERDUE=="Y")
$ID_HTML .= '
'.GetMessage("SUP_OVERDUE").'';
elseif($f_IS_NOTIFIED=="Y")
$ID_HTML .= '
'.GetMessage("SUP_EXPIRING").'';
}
}
if (intval($f_USERS_ONLINE)>0)
{
$ID_HTML .= '