Skip to content
Vladimir Sushilov edited this page Oct 21, 2019 · 13 revisions

Использование в ModX

  1. Проверяем включены ли GD и Imagick на сервере. На GD старых версий работает конвертирование только для jpg/jpeg. В некоторых конвертирование в WebP не поддерживается вовсе. Без Imagick не определяется автоматически качество исходного изображения, конвертируется по умолчанию в 75 для jpg и 85 для png.

Проверка возможности конвертирования:

var_dump(function_exists('imagewebp')); // bool(true) - можно
  1. Устанавливаем библиотеку через composer или без него.
  2. Создаём плагин, называем "WebP", привязываем к системному событию OnWebPagePrerender (ставим галочку).
  3. Вставляем следующий код:
//<?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);
  1. Сохраняем плагин.