Удаление фото если они не закреплены за товаром - чистка сервера от лишних изображений

категория: , Дорабатываем, Должно быть, Полезности


Опубликовано: 17.11.2017 Просмотров: 71 Комментарии: 0


Удаление фото если они не закреплены за товаром - чистка сервера от лишних изображений

Делюсь скриптом простого удаления всех ненужных фото удаленных товаров


Когда в Opencart удаляется товар, фото физически остается на сервере а удаляется лишь в базе сам товар и привязка к файлу.

Чем это плохо?

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

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

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

Код скрипта можно вставить например в admin/controller/common/header.php в функцию index

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){
$query_dop = $this->db->query("SELECT * FROM oc_product_image WHERE image = '".$image[1]."'"); //доп фото
if(!$query_dop->rows){
//echo $file . "<br>"; //можно раскомментировать строку - отображение файла который удаляется
unlink($file);
$net++;
}
}
}
}
echo "Всего фото: " . count($find_files) . "<br>";
echo "Удалено: " . $net . "<br>";
echo "</pre>";

После сохранения - заходим в админку и смотрим на статистику сколько есть файлов и сколько удалено лишних.

В примере поставлен стандартный префикс oc_ для таблиц в Opencart, если у вас другой (смотрите конфиг) поменяйте.

Вообще что бы не копились фото при удалении товара а сразу удалялись рекомендую использовать бесплатный модуль.


Комментарии:


Быстрый поиск

Похожее

  • Изображения

    Изображения это дополнительные картинки на странице товара. Количество изображений не ограничено

  • Изображение товара

    Изображение это визитная карточка товара. На этот пункт хотелось бы заострить особое внимание, т.к. всем известно, что «встречают по одежке», это также относится и к товарам.

Новое на сайте