diff --git a/sdk/phast.php b/sdk/phast.php
index a43e109..41679cd 100644
--- a/sdk/phast.php
+++ b/sdk/phast.php
@@ -7375,7 +7375,7 @@ class TranslationsManager
public function __construct($locale, $pluginName)
{
$data = \Kibo\PhastPlugins\SDK\Generated\Translations::DATA;
- if (isset($data[$this->locale])) {
+ if (isset($data[$locale])) {
$this->locale = $locale;
} else {
$this->locale = self::DEFAULT_LOCALE;
@@ -7769,6 +7769,7 @@ public function getForDocuments()
foreach (array_keys(self::SETTINGS_2_FILTERS) as $setting) {
$this->setSettingInPhastConfig($setting, $pluginConfig, $phastConfig);
}
+ $phastConfig['images']['cloudflare-image-format'] = $pluginConfig['img-cloudflare-format'] ?? 'off';
return call_user_func($this->onLoadCb, $phastConfig);
}
public function getForHTMLSnippets()
@@ -7782,6 +7783,7 @@ public function getForHTMLSnippets()
$this->setSettingInPhastConfig('img-optimization-tags', $pluginConfig, $phastConfig);
$this->setSettingInPhastConfig('img-optimization-css', $pluginConfig, $phastConfig);
$this->setSettingInPhastConfig('img-lazy', $pluginConfig, $phastConfig);
+ $phastConfig['images']['cloudflare-image-format'] = $pluginConfig['img-cloudflare-format'] ?? 'off';
$phastConfig['optimizeHTMLDocumentsOnly'] = false;
$phastConfig['optimizeJSONResponses'] = true;
$phastConfig['outputServerSideStats'] = false;
@@ -7931,7 +7933,7 @@ public function shouldDisplayFooter()
}
private function getDefaultAdminPanelSettings()
{
- return ['enabled' => true, 'admin-only' => false, 'pathinfo-query-format' => false, 'footer-link' => false, 'compress-service-response' => true, 'img-optimization-tags' => true, 'img-optimization-css' => true, 'img-optimization-api' => true, 'img-lazy' => true, 'css-optimization' => true, 'scripts-rearrangement' => false, 'scripts-defer' => true, 'scripts-proxy' => true, 'iframe-defer' => true, 'minify-html' => true, 'minify-inline-scripts' => true];
+ return ['enabled' => true, 'admin-only' => false, 'pathinfo-query-format' => false, 'footer-link' => false, 'compress-service-response' => true, 'img-optimization-tags' => true, 'img-optimization-css' => true, 'img-optimization-api' => true, 'img-lazy' => true, 'img-cloudflare-format' => 'off', 'css-optimization' => true, 'scripts-rearrangement' => false, 'scripts-defer' => true, 'scripts-proxy' => true, 'iframe-defer' => true, 'minify-html' => true, 'minify-inline-scripts' => true];
}
}
namespace Kibo\PhastPlugins\SDK\Configuration;
@@ -8176,7 +8178,8 @@ class Translations
')), 'Backend' => array('install-notice' => 'Thank you for using @:plugin-name. Optimizations are {pluginState}. Go to Settings to configure @:plugin-name.
', 'status' => array('on' => 'on', 'off' => 'off', 'admin' => 'on for administrators')), 'Information' => array('additional' => 'Additional information'), 'Notification' => array('error' => 'error', 'warning' => 'warning', 'information' => 'information', 'success' => 'success'), 'OnOffSwitch' => array('on' => 'On', 'off' => 'Off'), 'SavingStatus' => array('saving' => 'Saving', 'saved' => 'Saved'), 'Settings' => array('common' => array('tip' => 'Tip:', 'on' => 'On:', 'off' => 'Off:'), 'sections' => array('plugin' => array('title' => 'Plugin', 'enabled' => array('name' => '@:plugin-name optimizations', 'description' => array('main' => 'Test your site {without} and {with}', 'without' => 'without @:plugin-name', 'with' => 'with @:plugin-name')), 'admin-only' => array('name' => 'Only optimize for administrators', 'description' => array('on' => 'Only privileged users will be served with optimized version', 'off' => 'All users will be served with optimized version', 'tip' => 'Use this to preview your site before launching the optimizations')), 'pathinfo' => array('name' => 'Remove query string from processed resources', 'description' => array('start' => 'Make sure that processed resources don\'t have query strings, for a higher score in GTmetrix.', 'on' => 'Use the path for requests for processed resources. This requires a server that supports "PATH_INFO".', 'off' => 'Use the GET parameters for requests for processed resources.')), 'footer-link' => array('name' => 'Let the world know about @:plugin-name', 'description' => 'Add a "Optimized by @:plugin-name" notice to the footer of your site and help spread the word.'), 'compress-service-response' => array('name' => 'Enable gzip compression on processed resources', 'description' => 'This compresses the optimized and bundled JavaScript and CSS generated by PhastPress. Disable this if your server already compresses PhastPress responses.')), 'images' => array('title' => 'Images', 'tags' => array('name' => 'Optimize images in tags', 'description' => 'Compress images with optimal settings. {newline} Resize images to fit {width}x{height} pixels or to the appropriate size for {imgTag} tags with {widthAttr} or {heightAttr}. {newline} Reload changed images while still leveraging browser caching.
'), 'css' => array('name' => 'Optimize images in CSS', 'description' => array(0 => 'Compress images in stylesheets with optional settings and resizes the to fit {width}x{height} pixels.', 1 => 'Reload changed images while still leveraging browser caching.')), 'api' => array('name' => 'Use the Phast Image Optimization API', 'description' => array(0 => 'Optimize your images on our servers free of charge.', 1 => 'This will give you the best possible results without installing any software and will reduce the load on your hosting.
-')), 'lazy' => array('name' => 'Lazy load images', 'description' => array(0 => 'This adds the loading=lazy attribute to img tags so that images are only load once they are visible on the page.', 1 => 'This helps pass the "Defer offscreen images" audit in PageSpeed Insights.'))), 'html-filters' => array('title' => 'HTML, CSS & JS', 'css' => array('name' => 'Optimize CSS', 'description' => array(0 => 'Incline critical styles first and prevent unused styles from blocking the page load.', 1 => 'Minify stylesheets and leverage browser caching.', 2 => 'Inline Google Fonts CSS to speed up font loading.')), 'async-js' => array('name' => 'Load scripts asynchronously', 'description' => 'Allow the page to finish loading before all scripts have been executed.'), 'minify-js' => array('name' => 'Minify scripts and improve caching', 'description' => array(0 => 'Minify scripts and set long cache durations.', 1 => 'Reload changed scripts while still leveraging browser caching.')), 'iframe' => array('name' => 'Lazy load IFrames', 'description' => 'This adds the loading=lazy attribute to iframe tags so that IFrames are only loaded once they are visible on the page.'), 'minify-html' => array('name' => 'Minify HTML', 'description' => 'Remove unnecessary whitespace from the HTML code of the page.'), 'minify-inline-scripts' => array('name' => 'Minify inline scripts and JSON', 'description' => 'Remove unnecessary whitespace from inline scripts and JSON data.'))))));
+')), 'lazy' => array('name' => 'Lazy load images', 'description' => array(0 => 'This adds the loading=lazy attribute to img tags so that images are only load once they are visible on the page.', 1 => 'This helps pass the "Defer offscreen images" audit in PageSpeed Insights.')), 'cloudflare-format' => array('name' => 'Modern image formats behind Cloudflare', 'description' => array('off' => 'Cloudflare handles format negotiation (recommended if Cloudflare Polish is enabled).', 'webp' => 'Always serve WebP to all visitors.', 'avif' => 'Always serve AVIF to all visitors, with WebP fallback if the server does not support AVIF encoding.', 'tip' => 'Cloudflare does not respect Vary: Accept. The selected format is served unconditionally to all visitors. Only enable if Cloudflare Polish is disabled. See: https://developers.cloudflare.com/cache/advanced-configuration/vary-for-images/')
+)), 'html-filters' => array('title' => 'HTML, CSS & JS', 'css' => array('name' => 'Optimize CSS', 'description' => array(0 => 'Incline critical styles first and prevent unused styles from blocking the page load.', 1 => 'Minify stylesheets and leverage browser caching.', 2 => 'Inline Google Fonts CSS to speed up font loading.')), 'async-js' => array('name' => 'Load scripts asynchronously', 'description' => 'Allow the page to finish loading before all scripts have been executed.'), 'minify-js' => array('name' => 'Minify scripts and improve caching', 'description' => array(0 => 'Minify scripts and set long cache durations.', 1 => 'Reload changed scripts while still leveraging browser caching.')), 'iframe' => array('name' => 'Lazy load IFrames', 'description' => 'This adds the loading=lazy attribute to iframe tags so that IFrames are only loaded once they are visible on the page.'), 'minify-html' => array('name' => 'Minify HTML', 'description' => 'Remove unnecessary whitespace from the HTML code of the page.'), 'minify-inline-scripts' => array('name' => 'Minify inline scripts and JSON', 'description' => 'Remove unnecessary whitespace from inline scripts and JSON data.'))))));
}
namespace Kibo\PhastPlugins\SDK;
@@ -10152,4 +10155,4 @@ public function apply(\Kibo\Phast\ValueObjects\Resource $resource, array $reques
$minified = (new \Kibo\Phast\Common\JSMinifier($resource->getContent(), $this->removeLicenseHeaders))->min();
return $resource->withContent($minified);
}
-}
\ No newline at end of file
+}