diff --git a/htdocs/langs/en_US/website.lang b/htdocs/langs/en_US/website.lang
index c23f4425dca..bb656d85a7b 100644
--- a/htdocs/langs/en_US/website.lang
+++ b/htdocs/langs/en_US/website.lang
@@ -141,3 +141,7 @@ GenerateSitemaps=Generate website sitemap file
ConfirmGenerateSitemaps=If you confirm, you will erase the existing sitemap file...
ConfirmSitemapsCreation=Confirm sitemap generation
SitemapGenerated=Sitemap Generated
+GenerateImgWebp=Convert all images into webp
+ConfirmGenerateImgWebp=If you confirm, you will generate all website's images in webp format...
+ConfirmImgWebpCreation=Confirm all images convertion
+SucessConvertImgWebp=Images successfully converted
\ No newline at end of file
diff --git a/htdocs/website/index.php b/htdocs/website/index.php
index 26ca6df9bf8..a6b31e0bb39 100644
--- a/htdocs/website/index.php
+++ b/htdocs/website/index.php
@@ -2230,7 +2230,31 @@ if ($action == 'generatesitemaps' && $usercanedit) {
}
$action = 'preview';
}
-
+$imagefolder = $conf->website->dir_output.'/'.$websitekey.'/medias/image/'.$websitekey.'/';
+if ($action == 'convertimgwebp' && $usercanedit) {
+ include_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php';
+ $filelist = dol_dir_list($imagefolder, "all", 1);
+ foreach ($filelist as $filename) {
+ $filepath = $filename['fullname'];
+ if (!(substr_compare($filepath, 'webp', -strlen('webp')) === 0)) {
+ if (image_format_supported($filepath) == 1) {
+ $filepathnoext = preg_replace("/\..*/", "", $filepath);
+ $result = dol_imageResizeOrCrop($filepath, 0, 0, 0, 0, 0, $filepathnoext.'.webp');
+ if (!dol_is_file($result)) {
+ $error++;
+ setEventMessages($result, null, 'errors');
+ }
+ }
+ }
+ if ($error) {
+ break;
+ }
+ }
+ if (!$error) {
+ setEventMessages($langs->trans('SucessConvertImgWebp'), null);
+ }
+ $action = 'preview';
+}
/*
* View
@@ -2246,7 +2270,10 @@ if ($action == 'confirmgeneratesitemaps') {
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?website='.$website->ref, $langs->trans('ConfirmSitemapsCreation'), $langs->trans('ConfirmGenerateSitemaps', $object->ref), 'generatesitemaps', '', "yes", 1);
$action = 'preview';
}
-
+if ($action == 'confirmconvertimgwebp') {
+ $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?website='.$website->ref, $langs->trans('ConfirmImgWebpCreation'), $langs->trans('ConfirmGenerateImgWebp', $object->ref), 'convertimgwebp', '', "yes", 1);
+ $action = 'preview';
+}
$helpurl = 'EN:Module_Website|FR:Module_Website_FR|ES:Módulo_Website';
$arrayofjs = array(
@@ -2465,6 +2492,7 @@ if (!GETPOST('hide_websitemenu')) {
// Generate site map
print 'ref.'" class="button bordertransp"'.$disabled.' title="'.dol_escape_htmltag($langs->trans("GenerateSitemaps")).'">';
+ print 'ref.'" class="button bordertransp"'.$disabled.' title="'.dol_escape_htmltag($langs->trans("GenerateImgWebp")).'">';
print ' ';
print 'ref.'" class="button bordertransp"'.$disabled.' title="'.dol_escape_htmltag($langs->trans("ReplaceWebsiteContent")).'">';