%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/bitrix/www/local/components/UB/user.profile/
Upload File :
Create Path :
Current File : /home/bitrix/www/local/components/UB/user.profile/ajax.php

<?require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php');
global $USER;
CModule::IncludeModule("iblock");
CModule::IncludeModule("main");
$usrid = $USER->GetID();

function crop($file_input, $file_output, $crop = 'square',$percent = false) { // Функция обрезки изображения
	list($w_i, $h_i, $type) = getimagesize($file_input);
	if (!$w_i || !$h_i) {
		$mess = GetMessage("CAN_NOT_GET_LENGTH_AND_WIDTH_OF_THE_IMAGE");
		return;
        }
        $types = array('','gif','jpeg','png');
        $ext = $types[$type];
        if ($ext) {
    	        $func = 'imagecreatefrom'.$ext;
    	        $img = $func($file_input);
        } else {
    	        $mess = GetMessage("INCORRECT_FILE_FORMAT");
		return;
        }
	if ($crop == 'square') {
		$min = $w_i;
		if ($w_i > $h_i) $min = $h_i;
		$w_o = $h_o = $min;
	} else {
		list($x_o, $y_o, $w_o, $h_o) = $crop;
		if ($percent) {
			$w_o *= $w_i / 100;
			$h_o *= $h_i / 100;
			$x_o *= $w_i / 100;
			$y_o *= $h_i / 100;
		}
    	        if ($w_o < 0) $w_o += $w_i;
	     //   $w_o -= $x_o;
	   	if ($h_o < 0) $h_o += $h_i;
		// $h_o -= $y_o;
	}
	$img_o = imagecreatetruecolor($w_o, $h_o);
	imagecopy($img_o, $img, 0, 0, $x_o, $y_o, $w_o, $h_o);
	if ($type == 2) {
		return imagejpeg($img_o,$file_output,100);
	} else {
		$func = 'image'.$ext;
		return $func($img_o,$file_output);
	}
}

if ($usrid>0) { // Юзер авторизован, продолжаем
  if (ctype_digit($_GET["ext"])) $ext = $_GET["ext"];
  if (ctype_digit($_GET["width"])) $width = $_GET["width"];
  if (ctype_digit($_GET["height"])) $height = $_GET["height"];
  if (ctype_digit($_GET["photo_X"])) $X = $_GET["photo_X"];
  if (ctype_digit($_GET["photo_Y"])) $Y = $_GET["photo_Y"];
  if (ctype_digit($_GET["IB"])) $IB = $_GET["IB"];
  
  // Проверим файл юзера
  $filefoto = $_SERVER["DOCUMENT_ROOT"].'/upload/users_prev/userpr_foto_'.$usrid."_.".$ext;
  if(file_exists($filefoto)) {
    $filefoto2 = $_SERVER["DOCUMENT_ROOT"].'/upload/users_prev/userpr_foto_'.$usrid.".".$ext;
   // Ресайзим файл до заданного размера
   $rif = CFile::ResizeImageFile( // уменьшение картинки до нужного размера
         $sourceFile = $filefoto,
         $destinationFile = $filefoto2,
         $arSize = array('width'=>$width, 'height'=>$height),
         $resizeType = BX_RESIZE_IMAGE_EXACT,
         $arWaterMark = array()
      );
	// Кадрируем картинку
    crop($filefoto2, $filefoto2, array($X, $Y, 400, 400));
  	
	// Найдём id профиля  
	$res = CIBlockElement::GetList(Array(), Array("IBLOCK_ID"=>$IB, "PROPERTY_ACCOUNT"=>$usrid), false, false, array("IBLOCK_ID", "ID"));  
	if($ar_fields = $res->GetNext()) {
      $id_prof = $ar_fields["ID"];
	}
	if($id_prof) {
	// Сохраним фото в профиль юзера  
    $el = new CIBlockElement;
	$arLoadProductArray = Array(  
	  "MODIFIED_BY"    => $usrid, 
	  "IBLOCK_ID"      => $IB,  
	  "DETAIL_PICTURE" => CFile::MakeFileArray($filefoto2)  
	  );
	  
	  $res = $el->Update($id_prof, $arLoadProductArray, false, false, true);
	  if($res) {
	    // unlink($filefoto); 
		unlink($filefoto2);unlink($filefoto);
	    echo "ok";
	  // echo "Фото удачно сохранено в Ваш профиль";
	  }
	 }
  }
  
} else echo GetMessage("ACCESS_DENIED");
?>

Zerion Mini Shell 1.0