• Модуль: support
  • Путь к файлу: ~/bitrix/modules/support/classes/general/dictionary.php
  • Класс: CAllTicketDictionary
  • Вызов: CAllTicketDictionary::CheckFields
static function CheckFields($arFields, $id = false)
{
	$arMsg = Array();

	if ( $id ===false && !(array_key_exists('NAME', $arFields) && $arFields['NAME'] <> '') )
	{
		$arMsg[] = array("id"=>"NAME", "text"=> GetMessage("SUP_FORGOT_NAME"));
	}

	if ($id !== false)
	{
		$rs = CTicketDictionary::GetByID($id);
		if (!$rs->Fetch())
		{
			$arMsg[] = array("id"=>"ID", "text"=> GetMessage("SUP_UNKNOWN_ID", array('#ID#' => $id)));
		}
	}

	if ( array_key_exists('SID', $arFields) && preg_match("#[^A-Za-z_0-9]#", $arFields['SID']) )
	{
		$arMsg[] = array("id"=>"SID", "text"=> GetMessage("SUP_INCORRECT_SID"));
	}
	elseif (
			$arFields['SID'] <> '' && array_key_exists('arrSITE', $arFields) &&
			is_array($arFields['arrSITE']) && count($arFields['arrSITE']) > 0
		)
	{
		$arFilter = array(
			"TYPE"	=> $arFields['C_TYPE'],
			"SID"	=> $arFields['SID'],
			"SITE"	=> $arFields['arrSITE'],
		);
		if (intval($id) > 0)
		{
			$arFilter['ID'] = '~'.intval($id);
		}

		$z = CTicketDictionary::GetList('', '', $arFilter);
		if ($zr = $z->Fetch())
		{
			$arMsg[] = array(
						"id"=>"SID",
						"text"=> GetMessage(
								'SUP_SID_ALREADY_IN_USE',
								array(
									'#TYPE#' => CTicketDictionary::GetTypeNameByID($arFields['C_TYPE']),
									'#LANG#' => $zr['LID'] <> ''? $zr['LID']: $zr['SITE_ID'],
									'#RECORD_ID#' => $zr['ID'],
								)
						)
				);
		}
	}

	if (count($arMsg) > 0)
	{
		$e = new CAdminException($arMsg);
		$GLOBALS['APPLICATION']->ThrowException($e);
		return false;
	}

	return true;
}