Администраторы ab.support.serhii Опубликовано 1 Сентября, 2026 в 10:15 Автор Администраторы Post #16846 Опубликовано 1 Сентября, 2026 в 10:15 @Maksim при случае проверим, может Apple снова что-то начудила в очередных обновлениях. И можем ли мы что-то сделать в модуле. Пока что как вариант просто всё конвертировать в webp стандартным методом, без модуля. Спойлер Всё равно динозавров девайсов/браузеров без поддержки webp осталось мизерное количество. 1
Maksim Опубликовано 2 Сентября, 2026 в 17:30 Post #16855 Опубликовано 2 Сентября, 2026 в 17:30 @ab.support.serhii app/addons/ab__webp/func.php - строки 269–274 if (!defined('AB__WEBP_DEFAULT_QUANTITY') && SiteArea::isStorefront(AREA) && ((isset($_SERVER['HTTP_ACCEPT']) && strpos($_SERVER['HTTP_ACCEPT'], 'image/webp') !== false) || isset(Tygh::$app['session']['ab__webp'])) ) { Аддон включается, если в Accept есть image/webp или если флаг уже стоит в сессии. Safari в запросе страницы заголовок image/webp не присылает — его Accept для документа выглядит так: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 — поэтому не срабатывает ни одна ветка.
Maksim Опубликовано 2 Сентября, 2026 в 17:36 Post #16856 Опубликовано 2 Сентября, 2026 в 17:36 Вот такое может быть решение. Заменить это: function fn_ab__webp_before_dispatch() { if (!defined('AB__WEBP_DEFAULT_QUANTITY') && SiteArea::isStorefront(AREA) && ((isset($_SERVER['HTTP_ACCEPT']) && strpos($_SERVER['HTTP_ACCEPT'], 'image/webp') !== false) || isset(Tygh::$app['session']['ab__webp'])) ) { На это: function fn_ab__webp_ua_supports_webp() { if (empty($_SERVER['HTTP_USER_AGENT'])) { return false; } $ua = $_SERVER['HTTP_USER_AGENT']; if (strpos($ua, 'AppleWebKit') === false) { return false; } // Safari на macOS и iOS: токен Version/NN. WebP поддерживается с Safari 14. if (preg_match('~Version/(\d+)[\d.]*\s+(?:Mobile/\S+\s+)?Safari/~', $ua, $m)) { return (int) $m[1] >= 14; } // Chrome, Firefox, Edge на iOS: свой номер версии, движок системный. // WebP поддерживается начиная с iOS 14. if (preg_match('~(?:CriOS|FxiOS|EdgiOS)/~', $ua) && preg_match('~OS (\d+)[_\d]* like Mac OS X~', $ua, $m) ) { return (int) $m[1] >= 14; } return false; } function fn_ab__webp_before_dispatch() { if (!defined('AB__WEBP_DEFAULT_QUANTITY') && SiteArea::isStorefront(AREA) && ((isset($_SERVER['HTTP_ACCEPT']) && strpos($_SERVER['HTTP_ACCEPT'], 'image/webp') !== false) || fn_ab__webp_ua_supports_webp() || isset(Tygh::$app['session']['ab__webp'])) ) { Везде где нужно получаем webp.
Администраторы ab.support.serhii Опубликовано 3 Сентября, 2026 в 07:10 Автор Администраторы Post #16857 Опубликовано 3 Сентября, 2026 в 07:10 @Maksim спасибо, передам разработчику.
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти