static function CheckFields($ACTION, &$arFields, $ID=false)
{
if (is_set($arFields, "AVATAR") && $arFields["AVATAR"]["name"] == '' && $arFields["AVATAR"]["del"] == '')
{
unset($arFields["AVATAR"]);
}
$aMsg = array();
// Checking user for updating or adding
// USER_ID as value
if ((is_set($arFields, "USER_ID") || $ACTION=="ADD") && intval($arFields["USER_ID"]) <= 0)
{
$aMsg[] = array(
"id" => 'EMPTY_USER_ID',
"text" => GetMessage("F_GL_ERR_EMPTY_USER_ID"));
}
elseif (is_set($arFields, "USER_ID"))
{
$user = CUser::GetByID($arFields["USER_ID"])->fetch();
if (empty($user))
{
$aMsg[] = array(
"id" => 'USER_DOES_NOT_EXIST',
"text" => GetMessage("F_GL_ERR_USER_NOT_EXIST", array("#UID#" => htmlspecialcharsbx($arFields["USER_ID"]))));
}
$res = CForumUser::GetByUSER_ID($arFields["USER_ID"]);
if ($ACTION == "UPDATE")
{
unset($arFields["USER_ID"]);
}
else if (!empty($res))
{
$aMsg[] = array(
"id" => 'USER_EXISTS',
"text" => GetMessage("F_GL_ERR_USER_IS_EXIST", array("#UID#" => htmlspecialcharsbx($arFields["USER_ID"]))));
}
else if (!array_key_exists("AVATAR", $arFields) && $user["PERSONAL_PHOTO"] > 0)
{
$arFields["AVATAR"] = CFile::MakeFileArray($user["PERSONAL_PHOTO"]);
if (!$arFields["AVATAR"] || CFile::ResizeImage($arFields["AVATAR"], array(
"width" => COption::GetOptionInt("forum", "avatar_max_width", 100),
"height" => COption::GetOptionInt("forum", "avatar_max_height", 100)))
)
{
unset($arFields["AVATAR"]);
}
}
}
// last visit
if (is_set($arFields, "LAST_VISIT"))
{
$arFields["LAST_VISIT"] = trim($arFields["LAST_VISIT"]);
if ($arFields["LAST_VISIT"] <> '')
{
if ($arFields["LAST_VISIT"] != $GLOBALS["DB"]->GetNowFunction() && !$GLOBALS["DB"]->IsDate($arFields["LAST_VISIT"], false, SITE_ID, "FULL"))
$aMsg[] = array(
"id" => 'LAST_VISIT',
"text" => GetMessage("F_GL_ERR_LAST_VISIT"));
}
else
{
unset($arFields["LAST_VISIT"]);
}
}
// date registration
if (is_set($arFields, "DATE_REG"))
{
$arFields["DATE_REG"] = trim($arFields["DATE_REG"]);
if ($arFields["DATE_REG"] <> '')
{
if ($arFields["DATE_REG"] != $GLOBALS["DB"]->GetNowFunction() && !$GLOBALS["DB"]->IsDate($arFields["DATE_REG"], false, SITE_ID, "SHORT"))
{
$aMsg[] = array(
"id" => 'DATE_REG',
"text" => GetMessage("F_GL_ERR_DATE_REG"));
}
}
else
{
unset($arFields["DATE_REG"]);
}
}
// avatar
if (is_set($arFields, "AVATAR"))
{
$max_size = COption::GetOptionInt("forum", "file_max_size", 5242880);
$size = array(
"width" => COption::GetOptionInt("forum", "avatar_max_width", 100),
"height" => COption::GetOptionInt("forum", "avatar_max_height", 100));
$res = CFile::CheckImageFile($arFields["AVATAR"], $max_size);
if ($res == '')
{
$res = CFile::CheckImageFile($arFields["AVATAR"], $max_size, $size["width"], $size["height"]);
if ($res <> '' && CFile::ResizeImage($arFields["AVATAR"], $size))
$res = '';
}
if ($res <> '')
{
$aMsg[] = array(
"id" => 'AVATAR',
"text" => $res);
}
}
if (!empty($aMsg))
{
$e = new CAdminException(array_reverse($aMsg));
$GLOBALS["APPLICATION"]->ThrowException($e);
return false;
}
// show name
if (is_set($arFields, "SHOW_NAME") || $ACTION == "ADD")
{
if (empty($arFields["SHOW_NAME"]))
$arFields["SHOW_NAME"] = COption::GetOptionString("forum", "USER_SHOW_NAME", "Y") == "Y" ? "Y" : "N";
$arFields["SHOW_NAME"] = ($arFields["SHOW_NAME"] == "N" ? "N" : "Y");
}
// allow post
if (is_set($arFields, "ALLOW_POST") || $ACTION=="ADD")
{
$arFields["ALLOW_POST"] = ($arFields["ALLOW_POST"] == "N" ? "N" : "Y");
}
return True;
}