Заменяю изображение без изменения названия, на хостинге или через админку, а фото не меняется (выводится старое изображение). Кэш в папках чистил. Стоит отметить что используется штатный модуль из шаблона для конвертации jpg в webp. По прямой ссылке jpg в браузере отображается корректно (новое изображение), а вот с webp беда, отображается старое фото. Думаю что код в шаблоне для преобразования jpg в webp, также использован в бесплатном модуле, или наоборот. Как заставить webp изменятся после замены jpg на сервере?
PHP:
<?xml version="1.0" encoding="UTF-8"?>
<modification>
<name>Unishop2 WebpImg</name>
<code>Unishop2 WebpImg</code>
<version>1.0</version>
<author>based on original idea - https://stick-design.ru</author>
<file path="catalog/model/tool/image.php">
<operation>
<search><![CDATA[$image_new = str_replace]]></search>
<add position="before"><![CDATA[
$gd_info = gd_info();
if($gd_info['WebP Support']) {
$image_new_webp = 'cache/webp/' . utf8_substr($filename, 0, utf8_strrpos($filename, '.')) . '-' . (int)$width . 'x' . (int)$height . '.webp';
if (is_file(DIR_IMAGE . $image_new) && (!is_file(DIR_IMAGE . $image_new_webp) || (filemtime(DIR_IMAGE . $image_new) > filemtime(DIR_IMAGE . $image_new_webp)))) {
$path = '';
$directories = explode('/', dirname($image_new_webp));
foreach ($directories as $directory) {
$path = $path . '/' . $directory;
if (!is_dir(DIR_IMAGE . $path)) {
@mkdir(DIR_IMAGE . $path, 0777);
}
}
$extension = strtolower($extension);
if ($extension == 'gif') {
$img = imagecreatefromgif(DIR_IMAGE.$image_new);
} elseif ($extension == 'png') {
$img = imagecreatefrompng(DIR_IMAGE.$image_new);
} elseif ($extension == 'jpeg' || $extension == 'jpg') {
$img = imagecreatefromjpeg(DIR_IMAGE.$image_new);
} else {
$img = '';
}
if($img) {
imagepalettetotruecolor($img);
imagewebp($img, DIR_IMAGE.$image_new_webp);
imagedestroy($img);
}
}
if(is_file(DIR_IMAGE . $image_new_webp)) {
if(stripos($this->request->server['REQUEST_URI'], 'admin') === false && isset($this->request->server['HTTP_ACCEPT']) && strpos($this->request->server['HTTP_ACCEPT'], 'image/webp') !== false) {
$image_new = $image_new_webp;
}
}
}
]]></add>
</operation>
</file>
</modification>