- Модуль: 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;
}