Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Recommended Posts

В 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 weeks later...
  • 2 months later...

Здравствуйте!
Подскажите как решить проблему черного фона с 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 month later...
В 04.02.2021 в 18:45, Agatha65 сказав:

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

Добрый день.

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

Надіслати
Поділитися на інших сайтах


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

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

 

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

  

 

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

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

Надіслати
Поділитися на інших сайтах


  • 2 months later...
 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 month later...
В 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 month later...
  • 3 weeks later...
В 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
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.