ModX
Vladimir Sushilov edited this page Oct 21, 2019
·
13 revisions
- Проверяем включены ли
GD
иImagick
на сервере. НаGD
старых версий работает конвертирование только для jpg/jpeg. В некоторых конвертирование в WebP не поддерживается вовсе. БезImagick
не определяется автоматически качество исходного изображения, конвертируется по умолчанию в 75 для jpg и 85 для png.
var_dump(function_exists('imagewebp')); // bool(true) - можно
- Устанавливаем библиотеку через composer или без него.
- Создаём плагин, называем "WebP", привязываем к системному событию
OnWebPagePrerender
(ставим галочку). - Вставляем следующий код:
//<?php
require $modx->config['base_path'].'vendor/autoload.php';
use WebPParseAndConvert\WebPParseAndConvert;
$content = $modx->Event->params['documentOutput'];
//$content = &$modx->resource->_output; //Для ModX Revolution раскомментируйте эту строку и первую.
$rootDir = $modx->config['base_path']; // корень сайта
// инициализация
$converter = new WebPParseAndConvert($content, $rootDir);
// конвертирование изображений и замена в $content адресов на webp версии
$content = $converter->execute();
$modx->Event->output($content);
- Сохраняем плагин.