Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/alex290/yii2-images
https://github.com/alex290/yii2-images
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/alex290/yii2-images
- Owner: alex290
- Created: 2020-02-12T07:27:36.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2023-09-06T09:38:34.000Z (over 1 year ago)
- Last Synced: 2024-10-28T22:10:51.961Z (3 months ago)
- Language: PHP
- Size: 45.9 KB
- Stars: 3
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
yii2-images
===========Модуль поддерживает библиотеки Imagick и GD, вы можете настроить его в настройках модуля.
Пример использования:
-------------```php
$model = Model::findOne(12); //Model must have id//If an image is first it will be main image for this model
$model->attachImage('../../image.png');//But if you need set another image as main, use second arg
$model->attachImage('../../image2.png', true);//get all images
$images = $model->getImages();
foreach($images as $img){
//retun url to full image
echo $img->getUrl();
//return url to proportionally resized image by width
echo $img->getUrl('300x');//return url to proportionally resized image by height
echo $img->getUrl('x300');
//return url to resized and cropped (center) image by width and height
echo $img->getUrl('200x300');
}//Returns main model image
$image = $model->getImage();if($image){
//get path to resized image
echo $image->getPath('400x300');
//path to original image
$image->getPathToOrigin();
//will remove this image and all cache files
$model->removeImage($image);
}```
Детали
-------------
1. Получить изображения
```php
$model->getImage(); //returns main image for model (first added image or setted as main)
$model->getImages(); //returns array with images
//If there is no images for model, above methods will return PlaceHolder images or null
//If you want placeholder set up it in module configuration (see documentation)
```
2. Удалить изображение / изображения
```php
$model->removeImage($image); //you must to pass image (object)
$model->removeImages(); //will remove all images of this model
```3. Установить основное изображение
```php
$model->attachImage($absolutePathToImage, true); //will attach image and make it main
foreach($model->getImages() as $img){
if($img->getPrimaryKey() == $ourId){
$model->setMainImage($img);//will set current image main
}
}
```4. Получить размеры изображения
```php
$image = $model->getImage();
$sizes = $image->getSizes(); // Array. Original image sizes
$sizes = $image->getSizesWhen('x500');
echo '<img width="'.$sizes['width'].'" height="'.$sizes['height'].'" src="'.$image->getUrl('x500').'" />';
```5. Получить оригинальное изображение
```php
$img = $model->getImage();
echo $img->getPathToOrigin();
```Установка
-------------
1. Запуститьphp composer.phar require --prefer-dist alex290/yii2-images "*"
или добавить
"alex290/yii2-images": "*"
в секцию require вашего `composer.json` файла.
2. run
php composer.phar update
3. run migrate
php yii migrate/up --migrationPath=@vendor/alex290/yii2-images/migrations
4. Настройка модуля
```php
'modules' => [
'yii2images' => [
'class' => 'alex290\yii2images\Module',
//be sure, that permissions ok
//if you cant avoid permission errors you have to create "images" folder in web root manually and set 777 permissions
'imagesStorePath' => 'images/store', //path to origin images
'imagesCachePath' => 'images/cache', //path to resized copies
'graphicsLibrary' => 'GD', //but really its better to use 'Imagick'
'placeHolderPath' => '@webroot/images/placeHolder.png', // if you want to get placeholder when image not exists, string will be processed by Yii::getAlias
'imageCompressionQuality' => 100, // Optional. Default value is 85.
],
],
```5. attach behaviour to your model (be sure that your model has "id" property)
```php
public function behaviors()
{
return [
'image' => [
'class' => 'alex290\yii2images\behaviors\ImageBehave',
]
];
}
```Thats all!