Модуль yiiimages - это менеджер изображений для Yii Framework 2.0. Он также включает в себя средства обработки изображений для создания эскизов.

Установка:

Скачайте пакет с помощью Composer:

composer require makeitbetter/yiiimages

или клонируйте репозиторий с BitBucket:

git clone https://bitbucket.org/makeitbetter/yiiimages.git

Включите модуль в файле конфигурации (см. руководство):

'modules' => [
  ...
  'yiiimages' => [
    'class' => 'makeitbetter\yiiimages\Module',
    'options' => [],
  ],
  ...
],
...
'bootstrap' => [
  ...
  'yiiimages',
  ...
],

Опции:

  • sourceFolder* - Папка в которую будут складываться исходные изображения, не обязательно доступная по HTTP. По умолчанию - @app/media.
  • targetFolder* - Папка в которую будут складываться созданные эскизы (относительно корня документа). По умолчанию - thumbnails.
  • paddingColor* - Цвет для заливки свободного пространства на эскизах. По умолчанию - белый, ffffff.
  • getThumbnailPathMethod - Функция определяющая путь к эскизу и имя файла. На вход должна принимать объект Thumbnail и возвращать строку. По умолчанию будет использован собственный метод класса.
  • width* - Ширина эскиза в для предпросмотра. По умолчанию - 150.
  • height* - Высота эскиза в для предпросмотра. По умолчанию - 150.
  • crop* - Обрезать ли изображение для предпросмотра. По умолчанию - true.
  • stretch* - Растягивать ли маленькие изображения для предпросмотра. По умолчанию - false.
  • maxUploadNumber - Количество изображений для одновременной загрузки. По умолчанию - 10.

* Более подробное разъяснение можно получить в описании класса Thumbnail.

Распределите права: browseImages, addImages, deleteImages. (см. руководство)


Использвание:
Поле выбора изображения

use makeitbetter\yiiimages\widgets\ImageInput;
...
echo $form->field($model, 'property_name')->widget(ImageInput::className(), $options);
...
// Или без объекта ActiveForm:
echo ImageInput::widget(['model' => $model, 'attribute' => 'property_name']);

Вывод на страницах сайта

use makeitbetter\thumbnail\Thumbnail;
...
Thumbnail::of($model->propery_name, ....)->img()

Более подробное разъяснение можно получить в описании класса Thumbnail.

Скрины