pers1307 / convert
Convert for Publisher 6.0
dev-master
2016-05-13 05:42 UTC
Requires
- php: >=5.4.0
- ko-ko-ko/assert: ~1.0.0
Requires (Dev)
- phpunit/phpunit: 4.*
This package is not auto-updated.
Last update: 2025-02-07 21:21:48 UTC
README
Кароч, это конвертер картинок для Publisher'а. Очень часто возникает ситуация, что картинки не нравятся клиенту. Этот запил призван облегчить процесс конвертирования.
Установка
Используй composer и все.
$ php composer.phar require --prefer-dist pers1307/convert "dev-master"
Инструкция
Пока что в пакете можно найти только сборник рецептов.
Добавление новой картинки в коллекцию, или замена старой
Быстрое решение
require_once 'console.php'; $query = new MSTable('{catalog_items}'); $query->setFields(['*']); $items = $query->getItems(); $conf = array(115, 115, true); foreach ($items as $key => &$item) { $buf = unserialize($item['gallery']); foreach ($buf as $key2 => &$elem) { if (file_exists(DOC_ROOT . $elem['path']['original'])) { $result = MSFiles::makeImageThumb(DOC_ROOT . $elem['path']['original'], $conf); $elem['path']['min'] = $result; } } $item['gallery'] = serialize($buf); $sql = 'UPDATE ' . PRFX . "catalog_items SET `gallery`='" . $item['gallery'] . "' WHERE `id`=" . $item['id']; MSCore::db()->execute($sql); }
Правильное решение, хотя скорее обертка.
use pers1307\convert; $convertImage = new ConvertImage(); $convertImage->setDocRoot(DOC_ROOT); $convertImage->setConfig([115, 115, true]); $convertImage->setCollectionKey('gallery'); $function = function($pathOriginal, $config) { MSFiles::makeImageThumb($pathOriginal, $config); }; $query = new MSTable('{catalog_items}'); $query->setFields(['*']); $items = $query->getItems(); foreach ($items as $key => &$item) { $item = $convertImage->newImageInCollection($item, 'min', $function) $sql = 'UPDATE ' . PRFX . "catalog_items SET `gallery`='" . $item['gallery'] . "' WHERE `id`=" . $item['id']; MSCore::db()->execute($sql); }
Пример переконвертирования картинки в галлерее картинок. Быстрое решение
$query = new MSTable('{works}'); $query->setFields(['*']); $items = $query->getItems(); $galleries = []; foreach ($items as $key =>$item) { $arrayGallery = unserialize($item['gallery']); foreach ($arrayGallery as $key2 => $pic) { $galleries[$key][$key2] = $pic['path']['original']; } } $conf3 = array(800, 480, 'watermark' => array( 'src' => DOC_ROOT . '/DESIGN/SITE/images/watermark400x400.png', 'offset_x' => 150, 'offset_y' => 0 ) ); foreach ($items as $key => $item) { if (isset($galleries[$key])) { $tempGal = unserialize($item['gallery']); foreach ($tempGal as $key2 => $temp) { // Переконфигурировать картинку //$galleries[$key][$key2]; $result = MSFiles::makeImageThumb(DOC_ROOT . $galleries[$key][$key2], $conf3); $tempGal[$key2]['path']['win'] = $result; } $items[$key]['gallery'] = serialize($tempGal); } } foreach ($items as $key => $item) { $sql = 'UPDATE ' . PRFX . "works SET `gallery`='" . $item['gallery'] . "' WHERE `id`=" . $item['id']; MSCore::db()->execute($sql); }
Автор
Лицензия
The MIT License (MIT). Please see License File for more information.