• Модуль: forum
  • Путь к файлу: ~/bitrix/modules/forum/classes/general/filter_dictionary.php
  • Класс: CAllFilterLetter
  • Вызов: CAllFilterLetter::Update
static function Update($ID, $arFields)
{
	global $DB, $APPLICATION;
	$ID = intval($ID);
	$letter = false; $dictionary_id = false; $update = false;
	if (is_set($arFields, "LETTER"))
	{
		$arFields["LETTER"] = trim($arFields["LETTER"]);
		$letter = true;
	}
	if (is_set($arFields, "REPLACEMENT"))
		$arFields["REPLACEMENT"] = trim($arFields["REPLACEMENT"]);
	if (is_set($arFields, "DICTIONARY_ID"))
	{
		$arFields["DICTIONARY_ID"] = intval($arFields["DICTIONARY_ID"]);
		$dictionary_id = true;
	}

	if ($letter || $dictionary_id)
	{
		$ID1 = CFilterLetter::GetByID($ID);
		$request = array();
		if ($letter && !$dictionary_id)
			$request = array("DICTIONARY_ID"=>$ID1["DICTIONARY_ID"], "LETTER"=>$arFields["LETTER"]);
		elseif (!$letter && $dictionary_id)
			$request = array("DICTIONARY_ID"=>$arFields["DICTIONARY_ID"], "LETTER"=>$ID1["LETTER"]);
		elseif ($letter && $dictionary_id)
			$request = array("DICTIONARY_ID"=>$arFields["DICTIONARY_ID"], "LETTER"=>$arFields["LETTER"]);
		$db_res = CFilterLetter::GetList(array(), $request);
		$db_res = $db_res->Fetch();
		if ((intval($db_res["ID"])<=0) || (intval($db_res["ID"]) == $ID))
			$update = true;
	}
	if (!$update)
		$APPLICATION->ThrowException(GetMessage("FLT_ALREADY_EXIST"));
	if (($ID>0) && (CFilterLetter::CheckFields($arFields)) && ($update))
	{
		$strUpdate = $DB->PrepareUpdate("b_forum_letter", $arFields);
		$res = $DB->Query("UPDATE b_forum_letter SET ".$strUpdate." WHERE ID=".$ID);
		return $res;
	}
	return false;
}