%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/bitrix/www/local/components/p4/user.profile.avatar/
Upload File :
Create Path :
Current File : /home/bitrix/www/local/components/p4/user.profile.avatar/component.php

<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
/* @global CUser $USER */

$arResult[] = array();
$arResult['APP_RESULT'] = array('OK' => true, 'ERROR_MESSAGE' => '');

// AddMessage2Log('AVATAR_SESSID '.bitrix_sessid().' '.print_r($_REQUEST, true).' '.print_r($_COOKIE, true));

if ($USER->IsAuthorized() && $_SERVER["REQUEST_METHOD"]=="POST") {

	$userID = $USER->GetID();
		
	if (count($_FILES['AVATAR'])>0)
	{
		CFile::ResizeImage($_FILES['AVATAR']['tmp_name'], array("width" => 400, "height" => 400),BX_RESIZE_IMAGE_PROPORTIONAL_ALT);
    $arFields['PERSONAL_PHOTO'] = $_FILES['AVATAR'];

		$user = new CUser();
		if (!$user->Update($userID, $arFields))
		{
			$arResult['APP_RESULT']['OK'] = false;
			$arResult['APP_RESULT']['ERROR_MESSAGE'] = $user->LAST_ERROR; // todo Код ошибки и логирование
		}
		else
		{
			$rsProfile = CIBlockElement::GetList(array(),
				array("IBLOCK_ID" => IBLOCK_PROFILE_ID, 'PROPERTY_ACCOUNT' => $userID, 'ACTIVE' => 'Y', 'SHOW_NEW' => 'Y'), false, false,
				array('IBLOCK_ID', 'ID'));
			
			if ($arProfile = $rsProfile->Fetch())
			{
				$el = new CIBlockElement;
				if (!$el->Update($arProfile['ID'], array('DETAIL_PICTURE' => $_FILES['AVATAR']), true))
				{
					$arResult['APP_RESULT']['OK'] = false;
					$arResult['APP_RESULT']['ERROR_MESSAGE'] = $el->LAST_ERROR; // todo Код ошибки и логирование
				}
				else
				{
					$rsProfile = CIBlockElement::GetList(array(),
						array("IBLOCK_ID" => IBLOCK_PROFILE_ID, 'ID' => $arProfile['ID']), false, false, array('IBLOCK_ID', 'ID', 'DETAIL_PICTURE'));
					if ($arProfile = $rsProfile->Fetch())
					{
						$arResult['APP_RESULT']['AVATAR'] = CFile::GetPath($arProfile['DETAIL_PICTURE']);
						ProfileTypeHelper::runModerate($arProfile['ID'], true);
					}
				}
			}
			else
			{
				$arResult['APP_RESULT']['OK'] = false;
				$arResult['APP_RESULT']['ERROR_MESSAGE'] = GetMessage('PROFILE_NOT_FOUND');
			}
		}
	}
}
else {
	$arResult['APP_RESULT']['OK'] = false;
	$arResult['APP_RESULT']['ERROR_MESSAGE'] = GetMessage('USER_NOT_AUTHORIZED');
}

$this->IncludeComponentTemplate();

Zerion Mini Shell 1.0