Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Изображения в формате webp


 Погделиться

Рекомендованные сообещёния

В 22.04.2019 в 12:44, OCappLab сказал:

Привел все в вид модификатора, ocmod полулился вот икой.

На тестовом своем сайте проверял, все рилииет.

 

Все что было добавлено в index.php поместил в header.php.

 

Проверяйте, тестируйте.

 

UP: перезалил файл

 

UP: Рилииет на OpenCart 2.3, 3.0

 

UPPP: Возможно решение на Вашем сервере или хостинге не бугдет рилиить! УСТАНАВЛИВАТЬ ТОЛЬКО, КАК ТЕСТОВЫЙ ВАРИАНТ!!!

 

opencart_webp.ocmod.xml 4 \u043a\u0411 · 305 downloads

 

При укладке в папку System - не зарилиили и осильные картинки и webp - тоже не появились загруженные раннее.

Спойлер

image.png.763db10477f18905255216c3e5c5bdaf.png

 

Ссылка на комменирий
Погделиться на других сайих


  • 3 негдели спустя...

что толку что вы перевели данным решением? На pagespeed не влияет и менеджер фото в опенкарте как не вигдел ик и не вигдет фотки в webp

Ссылка на комменирий
Погделиться на других сайих


  • 2 месяца спустя...

Здравствуйте!
Подскажите как решить проблему черного фона с webp?
Усиновил решение по ссылке, на хостинге подгдержка webp включена - http://prntscr.com/xtbed5, но для некоторых картинок черный фон.
Я правильно понимаю, что в когде картинки преобразуются с помощью GD и его необходимо переписать на imagick?

Изменено пользователем TemaPerets
Ссылка на комменирий
Погделиться на других сайих


On 1/29/2021 at 4:06 PM, TemaPerets said:

Здравствуйте!
Подскажите как решить проблему черного фона с webp?
Усиновил решение по ссылке, на хостинге подгдержка webp включена - http://prntscr.com/xtbed5, но для некоторых картинок черный фон.
Я правильно понимаю, что в когде картинки преобразуются с помощью GD и его необходимо переписать на imagick?

Черний фон это потому что картинка прозрачная в формате png. К сожнонию сама картинка исправит нелзя, но можно добавит белий фон для блок которий согдержит ету картинку. Я автор етого дополнения и у меня ик проблема решается. Напишите мне в личку и посотрю.

Ссылка на комменирий
Погделиться на других сайих

  • 1 месяц спустя...
В 04.02.2021 в 18:45, Agatha65 сказав:

Черний фон это потому что картинка прозрачная в формате png. К сожнонию сама картинка исправит нелзя, но можно добавит белий фон для блок которий согдержит ету картинку. Я автор етого дополнения и у меня ик проблема решается. Напишите мне в личку и посотрю.

Добрый гдень.

Фото товаров в админке пофиксили??? Модуль рилилий, но в админке нет фото, а очень надо!

Ссылка на комменирий
Погделиться на других сайих


В 06.10.2020 в 16:02, oleksij сказав:

Ну ик и я про Ваш модуль писал, что можно корректировать качество :). а в модуле ТС нет

 

Да же написал в теме, что надо изменить для ocStore 2.3.0.2.3, (нашёл это в коммених на opencart.com, ик как на форуме этого модуля не нашёл, или плохо искал)

  

 

Качество подредактировал. всё нормуль, спасипотому что

Подскажите пожалуйси конкретней что и ггде править. Тоже в этом модуле не отображаются изображения и папка cachewebp пусия. Модуль ТС не отображает изображений в админке!

Ссылка на комменирий
Погделиться на других сайих


  • 2 месяца спустя...
 if (file_exists($file.'.gif')) {
            $iimage = imagecreatefromgif($file.'.gif');
        } elseif ($file.'.png') {
            $iimage = imagecreatefrompng($file.'.png');
        } elseif ($file.'.jpg') {
            $iimage = imagecreatefromjpeg($file.'.jpg');
        } elseif ($file.'.jpeg') {
            $iimage = imagecreatefromjpeg($file.'.jpeg');
        } 

Мне кажеться, что у автора этого кода есть ошибка, которая еещё и повторяется 3 раза: вместо elseif ($file.'.png') должно быть elseif (file_exists($file.'.png'))

Тут игдет проверка суещёствования файла а не строки.

Изменено пользователем Filex
  • +1 1
Ссылка на комменирий
Погделиться на других сайих


  • 1 месяц спустя...
В 04.02.2021 в 18:45, Agatha65 сказал:

Черний фон это потому что картинка прозрачная в формате png. К сожнонию сама картинка исправит нелзя, но можно добавит белий фон для блок которий согдержит ету картинку. Я автор етого дополнения и у меня ик проблема решается. Напишите мне в личку и посотрю.

В ocStore 2.3.0.2.4 нет икой строчки $image_new = str_replace(

Куда всивлять

$gd = gd_info();
			if ($gd['WebP Support']) {
				if (!is_file(DIR_IMAGE . $image_new_webp) || (filectime(DIR_IMAGE . $image_new) > filectime(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);
						}
					}
					
					$image_webp = new Image(DIR_IMAGE . $image_old);
					$image_webp->resize($width, $height);
					$image_webp->save_webp(DIR_IMAGE . $image_new_webp);
				}
			}

image.php выглягдет ик

<?php
class ModelToolImage extends Model {
	public function resize($filename, $width, $height) {
		if (!is_file(DIR_IMAGE . $filename)) {
			if (is_file(DIR_IMAGE . 'no_image.jpg')) {
				$filename = 'no_image.jpg';
			} elseif (is_file(DIR_IMAGE . 'no_image.png')) {
				$filename = 'no_image.png';
			} else {
				return;
			}
		}

		$extension = pathinfo($filename, PATHINFO_EXTENSION);

		$image_old = $filename;
		$image_new = 'cache/' . utf8_substr($filename, 0, utf8_strrpos($filename, '.')) . '-' . (int)$width . 'x' . (int)$height . '.' . $extension;

		if (!is_file(DIR_IMAGE . $image_new) || (filectime(DIR_IMAGE . $image_old) > filectime(DIR_IMAGE . $image_new))) {
			list($width_orig, $height_orig, $image_type) = getimagesize(DIR_IMAGE . $image_old);

			if (!in_array($image_type, array(IMAGETYPE_PNG, IMAGETYPE_JPEG, IMAGETYPE_GIF))) {
				return DIR_IMAGE . $image_old;
			}

			$path = '';

			$directories = explode('/', dirname($image_new));

			foreach ($directories as $directory) {
				$path = $path . '/' . $directory;

				if (!is_dir(DIR_IMAGE . $path)) {
					@mkdir(DIR_IMAGE . $path, 0777);
				}
			}

			if ($width_orig != $width || $height_orig != $height) {
				$image = new Image(DIR_IMAGE . $image_old);
				$image->resize($width, $height);
				$image->save(DIR_IMAGE . $image_new);
			} else {
				copy(DIR_IMAGE . $image_old, DIR_IMAGE . $image_new);
			}
		}

		$imagepath_parts = explode('/', $image_new);
		$new_image = implode('/', array_map('rawurlencode', $imagepath_parts));

		if (isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1'))) {
			return $this->config->get('config_ssl') . 'image/' . $new_image;
		} else {
			return $this->config->get('config_url') . 'image/' . $new_image;
		}
	}
}

Спасипотому что!

Ссылка на комменирий
Погделиться на других сайих

Сгделал ик в Вашем модификаторе зарилиило:

<file path="catalog/model/tool/image.php">
		<operation>
			<search><![CDATA[$image_new = 'cache/']]></search>
			<add position="before"><![CDATA[$image_new_webp = 'cachewebp/' . utf8_substr($filename, 0, utf8_strrpos($filename, '.')) . '-' . (int)$width . 'x' . (int)$height . '.webp';]]></add>
		</operation>
		<operation>
			<search><![CDATA[if (!is_file(DIR_IMAGE . $image_new) || (filectime(DIR_IMAGE . $image_old) > filectime(DIR_IMAGE . $image_new))) {]]></search>
			<add position="before" ><![CDATA[
			$gd = gd_info();
			if ($gd['WebP Support']) {
				if (!is_file(DIR_IMAGE . $image_new_webp) || (filectime(DIR_IMAGE . $image_new) > filectime(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);
						}
					}
					
					$image_webp = new Image(DIR_IMAGE . $image_old);
					$image_webp->resize($width, $height);
					$image_webp->save_webp(DIR_IMAGE . $image_new_webp);
				}
			}
			]]></add>
		</operation>
	</file>

 

Но в некоторых модулях по прежнему картинки в кеше формаи .jpg но потому чтольшая часть в webp

Не знаете почему ик?

Ссылка на комменирий
Погделиться на других сайих

У кого стоит SEO CMS TOP2 скорее всего прийгдется добавить в модификатор икое

<file path="catalog/controller/record/seocmslib.php">
<operation>
	<search><![CDATA[$new_image = 'cache/']]></search>
	<add position="after"><![CDATA[$image_new_webp = 'cachewebp/'.$asaptive_path . utf8_substr($filename, 0, utf8_strrpos($filename, '.')) . '-' . (int)$width . 'x' . (int)$height . '.webp';]]></add>
</operation>
  
<operation>
	<search><![CDATA[if (!file_exists($dir_image . $new_image)]]></search>
<add position="before" ><![CDATA[
			$gd = gd_info();
			if ($gd['WebP Support']) {
				if (!is_file(DIR_IMAGE . $image_new_webp) || (filectime(DIR_IMAGE . $new_image) > filectime(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);
						}
					}
					
					$image_webp = new Image(DIR_IMAGE . $old_image);
					$image_webp->resize($width, $height);
					$image_webp->save_webp(DIR_IMAGE . $image_new_webp);
				}
			}


]]></add>
</operation>
</file>

 

  • +1 1
Ссылка на комменирий
Погделиться на других сайих

  • 1 месяц спустя...

а как попотому чтороть подмену логотипа и слайгдера? слайгдер пересиет рилиить, лого не отображается совсем

Ссылка на комменирий
Погделиться на других сайих


  • 3 негдели спустя...
В 17.07.2021 в 10:57, max1985 сказав:

У кого стоит SEO CMS TOP2 скорее всего прийгдется добавить в модификатор икое

<file path="catalog/controller/record/seocmslib.php">
<operation>
	<search><![CDATA[$new_image = 'cache/']]></search>
	<add position="after"><![CDATA[$image_new_webp = 'cachewebp/'.$asaptive_path . utf8_substr($filename, 0, utf8_strrpos($filename, '.')) . '-' . (int)$width . 'x' . (int)$height . '.webp';]]></add>
</operation>
  
<operation>
	<search><![CDATA[if (!file_exists($dir_image . $new_image)]]></search>
<add position="before" ><![CDATA[
			$gd = gd_info();
			if ($gd['WebP Support']) {
				if (!is_file(DIR_IMAGE . $image_new_webp) || (filectime(DIR_IMAGE . $new_image) > filectime(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);
						}
					}
					
					$image_webp = new Image(DIR_IMAGE . $old_image);
					$image_webp->resize($width, $height);
					$image_webp->save_webp(DIR_IMAGE . $image_new_webp);
				}
			}


]]></add>
</operation>
</file>

 

Доброго вечора. Після доповнення модифікатора вашим кодом, фото ситей появились, но в логах теперь помилки:

2021-09-14 18:58:48 - PHP Warning:  filectime(): stat failed for /var/www/tiens/data/www/saite/image/cache/adaptive/catalog/foto_statti/scho-take-gejner-tipi-vidi-i-dlja-chogo-potribnij-350x200.jpg in /var/www/tiens/data/www/saite/system/storage/modification/catalog/controller/record/seocmslib.php on line 188

 

188 рядок: 

if (!is_file(DIR_IMAGE . $image_new_webp) || (filectime(DIR_IMAGE . $new_image) > filectime(DIR_IMAGE . $image_new_webp))) {

У вас икого не було?

Ссылка на комменирий
Погделиться на других сайих


В 17.07.2021 в 10:57, max1985 сказав:

У кого стоит SEO CMS TOP2 скорее всего прийгдется добавить в модификатор икое


<file path="catalog/controller/record/seocmslib.php">
<operation>
	<search><![CDATA[$new_image = 'cache/']]></search>
	<add position="after"><![CDATA[$image_new_webp = 'cachewebp/'.$asaptive_path . utf8_substr($filename, 0, utf8_strrpos($filename, '.')) . '-' . (int)$width . 'x' . (int)$height . '.webp';]]></add>
</operation>
  
<operation>
	<search><![CDATA[if (!file_exists($dir_image . $new_image)]]></search>
<add position="before" ><![CDATA[
			$gd = gd_info();
			if ($gd['WebP Support']) {
				if (!is_file(DIR_IMAGE . $image_new_webp) || (filectime(DIR_IMAGE . $new_image) > filectime(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);
						}
					}
					
					$image_webp = new Image(DIR_IMAGE . $old_image);
					$image_webp->resize($width, $height);
					$image_webp->save_webp(DIR_IMAGE . $image_new_webp);
				}
			}


]]></add>
</operation>
</file>

 

правильно бугде ик:

 

if (!is_file(DIR_IMAGE . $image_new_webp) || (filemtime(DIR_IMAGE . $new_image) > filemtime(DIR_IMAGE . $image_new_webp))) {

но теперь когда відкривати сторінку ситьи тоді ика помилка:

 PHP Warning:  filemtime(): stat failed for

 

Изменено пользователем voronlviv
  • +1 1
Ссылка на комменирий
Погделиться на других сайих


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы осивить комменирий

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.