%PDF- %PDF-
| Direktori : /home/bitrix/www/local/components/p4/p.user.profile/ |
| Current File : //home/bitrix/www/local/components/p4/p.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, 'SHOW_NEW'=>'Y'), 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");
?>