403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/support/admin/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/support/admin/ticket_dict_list.php
<? 
/*
##############################################
# Bitrix: SiteManager                        #
# Copyright (c) 2004 Bitrix                  #
# https://www.bitrixsoft.com          #
# mailto:admin@bitrix.ru                     #
##############################################
*/

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";

if($bAdmin!="Y" && $bDemo!="Y") $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));

IncludeModuleLangFile($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/support/include.php");
IncludeModuleLangFile(__FILE__);
InitSorting();
$err_mess = "File: ".__FILE__."<br>Line: ";

/***************************************************************************
								Функции
****************************************************************************/

/***************************************************************************
							Обработка GET | POST
****************************************************************************/
if (
	!isset($find_type) ||
	mb_strlen($find_type) < 0 ||
	!in_array($find_type, Array("C","K","S","M","F","SR", "D"))
	)
	$find_type = "C";


$sTableID = "t_dict_list_".mb_strtolower($find_type);
$oSort = new CAdminSorting($sTableID, "s_c_sort", "asc");// инициализация сортировки
$lAdmin = new CAdminList($sTableID, $oSort);// инициализация списка


$oFilter = new CAdminFilter(
	$sTableID."_filter_id", 
	array(
		GetMessage("SUP_F_ID"),
		GetMessage("SUP_F_SITE"),
		//GetMessage("SUP_F_TYPE"),
		GetMessage("SUP_F_NAME"),
		GetMessage("SUP_F_DESCR"),
		GetMessage("SUP_F_SID"),
		GetMessage("SUP_F_RESPONSIBLE"),
		GetMessage("SUP_F_DEFAULT"),
	)
);


$arFilterFields = Array(
	"find",
	"find_type_ex",

	"find_id",
	"find_id_exact_match",
	"find_site", 
	//"find_type",
	"find_name",
	"find_name_exact_match",
	"find_descr",
	"find_descr_exact_match",
	"find_sid",
	"find_sid_exact_match",
	"find_responsible",
	"find_responsible_exact_match",
	"find_responsible_id",
	"find_default"
	);

$lAdmin->InitFilter($arFilterFields);//инициализация фильтра


InitBVar($find_id_exact_match);
InitBVar($find_name_exact_match);
InitBVar($find_sid_exact_match);
InitBVar($find_responsible_exact_match);



$arFilter = Array(
	"ID"						=> $find_id,
	"ID_EXACT_MATCH"			=> $find_id_exact_match,
	"SITE"						=> $find_site,	
	"TYPE"						=> $find_type,
	"NAME"						=> ($find!="" && $find_type_ex == "name"? $find: $find_name),
	"NAME_EXACT_MATCH"			=> $find_name_exact_match,
	"DESCR"						=> ($find!="" && $find_type_ex == "descr"? $find: $find_descr),
	"DESCR_EXACT_MATCH"			=> $find_descr_exact_match,
	"SID"						=> $find_sid,
	"SID_EXACT_MATCH"			=> $find_sid_exact_match,
	"RESPONSIBLE_ID"			=> $find_responsible_id,
	"RESPONSIBLE"				=> $find_responsible,
	"RESPONSIBLE_EXACT_MATCH"	=> $find_responsible_exact_match,
	"DEFAULT"					=> $find_default
	);



if ($bAdmin=="Y" && $lAdmin->EditAction()) //если идет сохранение со списка
{

	foreach($FIELDS as $ID => $arFields)
	{
		$ID = intval($ID);

		if(!$lAdmin->IsUpdated($ID))
			continue;

		$arFields["C_SORT"] = intval($arFields["C_SORT"]);

		if (trim($arFields["NAME"]) <> '')
		{
			$arUpdate = array(
					'C_SORT' => $arFields['C_SORT'],
					'NAME' => $arFields['NAME']
					);

			if (!CTicketDictionary::Update($ID, $arUpdate))
			{
				$lAdmin->AddUpdateError(str_replace("#ID#", $ID, GetMessage("SUP_ERROR_SAVE")), $ID);

			}
		}
		else
		{
			$lAdmin->AddUpdateError(str_replace("#ID#", $ID, GetMessage("SUP_FORGOT_NAME")), $ID);
		}
	}
}


if($bAdmin=="Y" && $arID = $lAdmin->GroupAction())
{
	if($_REQUEST['action_target']=='selected')
	{
		$isFiltered = null;
		$rsData = CTicketDictionary::GetList('', '', $arFilter);
		while($arRes = $rsData->Fetch())
			$arID[] = $arRes['ID'];
	}

	foreach($arID as $ID)
	{
		if($ID == '')
			continue;
		$ID = intval($ID);

		switch($_REQUEST['action'])
		{
			case "delete":
				@set_time_limit(0);
				CTicketDictionary::Delete($ID);
			break;
		}
	}
}
// если была нажата кнопка "Сохранить изменения"

if ($find_type=="C" || 
	$find_type=="K" || 
	$find_type=="SR" || 
	$find_type=="NOT_REF" || 
	$find_type == '') $show_responsible_column = "Y";

global $by, $order;

$rsData = CTicketDictionary::GetList($by, $order, $arFilter);
$rsData = new CAdminResult($rsData, $sTableID);
$rsData->NavStart();

// установка строки навигации
$lAdmin->NavText($rsData->GetNavPrint(GetMessage("SUP_PAGES")));

//$tdic = CTicketDictionary::GetList($by, $order, $arFilter, $is_filtered);
$APPLICATION->SetTitle(GetMessage("SUP_TICKETS_DIC_TITLE"));



$arHeaders = Array();
$arHeaders[] = Array("id"=>"ID", "content"=>"ID", "default"=>true, "sort" => "s_id");
$arHeaders[] = Array("id"=>"C_SORT", "content"=>GetMessage("SUP_SORT"), "default"=>true, "sort" => "s_c_sort");
$arHeaders[] =  Array("id"=>"C_SITE", "content"=>GetMessage("SUP_SITE"), "default"=>true,);
$arHeaders[] =  Array("id"=>"NAME", "content"=>GetMessage("SUP_NAME"), "default"=>true,"sort" => "s_name");
if ($show_responsible_column=="Y")
	$arHeaders[] =  Array("id"=>"RESPONSIBLE_USER_ID", "content"=>GetMessage("SUP_RESPONSIBLE"), "default"=>true,"sort" => "s_responsible");

$lAdmin->AddHeaders($arHeaders);

// построение списка
$arRows = array();
$arSiteArrayForAllDict = CTicketDictionary::GetSiteArrayForAllDictionaries();
$arRespUserIDs = array();
while($arRes = $rsData->Fetch())
{

	if(intval($arRes["RESPONSIBLE_USER_ID"])>0)
	{
		$arRespUserIDs[] = intval($arRes["RESPONSIBLE_USER_ID"]);
	}
	$row =& $lAdmin->AddRow($arRes["ID"], $arRes);
	$arRow = array("objRow" => $row, "arFields" => $arRes);
	$row->AddInputField("C_SORT", Array("size"=>"3"));

	$str_SITE = "";
	if(array_key_exists($arRes["ID"], $arSiteArrayForAllDict))
	{
		$arrSITE =  $arSiteArrayForAllDict[$arRes["ID"]];
		foreach($arrSITE as $sid)
		{
			$sidS = htmlspecialcharsbx($sid);
			$str_SITE .= ($str_SITE == "" ? "" : " / ") . '<a title="' . GetMessage("MAIN_ADMIN_MENU_EDIT") . '" href="/bitrix/admin/site_edit.php?LID=' . $sidS . '&lang=' . LANG . '">' . $sidS . '</a>';
		}
	}

	$row->AddViewField("C_SITE", $str_SITE);

	$row->AddInputField("NAME", Array("size"=>"35"));

	$arActions = Array();

	$arActions[] = array(
		"ICON"=>"edit",
		"DEFAULT" => "Y",
		"TEXT"=>GetMessage("SUP_EDIT"),
		"ACTION"=>$lAdmin->ActionRedirect("ticket_dict_edit.php?find_type=" . $arRes["C_TYPE"] . "&ID=" . $arRes["ID"] . "&lang=" . LANG)
	);

	if ($bAdmin=="Y")
	{
		$arActions[] = array("SEPARATOR" => true);

		$arActions[] = array(
			"ICON" => "delete",
			"TEXT"	=> GetMessage("SUP_DELETE"),
			"ACTION"=>"if(confirm('" . GetMessage('SUP_DELETE_TDIC_CONF') . "')) " . $lAdmin->ActionDoGroup($arRes["ID"], "delete", "find_type=" . $arRes["C_TYPE"]),
		);
	}

	$row->AddActions($arActions);
	$arRows[] = $arRow;
}

$arRespUsersProp = array();
$arRespUserIDs = array_unique($arRespUserIDs);
$strUsers = implode("|", $arRespUserIDs);
$rs = CUser::GetList('id', 'asc', array( "ID" => $strUsers), array("FIELDS"=>array("NAME","LAST_NAME","LOGIN","ID")));
while($ar = $rs->Fetch())
{
	$arRespUsersProp[$ar["ID"]] = $ar;
}
// Еще один проход для ответственных пользователей
foreach($arRows as $k => $v)
{
	$str = "&nbsp;";
	$rUserID = intval($v["arFields"]["RESPONSIBLE_USER_ID"]);
	if ($rUserID > 0 && array_key_exists($rUserID, $arRespUsersProp)):
		$arUserPr = $arRespUsersProp[$rUserID];
		$str = '[<a title="' . GetMessage("SUP_USER_PROFILE") . '" href="/bitrix/admin/user_edit.php?lang=' . LANG . '&ID=' . $rUserID . '">' .
			$rUserID.'</a>] (' . htmlspecialcharsbx($arUserPr["LOGIN"]) . ') ' . htmlspecialcharsbx($arUserPr["NAME"]) . "  " . htmlspecialcharsbx($arUserPr["LAST_NAME"]);

	endif;
	$v["objRow"]->AddViewField("RESPONSIBLE_USER_ID", $str);
}

// "подвал" списка
$lAdmin->AddFooter(
	array(
		array("title"=>GetMessage("MAIN_ADMIN_LIST_SELECTED"), "value"=>$rsData->SelectedRowsCount()),
		array("counter"=>true, "title"=>GetMessage("MAIN_ADMIN_LIST_CHECKED"), "value"=>"0"),
	)
);

if ($bAdmin=="Y")
{
	$lAdmin->AddGroupActionTable(Array(
		"delete"=>GetMessage("MAIN_ADMIN_LIST_DELETE"),
		)
	);
}

$aContext = array(
	array(
		"ICON"=> "btn_new",
		"TEXT"=> GetMessage("SUP_ADD"),
		//"LINK"=>"ticket_dict_edit.php?lang=".LANG."&find_type=".htmlspecialcharsbx($find_type),
		"TITLE"=>GetMessage("SUP_ADD"),
		"MENU" => Array(
			Array(
				"TEXT"	=> GetMessage("SUP_ADD_CATEGORY"),
				"ACTION"	=> "window.location='/bitrix/admin/ticket_dict_edit.php?lang=".LANG."&find_type=C';"
			),
			Array(
				"TEXT"	=> GetMessage("SUP_ADD_CRITICALITY"),
				"ACTION"	=> "window.location='/bitrix/admin/ticket_dict_edit.php?lang=".LANG."&find_type=K';"
			),
			Array(
				"TEXT"	=> GetMessage("SUP_ADD_STATUS"),
				"ACTION"	=> "window.location='/bitrix/admin/ticket_dict_edit.php?lang=".LANG."&find_type=S';"
			),
			Array(
				"TEXT"	=> GetMessage("SUP_ADD_MARK"),
				"ACTION"	=> "window.location='/bitrix/admin/ticket_dict_edit.php?lang=".LANG."&find_type=M';"
			),

			Array(
				"TEXT"	=> GetMessage("SUP_ADD_FUA"),
				"ACTION"	=> "window.location='/bitrix/admin/ticket_dict_edit.php?lang=".LANG."&find_type=F';"
			),

			Array(
				"TEXT"	=> GetMessage("SUP_ADD_SOURCE"),
				"ACTION"	=> "window.location='/bitrix/admin/ticket_dict_edit.php?lang=".LANG."&find_type=SR';"
			),

			Array(
				"TEXT"	=> GetMessage("SUP_ADD_DIFFICULTY"),
				"ACTION"	=> "window.location='/bitrix/admin/ticket_dict_edit.php?lang=".LANG."&find_type=D';"
			),

		)
	),
);

$lAdmin->AddAdminContextMenu($aContext);

$lAdmin->CheckListMode();

require_once ($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");
?>

<form name="find_form" id="find_form" method="GET" action="<?=$APPLICATION->GetCurPage()?>?">
<?$oFilter->Begin();?>

<tr>
	<td><b><?=GetMessage("MAIN_FIND")?>:</b></td>
	<td nowrap>
		<input type="text" size="25" name="find" value="<?echo htmlspecialcharsbx($find)?>">
		<select name="find_type_ex">
			<option value="name"<?if($find_type_ex=="name") echo " selected"?>><?=GetMessage("SUP_F_NAME")?></option>
			<option value="descr"<?if($find_type_ex=="descr") echo " selected"?>><?=GetMessage("SUP_F_DESCR")?></option>
		</select>
	</td>
</tr>

<tr>
	<td><?=GetMessage("SUP_F_ID")?>:</td>
	<td><input type="text" name="find_id" size="47" value="<?=htmlspecialcharsbx($find_id)?>"><?=InputType("checkbox", "find_id_exact_match", "Y", $find_id_exact_match, false, "", "title='".GetMessage("SUP_EXACT_MATCH")."'")?>&nbsp;<?=ShowFilterLogicHelp()?></td>
</tr>
<tr valign="top"> 
	<td valign="top"><?=GetMessage("SUP_F_SITE")?>:<br><img src="/bitrix/images/support/mouse.gif" width="44" height="21" border=0 alt=""></td>
	<td><?
	$ref = array();
	$ref_id = array();
	$rs = CSite::GetList();
	while ($ar = $rs->Fetch()) 
	{
		$ref[] = "[".$ar["ID"]."] ".$ar["NAME"];
		$ref_id[] = $ar["ID"];
	}
	echo SelectBoxMFromArray("find_site[]", array("reference" => $ref, "reference_id" => $ref_id), $find_site, "",false,"3");
	?></td>
</tr>
<tr> 
	<td><?=GetMessage("SUP_F_NAME")?>:</td>
	<td><input type="text" name="find_name" size="47" value="<?=htmlspecialcharsbx($find_name)?>"><?=InputType("checkbox", "find_name_exact_match", "Y", $find_name_exact_match, false, "", "title='".GetMessage("SUP_EXACT_MATCH")."'")?>&nbsp;<?=ShowFilterLogicHelp()?></td>
</tr>
<tr> 
	<td><?=GetMessage("SUP_F_DESCR")?>:</td>
	<td><input type="text" name="find_descr" size="47" value="<?=htmlspecialcharsbx($find_descr)?>"><?=InputType("checkbox", "find_descr_exact_match", "Y", $find_descr_exact_match, false, "", "title='".GetMessage("SUP_EXACT_MATCH")."'")?>&nbsp;<?=ShowFilterLogicHelp()?></td>
</tr>
<tr> 
	<td><?=GetMessage("SUP_F_SID")?>:</td>
	<td><input type="text" name="find_sid" size="47" value="<?=htmlspecialcharsbx($find_sid)?>"><?=InputType("checkbox", "find_sid_exact_match", "Y", $find_sid_exact_match, false, "", "title='".GetMessage("SUP_EXACT_MATCH")."'")?>&nbsp;<?=ShowFilterLogicHelp()?></td>
</tr>
<tr> 
	<td nowrap valign="top"><?=GetMessage("SUP_F_RESPONSIBLE")?>:</td>
	<td><?
		$ref = array(); $ref_id = array();
		$ref[] = GetMessage("SUP_NO"); $ref_id[] = "0";
		$z = CTicket::GetSupportTeamList();
		while ($zr = $z->Fetch())
		{
			$ref[] = $zr["REFERENCE"];
			$ref_id[] = $zr["REFERENCE_ID"];
		}
		$arr = array("REFERENCE" => $ref, "REFERENCE_ID" => $ref_id);
		echo SelectBoxFromArray("find_responsible_id", $arr, htmlspecialcharsbx($find_responsible_id), GetMessage("SUP_ALL"));
		?><br><input type="text" name="find_responsible" size="47" value="<?=htmlspecialcharsbx($find_responsible)?>"><?=InputType("checkbox", "find_responsible_exact_match", "Y", $find_responsible_exact_match, false, "", "title='".GetMessage("SUP_EXACT_MATCH")."'")?>&nbsp;<?=ShowFilterLogicHelp()?></td>
</tr>
<tr valign="center">
	<td nowrap><?=GetMessage("SUP_F_DEFAULT")?>:</td>
	<td nowrap><?
		$arr = array("reference"=>array(GetMessage("SUP_YES"), GetMessage("SUP_NO")), "reference_id"=>array("Y","N"));
		echo SelectBoxFromArray("find_default", $arr, htmlspecialcharsbx($find_default), GetMessage("SUP_ALL"));
		?></td>
</tr>
<?
$oFilter->Buttons(array("table_id"=>$sTableID, "url"=>$APPLICATION->GetCurPage()."?find_type=".$find_type, "form"=>"form1"));
$oFilter->End();
?>
</form>


<?$lAdmin->DisplayList();?>

<? require_once ($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php"); ?>

Youez - 2016 - github.com/yon3zu
LinuXploit