Skip to content

Instantly share code, notes, and snippets.

@TrywaR
Last active July 26, 2020 22:11
Show Gist options
  • Save TrywaR/362f4ae2e3c487dc62a3ad5f0ddb84cf to your computer and use it in GitHub Desktop.
Save TrywaR/362f4ae2e3c487dc62a3ad5f0ddb84cf to your computer and use it in GitHub Desktop.
MODX Revo convert img to webp

Настройка

  • Качаем библиотеку webp-convert для конвертации картинок в webp с MEGA.nz
    *Подключение идёт в 5 строчке, если что там поправить путь до распакованных файлов на сайте
  • Создаём сниппет, называем imgToWebp, туда запихиваем код из файла ниже.

Сниппет принимает:

sImgUrl - Адрес картинки
sWebpQualityWebp - Мощьность сжатия, 100 - без сжатия
sWebpReconvert - Заменять или нет картинки, если webp уже есть

Сниппет отдаёт

адрес к созданной webp картинке

<?php
if ( empty($sImgUrl) ) return false;
// Подключение webp-convert
require_once( $modx->config['base_path'].'lib/webp-convert/webp-convert.inc' );
use WebPConvert\WebPConvert;
// Параметры
// $sImgUrl = ''; # Путь до картинки
$sWebpQualityWebp = $sWebpQualityWebp ? $sWebpQualityWebp : 100; # Качество сжатие в webp
$sWebpReconvert = $sWebpReconvert ? $sWebpReconvert : false; # Перезаписать имеющиеся webp
$sImgUrl = $modx->config['base_path'] . $sImgUrl;
$sImgUrlWebp = $sImgUrl . '.webp';
// Если webp нет
if ( file_exists($sImgUrl) )
if ( $sWebpReconvert || ! file_exists($sImgUrlWebp) )
if ( ! WebPConvert::convert($sImgUrl, $sImgUrlWebp, ['quality' => $sWebpQualityWebp]) )
$modx->log(modX::LOG_LEVEL_ERROR, 'Не удалось создать webp :( ' . $sImgUrlWebp );
return $sImgUrlWebp;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment