yupe/yupe — pull request #1577 by DarkCs (2014-08-18 07:21:15+00:00)
Title: Модуль интернет магазина

Для более удобной работы в систему добавлены следующие вещи:
1. Получение ссылки на ресурсы модуля https://github.com/DarkCs/yupe/commit/94e8dd5b0cac7e030b473a56d547cec818ade92f
2. Поведения для ресайза изображений при загрузке и работы с превью https://github.com/DarkCs/yupe/commit/abef1821f8842cb4abd1d6ce44b18bb6b79d7d21
```php
public function behaviors()
{
$module = Yii::app()->getModule('store');

return array(
'imageUpload' => array(
'class' => 'yupe\components\behaviors\ImageUploadBehavior',
'scenarios' => array('insert', 'update'),
'attributeName' => 'name',
'minSize' => $module->minSize,
'maxSize' => $module->maxSize,
'types' => $module->allowedExtensions,
'uploadPath' => $module->uploadPath . '/product',
'resize' => array(
'maxWidth' => 900,
'maxHeight' => 900,
)
),
'imageThumb' => array(
'class' => 'yupe\components\behaviors\ImageThumbBehavior',
'uploadPath' => $module->uploadPath . '/product',
'attributeName' => 'name',
),
);
}
```
Поведение ImageUplodaBehavior унаследовано от FileUploadBehavior, добавляет параметр resize, позволяющий указать максимальную высоту и ширину картинки, если картинка больше, то она будет сжата по большей стороне пропорционально.
ImageThumbBehavior добавляет функцию getImageUrl($width, $height, bool $adaptiveResize) для моделей, у который используется загруженное изображение. $adaptiveResize - если true и картинка превышает в размерах указанные размеры превью и пропорции картинки не совпадают с пропорциями превью, то на превью будут отрезаны части изображения, чтобы вписаться в пропорции. Если false, то картинка сожмется без обрезания, чтобы вписаться в размеры превью.
```php
$model->getImageUrl(); // ссылка на исходную картинку
$model->getImageUrl(50); // картинка 50 на 50 пикселей
$model->getImageUrl(50, 100); // картинка 50 на 100
$model->getImageUrl(50, 100, false); // картинка 50 на 100 с сохранением всей картинки и её пропорций
```
3. Расширенное меню у модулей: https://github.com/DarkCs/yupe/commit/4c2836933722dcbc9a6d47b65f535ac24c9cdc50
Такой же формат как и у стандартной навигации, но пункты меню не группируются в категории, а вставляются как есть.
4. Небольшой фикс генерации меню https://github.com/DarkCs/yupe/commit/d4efe9d2f08b1a684fd92f8e585b66e905941b5f
Пункт настроек модуля сбрасывался перед новой категорией, а не перед новым модулем.