• Модуль: forum
  • Путь к файлу: ~/bitrix/modules/forum/lib/user.php
  • Класс: BitrixForumUserTable
  • Вызов: UserTable::modifyData
static function modifyData(MainORMEvent $event, MainORMEventResult $result)
{
	$data = array_merge($event->getParameter("fields"), $result->getModified());
	$fields = [];

	//region check image
	if (array_key_exists("AVATAR", $data))
	{
		CFile::ResizeImage($data["AVATAR"], array(
			"width" => MainConfigOption::get("forum", "avatar_max_width", 100),
			"height" => MainConfigOption::get("forum", "avatar_max_height", 100)));
		$maxSize = MainConfigOption::get("forum", "file_max_size", 5242880);
		if ($str = CFile::CheckImageFile($data["AVATAR"], $maxSize))
		{
			$result->addError(new FieldError(static::getEntity()->getField("AVATAR"), $str));
		}
		else
		{
			$fields["AVATAR"] = $data["AVATAR"];
			$fields["AVATAR"]["MODULE_ID"] = "forum";
			if ($id = $event->getParameter("id"))
			{
				$id = is_integer($id) ? $id : $id["ID"];
				if ($id > 0 && ($res = UserTable::getById($id)->fetch()) && ($res["AVATAR"] > 0))
				{
					$fields["AVATAR"]["old_file"] = $res["AVATAR"];
				}
			}
			if (!CFile::SaveForDB($fields, "AVATAR", "forum/avatar"))
			{
				$result->unsetField("AVATAR");
			}
		}
	}
	//endregion
	if (!empty($fields))
	{
		$result->modifyFields(array_merge($result->getModified(), $fields));
	}
	return $result;
}