This extension intended to handle actions with images associated with model.
Extensions provides user friendly widget, to upload and remove image.
- Asynchronous image upload
- Ability to generate few image versions with different configurations
- Drag & Drop
- Yii
- Twitter bootstrap
- yii-image component
-
Download and extract extension somewhere in your application(in this guide into extensions/imageAttachment). Also available in composer.
-
Add ImageAttachmentBehavior to you model, and configure it, create folder for uploaded files.
:::php public function behaviors() { return array( 'preview' => array( 'class' => 'ext.imageAttachment.ImageAttachmentBehavior', // size for image preview in widget 'previewHeight' => 200, 'previewWidth' => 300, // extension for image saving, can be also tiff, png or gif 'extension' => 'jpg', // folder to store images 'directory' => Yii::getPathOfAlias('webroot').'/images/productTheme/preview', // url for images folder 'url' => Yii::app()->request->baseUrl . '/images/productTheme/preview', // image versions 'versions' => array( 'small' => array( 'resize' => array(200, null), ), 'medium' => array( 'resize' => array(800, null), ) ) ) ); }
-
Add ImageAttachmentAction in controller somewhere in your application. Also on this step you can add some security checks for this action.
:::php class ApiController extends Controller { public function actions() { return array( 'saveImageAttachment' => 'ext.imageAttachment.ImageAttachmentAction', ); } }
-
Add ImageAttachmentWidget somewhere in you application, for example in editing from.
:::php $this->widget('ext.imageAttachment.ImageAttachmentWidget', array( 'model' => $model, 'behaviorName' => 'preview', 'apiRoute' => 'api/saveImageAttachment', ));
-
It is done! You can use it now.
:::php if($model->preview->hasImage()) echo CHtml::image($model->preview->getUrl('medium'),'Medium image version'); else echo 'no image uploaded';
Pull requests are welcome! Also, if you any ideas or questions about - welcome to issue tracker