Как оптимизировать все картинки на сайте разом?
У меня есть плагин который с помощью phpthumb оптимизирует при загрузке, его ведь можно превратить чтобы он оптимизировал все картинки по запуску, как получить список все картинок что используются на сайте?
<?php
$fullPath = $source->getBases() ['pathAbsolute'] . $directory;
foreach ($files as $file)
{
if (strripos($file['type'], 'image') === false || $file['type'] == 'image/svg+xml')
{
return;
}
$name = $file['name'];
$pathToImage = $fullPath . $name;
if (exif_imagetype($pathToImage) == IMAGETYPE_JPEG)
{
$params = array(
'w' => 1920,
'f' => 'jpeg',
'q' => 80,
);
}
elseif (exif_imagetype($pathToImage) == IMAGETYPE_PNG)
{
$params = array(
'w' => 1920,
'f' => 'png',
'q' => 80,
);
}
elseif (exif_imagetype($pathToImage) == IMAGETYPE_GIF)
{
return;
}
$phpThumb = $modx->getService('modphpthumb', 'modPhpThumb', MODX_CORE_PATH . 'model/phpthumb/', array());
$phpThumb->setSourceFilename($pathToImage);
foreach ($params as $k => $v)
{
$phpThumb->setParameter($k, $v);
}
if ($phpThumb->GenerateThumbnail())
{
if (!$phpThumb->renderToFile($pathToImage))
{
$modx->log(1, 'Ошибка сохранения изображения в [' . $pathToImage . ']');
}
}
else
{
$modx->log(1, print_r($phpThumb->debugmessages, 1));
}
} Комментарии: 6
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
. Путь выдаёт правильный прям от корня хоста до картинки
Это некорректно с точки зрения архитектуры (плагин по своей сути это функция). А также плагин ограничен максимальным временем выполнения PHP скрипта.
Такие задачи выполняются в CLI режиме. То есть создайте отдельный php файл, подключите туда MODX, перенесите ваш код. Желательно переделать в класс и использовать ООП. И выполняйте код в консольном режиме.