Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

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


Recommended Posts

Есть много фото в базе в разных папках, которые не используются. Есть ли модуль или способ полегче, чтобы полистить базу ? Спасипотому что!

Link to comment
Share on other sites


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

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

 

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

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

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

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

 

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

 

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

  • +1 1
Link to comment
Share on other sites

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

Есть модуль:

 

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

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

 

 

из описания:

Циии

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

 

 

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

 

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

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

Link to comment
Share on other sites

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

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

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

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

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

Link to comment
Share on other sites

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

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

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

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

Link to comment
Share on other sites

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

 

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

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

 

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

 

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

 

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

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

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

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

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

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

Link to comment
Share on other sites


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

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

 

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

 

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

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

Link to comment
Share on other sites

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){
				

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

Edited by Vorodisa
Link to comment
Share on other sites


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"); // згдесь указываем директория ггде есть только фото товаров

 

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

 

Link to comment
Share on other sites

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

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

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

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

Link to comment
Share on other sites


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

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

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

 

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

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

 

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

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

 

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

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

 

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

 

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

 

53b55f32b8.jpg

 

 

Link to comment
Share on other sites

  • 1 year later...
  • 1 month later...
  • 1 year later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.