aliamjid / img-cropper
CropperJs integration to PHP / Nette framework
dev-master
2019-04-21 16:36 UTC
Requires
- gumlet/php-image-resize: 1.9.*
- nette/forms: ^2.3
This package is auto-updated.
Last update: 2024-12-23 10:18:37 UTC
README
Integration of gumlet/php-image-resize and cropperjs to Nette Froms
How it looks like?
Example of usage Library can be use as Nette control for picking / croping image forexample for profile picture and etc. github flavoured markdown - e.g.
<?php namespace App\Model\Components\UserForm; use Gumlet\ImageResize; use MS\Entity\UserEntity; use MS\Forms\BaseForm; class UserForm extends BaseForm { public $id; /** Your constructor etc... */ public function defineForm() { $this->addImage('profile_picture','Zvolte obrázek',$this->imageService->getRealPathsFromId($user->profile_picture)->low) ->setSize(500,500) ->setScaleMode(1,1) ->ignoreAscpectRatioWhileValidate() ->setThumbnailRatio(0.3) ->setLabel('ss'); $this->addSubmit('submit'); } public function save($values) { /** @var UserEntity $user */ $user = $this->userMapper->loadEntityById($this->id); /** Other stuff */ //Check if picture is ok if($values->profile_picture instanceof ImageResize) { //Save picture //$values->profile_picture is [gumlet/php-image-resize] see library for more info $user->profile_picture = $this->imageService->saveProfilePicture($values->profile_picture); } //Do other stuff like updateing database $this->userMapper->updateEntity($user); }}
How to install?
You need to add javascript file to your app
<link rel="stylesheet" href="cropper.min.all.js">
File path is img-cropper/dist/cropper.min.all.js
You also need bootstrap and jQuery.
I recommend to also add this to your BaseForm
protected function addImage($name, $label ='',$value = '') { return $this[$name] = (new ImageControl($value,$label)); }
Now you are ready to use
$this->addImage();
Dont use nette?
its possible to use it just with normal php. Look at example.php