Exemple #1
0
    function item_image_crop() {
        if ((User::have_permit(ADMIN_ITEM) || User::is_mod_cat()) && (int) Url::get('user_id', 0) && (int) Url::get('user_id', 0) != User::id()) {
            $user_id = (int) Url::get('user_id', 0);
            $user_name = '';
            $user = User::getUser($user_id);
            if ($user)
                $user_name = $user['user_name'];
        }
        else {
            $user_id = User::id();
            $user_name = User::user_name();
        }
        $arrRet['result'] = false;
        $arrRet['id'] = 0;
        $arrRet['original_image_url'] = '';
        $arrRet['img_server'] = IMAGE_SERVER_NO;
        $arrRet['message'] = 'Unknown Error';

        if (User::is_login()) {
            if (User::is_foodnet_team() || User::level() > 0) {
                $upload_path = DIR_CACHE . 'crop_images/';
                EClassApi::CheckDir($upload_path);

                // Thông số crop ảnh
                $cropX1 = $_REQUEST["cropX1"];
                $cropY1 = $_REQUEST["cropY1"];
                $cropWidth = $_REQUEST["cropWidth"];
                $cropHeight = $_REQUEST["cropHeight"];
                $displayWidth = $_REQUEST["displayWidth"];
                $displayHeight = $_REQUEST["displayHeight"];
                $imgServer = $_REQUEST["imgServerPath"];

                //$imgServerAddress = "192.168.28.200/images.chonmon.vn/";
                $imageFileName = $_REQUEST['imgPath'];
                $desImageName = EClassApi::genUniqueFileName($imageFileName);
                $newImage = $upload_path . $desImageName;

                $imageName = "http://$imgServer" . $imageFileName;

                list($imagewidth, $imageheight, $imageType) = getimagesize($imageName);

                if ($imagewidth) {
                    //if((int)ini_get("memory_limit")<64){@ini_set("memory_limit","64M");}

                    $scaleW = $imagewidth / $displayWidth;
                    $scaleH = $imageheight / $displayHeight;
                    $w = (int) ($cropWidth * $scaleW);
                    $h = (int) ($cropHeight * $scaleH);
                    $x1 = (int) ($cropX1 * $scaleW);
                    $y1 = (int) ($cropY1 * $scaleH);

                    $imageType = image_type_to_mime_type($imageType);
                    $cropName = $upload_path . $desImageName;

                    if ($imageType) {
                        switch ($imageType) {
                            case "image/gif":
                                $source = imagecreatefromgif($imageName);
                                break;
                            case "image/pjpeg":
                            case "image/jpeg":
                            case "image/jpg":
                                $source = imagecreatefromjpeg($imageName);
                                break;
                            case "image/png":
                            case "image/x-png":
                                $source = imagecreatefrompng($imageName);
                                break;
                        }

                        if ($source) {
                            $newImg = imagecreatetruecolor($w, $h);
                            if ($newImg) {
                                if (imagecopyresampled($newImg, $source, 0, 0, $x1, $y1, $w, $h, $w, $h)) {


                                    switch ($imageType) {
                                        case "image/gif":
                                            $createdImage = imagegif($newImg, $cropName);
                                            break;
                                        case "image/pjpeg":
                                        case "image/jpeg":
                                        case "image/jpg":
                                            $createdImage = imagejpeg($newImg, $cropName, 99);
                                            break;
                                        case "image/png":
                                        case "image/x-png":
                                            $createdImage = imagepng($newImg, $cropName);
                                            break;
                                    }
                                    if ($createdImage) {
                                        $original_image_url = '';
                                        $upload_path = EClassApi::folderUpload($user_id);

                                        if (EClassApi::ftp_check_dir($upload_path, true, IMAGE_SERVER_NO)) {//Check dir for upload
                                            $file_ext = EClassApi::getExtension($imageFileName);

                                            $original_image_url = $upload_path . date("YmdHis", TIME_NOW) . '_' . substr(EClassApi::make_safe_name(basename(strtolower($imageFileName), $file_ext)), 0, 36) . $file_ext;

                                            EClassApi::ftp_image_put_file($original_image_url, $cropName, IMAGE_SERVER_NO);
                                            $return = 'true';
                                        } else {
                                            $return = 'false,Destination folder not exist';
                                        }
                                    } else {
                                        $return = 'false,Refine image failed';
                                    }
                                } else {
                                    $return = 'false,Crop image failed';
                                }
                            } else {
                                $return = 'false,Verify image color failed';
                            }
                        } else {
                            $return = 'false,Get image source failed';
                        }
                    } else {
                        $return = 'false,Image type is not supported';
                    }
                } else {
                    $return = 'false,The source file is not an image';
                }

                if ($return == 'true') {
                    // Tạo ảnh mới trong gallery của user
                    $image_id = DB::insert('item_image', array(
                                'des' => '',
                                'item_id' => 0,
                                'title' => '',
                                'position' => 0,
                                'img_server' => IMAGE_SERVER_NO,
                                'original_image_url' => $original_image_url,
                                'root_id' => 0,
                                'time' => TIME_NOW,
                                'user_id' => $user_id,
                                'user_name' => $user_name
                            ));
                    $arrRet['result'] = true;
                    $arrRet['id'] = $image_id;
                    $arrRet['original_image_url'] = $original_image_url;
                    $arrRet['img_server'] = IMAGE_SERVER_NO;
                    $arrRet['message'] = 'Success';
                } else {
                    $arrCURLRet = split(',', $return);
                    if (count($arrCURLRet) > 1) {
                        $arrRet['message'] = $arrCURLRet[1];
                    }
                }
            } else {
                $arrRet['message'] = 'The image server could not be found';
            }
        } else {
            $arrRet['message'] = 'You don\'t have permission to edit this image';
        }

        echo json_encode($arrRet);
        exit();
    }