• Модуль: forum
  • Путь к файлу: ~/bitrix/modules/forum/lib/badwords/letter.php
  • Класс: BitrixForumBadWordsLetterTable
  • Вызов: LetterTable::checkFields
static function checkFields(Result $result, $primary, array $data)
{
	parent::checkFields($result, $primary, $data);

	if ($result->isSuccess())
	{
		if (isset($data["LETTER"]) || isset($data["DICTIONARY_ID"]))
		{
			$filter = [
				"DICTIONARY_ID" => isset($data["DICTIONARY_ID"]) ? $data["DICTIONARY_ID"] : null,
				"LETTER" => isset($data["LETTER"]) ? $data["LETTER"] : null
			];

			if ($result instanceof UpdateResult)
			{
				if (
					($filter["DICTIONARY_ID"] === null || $filter["LETTER"] === null) &&
					($letter = self::getById($primary["ID"])->fetch())
				)
				{
					if ($filter["LETTER"] === null)
						$filter["LETTER"] = $letter["LETTER"];
					if ($filter["DICTIONARY_ID"] === null)
						$filter["DICTIONARY_ID"] = $letter["DICTIONARY_ID"];
				}
				$filter["!=ID"] = $primary["ID"];
			}
			if ($res = self::getList(["select" => ["ID"], "filter" => $filter])->fetch())
			{
				$result->addError(new MainError(Loc::getMessage("FLT_ALREADY_EXIST"), "doubleLetter"));
			}
		}
	}
}