• Модуль: socialservices
  • Путь к файлу: ~/bitrix/modules/socialservices/lib/user.php
  • Класс: BitrixSocialservicesUserTable
  • Вызов: UserTable::filterFields
static function filterFields($fields, $oldValue = null)
{
	$map = static::getMap();
	foreach($fields as $key => $value)
	{
		if(!array_key_exists($key, $map))
		{
			unset($fields[$key]);
		}
		elseif($map[$key]['required'] && empty($fields[$key]))
		{
			unset($fields[$key]);
		}
	}

	if(array_key_exists('PERSONAL_PHOTO', $fields) && is_array($fields['PERSONAL_PHOTO']))
	{
		$needUpdatePersonalPhoto = true;
		$fields['PERSONAL_PHOTO']['MODULE_ID'] = 'socialservices';
		$fields['PERSONAL_PHOTO']['external_id'] = md5_file($fields['PERSONAL_PHOTO']['tmp_name']);
		if ($oldValue['PERSONAL_PHOTO'])
		{
			$oldPersonalPhoto = CFile::GetByID($oldValue['PERSONAL_PHOTO'])->Fetch();
			if ($oldPersonalPhoto['EXTERNAL_ID'] == $fields['PERSONAL_PHOTO']['external_id'])
			{
				$needUpdatePersonalPhoto = false;
			}
			$fields['PERSONAL_PHOTO']['del'] = 'Y';
			$fields['PERSONAL_PHOTO']['old_file'] = $oldValue['PERSONAL_PHOTO'];
		}
		if ($needUpdatePersonalPhoto)
		{
			$fields['PERSONAL_PHOTO'] = CFile::SaveFile($fields['PERSONAL_PHOTO'], 'socialservices');
		}
		else
		{
			unset($fields['PERSONAL_PHOTO']);
		}
	}

	return $fields;
}