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

Как найти и удалить фото, которые не используются?


Recommended Posts

Модуль точно был. Правда для 1.5. если не найдете то смогу реализовать. Пишите.

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

Вообще, универсального способа очистки не существует.

Модули, которые выводят изображения, могут очень хитро хранить информацию о выводимых файлах.

 

1)  Можно, например, просканировать БД и вытащить из нее все названия изображений.

Но придется сканировать настройки модулей в том числе.

При сканировании создать отдельную таблицу со списком всех изображения.

И далее если изображения нет в списке, то оно удаляется из исходников и кеша.

 

Но такой способ на 100% не гарантирует, что не будут удалены полезные изображения тоже. Но процентов на 90...99% можно доверять этому методу.

 

2) По идее, нужно сканировать всю БД по шаблону типа ".jpeg" (регулярное выражение должно быть тут) и складывать результат в отдельную таблицу.

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

16 минут назад, Ggtore сказал:

Есть модуль:

 

беда этого модуля в том, что он не учитывает многие изображения и удалит просто-напросто полезные в том числе.

он работает приблизительно по описанному мною выше алгоритму в вар. 1.

 

 

из описания:

Цитата

Если ссылка на изображение была добавлена вручную, например в html описание товара, то такие изображения не учитываются.

 

 

Т. е. он построен по неправильному алгоритму, о чем я писал выше.

 

Напишу ка я свое решение под это дело.  Бескомпромиссное и правильное.

Правильный алгоритм я описал выше как второй вариант.

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

Мне кажется более верное решение для модуля, это возможность задать в нём новое название папки для товаров (к примеру tovary), что бы в дальнейшем не искать их по папкам со слайдерами, баннерами, картинками шаблонов и фото любовниц в негляже...

Что бы модуль все изображения в эту папку разложил по под-папкам с названиями категорий.

Ну  и что бы он сами картинки переименовал в более сеошный вид, к примеру из разных скопипастенных картинок с кривыми названиями переименовал их скажем используя название товара....

Ну а потом просто убить все остальные папки..

Как то так видимо.

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

Вспомнил еще давно набросал такой скриптик:

https://for-opencart.com/must-be/delete-old-images

там просто прописываете папку которую сканить.

Конечно, сделайте бекап папки с фото перед чисткой и запускайте.

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

1 час назад, sitecreator сказал:

 

беда этого модуля в том, что он не учитывает многие изображения и удалит просто-напросто полезные в том числе.

он работает приблизительно по описанному мною выше алгоритму в вар. 1.

 

Читал тему поддержки. Слишком дорого у них переписать под нужды, если не попрет. И жалобы есть.

 

а если спарсить сайт и закачать обратно? Есть такой способ? 

 

13 минут назад, Exploits сказал:

Вспомнил еще давно набросал такой скриптик:

https://for-opencart.com/must-be/delete-old-images

там просто прописываете папку которую сканить.

Конечно, сделайте бекап папки с фото перед чисткой и запускайте.

Это я читал как раз)) Не повиснет, если там пару тысяч в папке фото? 

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


6 минут назад, Vorodisa сказал:

Читал тему поддержки. Слишком дорого у них переписать под нужды, если не попрет. И жалобы есть.

 

а если спарсить сайт и закачать обратно? Есть такой способ? 

 

Это я читал как раз)) Не повиснет, если там пару тысяч в папке фото? 

Не должно повиснуть, ну пробуйте, я этим методом чистил магазин все благополучно, много лишнего удалил.

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

5 минут назад, Exploits сказал:

Не должно повиснуть, ну пробуйте, я этим методом чистил магазин все благополучно, много лишнего удалил.

echo "<pre>";
		$net = 0;
		$find_files = $this->scan_Dir(DIR_IMAGE . "data"); // здесь указываем директория где есть только фото товаров
		if($find_files){		
			foreach($find_files as $file){
				$image = explode("www/image/", $file); - ТУТ АДРЕС СКАНИРУЕМОЙ ПАПКИ УКАЗЫВАЕМ?
				
				$query = $this->db->query("SELECT product_id FROM oc_product WHERE image = '".$image[1]."'"); //главное фото
				if(!$query->rows){
				

Я прост далекий немного от этого))))

Змінено користувачем Vorodisa
Надіслати
Поділитися на інших сайтах


1 минуту назад, Vorodisa сказал:

echo "<pre>";
		$net = 0;
		$find_files = $this->scan_Dir(DIR_IMAGE . "data"); // здесь указываем директория где есть только фото товаров
		if($find_files){		
			foreach($find_files as $file){
				$image = explode("www/image/", $file); - ТУТ АДРЕС СКАНИРУЕМОЙ ПАПКИ УКАЗЫВАЕМ?
				
				$query = $this->db->query("SELECT product_id FROM oc_product WHERE image = '".$image[1]."'"); //главное фото
				if(!$query->rows){
				

Я прост далекий немного от этого))))

там где:

$image = explode("www/image/", $file);

Посмотрите в config.php DIR_IMAGE и если там перед /image/ другое что-то - то и ставьте в скрипт, может быть так:

$image = explode("public_html/image", $file); если в конфиге не www а public_html.

Папку вот сюда $find_files = $this->scan_Dir(DIR_IMAGE . "data"); // здесь указываем директория где есть только фото товаров

 

папка data - стандартная папка для 1.5 версии, с 2.х уже папка catalog

Но! Лучше указывать ту папку в которой фото только товаров, например: 

$find_files = $this->scan_Dir(DIR_IMAGE . "data/product_photo"); // здесь указываем директория где есть только фото товаров

 

 Вообще сделайте бекапы и пробуйте внимательно. Если квалификации не хватает, лучше обратитесь к кому-то за помощью.

 

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

  • 6 months later...
В 30.04.2018 в 18:25, sitecreator сказал:

Напишу ка я свое решение под это дело.  Бескомпромиссное и правильное.

Добрый день.

Решение написали или еще нет?

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


56 минут назад, Amigo161 сказал:

Решение написали или еще нет?

Здравствуйте.

 

Первая часть уже сделана. Релиз будет на днях.

Реализовано на данный момент:

 

1) ресайз больших изображений исходников до заданной величины.

Т. е. избавляемся от 6000*4000 и т.п.

 

2) преобразование неправильных PNG и JPEG в правильные.   Есть некая эпидемия, видимо благодаря какому-то модулю (импорта?) с очень грубой ошибкой когда файл с расширением JPEG внутри содержит формат PNG (и наоборот).  Например, Фотошоп такие изображения не переваривает, но современные браузеры научились.

Тут проблема не только в неправильном формате, а в том, что такой псевдо-JPEG раздут в размерах файла в несколько раз. Приводя к правильному формату мы одновременно также уменьшаем нелепо раздутый размер файла.

 

Вот эти проблемы с изображениями на сайтах создают немало трудностей, в том числе делают тормоза при обработке. Поэтому эти задачи были выбраны как наиболее приоритетные.

 

А вот очистка от неиспользуемых файлов стоит на втором месте, т. к. по сути эти файлы безобидны (в отличие от файлов, которые я описал в первой части) и лишь занимают лишнее место.   Это задача сейчас реализована в бета-версии.   Будет в следующем релизе. Планируется второй релиз в этом месяце.  А первый, повторюсь, будет на днях.

 

53b55f32b8.jpg

 

 

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

  • 1 year later...
  • 1 month later...
  • 1 year later...
  • 2 years later...

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

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

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

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

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

Вхід

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

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

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