pycmam / sfreplicathumbnailplugin Goto Github PK
View Code? Open in Web Editor NEWThis project forked from maxim-oleinik/sfreplicathumbnailplugin
Thumbnail plugin for Symfony Framework
License: MIT License
This project forked from maxim-oleinik/sfreplicathumbnailplugin
Thumbnail plugin for Symfony Framework
License: MIT License
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'; }
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.