forked from maxim-oleinik/sfReplicaThumbnailPlugin
-
Notifications
You must be signed in to change notification settings - Fork 1
Thumbnail plugin for Symfony Framework
License
pycmam/sfReplicaThumbnailPlugin
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
sfReplicaThumbnail ==================================== Плагин предназначен для создания превью изображений. Основное отличие от других плагинов - автоматическое кеширование полученных результатов и удобное управление через app.yml Плагин интегрирует библитеку Replica в symfony и по сути представляет собой хелпер для создания превью. Для более подробной информации см. plugins/sfReplicaThumbnailPlugin/lib/vendor/Replica/README Установка --------- * Download Сохраните файлы в директории проекта plugins/ * Установка из Git-репозитария: cd /my/project/dir git clone git://github.com/maxim-oleinik/sfReplicaThumbnailPlugin.git plugins/sfReplicaThumbnailPlugin cd plugins/sfReplicaThumbnailPlugin git submodule update --init * Установка как submodule для Git-репозитария: cd /my/project/dir git submodule add git://github.com/maxim-oleinik/sfReplicaThumbnailPlugin.git plugins/sfReplicaThumbnailPlugin cd plugins/sfReplicaThumbnailPlugin git submodule update --init * Запуск тестов: cd plugins/sfReplicaThumbnailPlugin phpunit test/AllTests.php Настройка --------- * ProjectConfiguration $this->enablePlugins(..., 'sfReplicaThumbnailPlugin'); * app.yml [yml] all: thumbnail: # Директория для кеширования превью (от sf_web_dir) dir: /uploads/thumbnails # Типы превью types: product_thumb: default: /images/default/product_thumb.png # Заглушка, если нет исходного изображения. # Например, когда $productRecord->getImagePath() вернет NULL # По-умолчанию: null (хелпер вернет пустую строку) required: true # Не проглатывать исключения, если исходное изображение не удалось загрузить. # В противном случает хелпер вернет пустую строку. Сделано для того, # чтобы не ломать сайт исключением, если исходник потерялся. # Можно использовать для отладки. # По-умолчанию: false mimetype: image/png # Тип результирующего файла # - image/png # - image/gif # - image/jpeg # По-умолчанию: image/png quality: 50 # Итоговое качество картинки (сжатие). От 0 до 100 # 0 - максимальное сжатие, минимальное качество # По-умолчанию: # PNG: 0 - максимальное сжатие # JPEG: 100 - минимальное сжатие # GIF: - не используется macro: Replica_Macro_ThumbnailFixed: [40, 40, center, center] # Сжать пропорционально по любой стороне так, # чтобы полностью соответствовать указанным размерам. # Если после сжатия изображение больше по одной из сторон, например 40x60, # тогда вырезать центральный квадрат 40x40 # # Replica_Macro_ThumbnailFixed: [width, heigth, left|center|right, top|center|bottom] product_preview: mimetype: image/jpeg macro: Replica_Macro_ThumbnailFit: [600, 600] # Сжать пропрорциоально по любой строне так, чтобы итоговое изображение # не превышало указанные размеры product_origin: macro: Replica_Macro_Null: [] # Ничего не делает, возвращает копию оригинала. # Можно использовать для кеширования на диск оригинальных изображений из БД. product_preview_with_logo: macro: Replica_Macro_ThumbnailFit: [600, 600] Replica_Macro_Overlay: [-10, -10, %SF_WEB_DIR%/images/logo.png] # Сжать изображение и наложить логотип в правом нижнем углу со смещением 10px Подробное описание `macro` можно получить здесь: plugins/sfReplicaThumbnailPlugin/lib/vendor/Replica/README Использование ------------- Использование в шаблонах [php] use_helper('Replica'); echo thumbnail('product_preview', new Replica_ImageProxy_FromFile($article->getImagePath())); // <img src="..." /> Если изображение хранится в БД, тогда можно написать свой класс на основе Replica_ImageProxy_Abstract. Для Doctrine можно использовать sfReplicaImageDoctrine: [php] echo thumbnail('product_preview', new sfReplicaImageDoctrine($articleImage)); // или echo thumbnail('product_preview', new sfReplicaImageDoctrine('ArticleImage', $articleImage->getId())); sfReplicaImageDoctrine предполагает, что изображение хранится в поле `bin`, например: [yml] ArticleImage: columns: width: { type: integer(2), notnull: true, unsigned: true } height: { type: integer(2), notnull: true, unsigned: true } size: { type: integer(4), notnull: true, unsigned: true } type: { type: string(16), notnull: true } bin: { type: blob, notnull: true } В противном случае можно указать свое поле: [php] class myReplicaImageProxyDoctrine extends sfReplicaImageDoctrine { protected $_field = 'file'; }
About
Thumbnail plugin for Symfony Framework
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
- PHP 100.0%