%PDF- %PDF-
Direktori : /home/bitrix/www/local/components/UB/user.profile/ |
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"); ?>