Видалення зображень virtuemart 2

Якщо Вам часто доводиться працювати з товарами в Virtuemart 2, то Ви напевно знаєте, що після видалення товару, саме зображення з сайту не видаляються, що в свою чергу часто призводить до заповнення дискового простору сайту непотрібними файлами. Особисто у мене необхідність видалити непотрібні картинки з'явилася після того, як кілька разів невдало імпортував товари, потім поміняв настройки імпорту і зображення розмножилися, коротше не важливо, ось Вам скрипт, який дозволить видалити ці зображення:

Відразу хочу попередити, що якщо зображень багато, скрипту знадобиться багато часу для виконання. Так, що подбайте про це, змінивши вигляд php, на приблизно з 30 секунд до 15 хвилин 🙂

Плагін масового зміни цін і залишків Virtuemart

Добридень!
Не підкажете для особливо обдарованих по подробней, як цим користуватися? куди вставити і як настройки PHP поміняти з 30 секунд до 15 хвилин?

Я тут хоч обробку помилок додав:
host, $ conf-> user, $ conf-> password, $ conf-> db);

$ Images = array_slice (scandir ($ imgPath), 2);
$ Resized = array_slice (scandir ($ resizedPath), 2);

$ Query = "SELECT
virtuemart_media_id,
file_url,
file_url_thumb
FROM virtuemart_medias
WHERE virtuemart_media_id IN (SELECT DISTINCT virtuemart_media_id FROM virtuemart__medias) »;

if (! $ res) die ( «Can not get database resource!»);

while ($ r = $ res-> fetch_array ()) $ activeID [] = $ r [0];

$ P = pathinfo ($ r [1]);
$ ActiveImg [] = $ p [ 'basename'];

$ P = pathinfo ($ r [2]);
$ ActiveResized [] = $ p [ 'basename'];
>
if (! is_null ($ activeImg)) $ notActiveImg = array_diff ($ images, $ activeImg);
>;
if (! is_null ($ activeResized)) $ notActiveResized = array_diff ($ resized, $ activeResized);
>

if (! is_null ($ activeID)) $ db-> query ( «DELETE FROM virtuemart_medias WHERE file_type = '$ type' AND virtuemart_media_id NOT IN («. implode ( ',', $ activeID). »)»);
>
$ Db-> close ();

$ Full = 0;
$ Thumb = 0;
if (! is_null ($ activeImg))

foreach ($ notActiveImg as $ i) if (is_file ($ imgPath. $ i) $ I! = 'Index.html') if (unlink ($ imgPath. $ I)) $ full ++; else echo "Can not delete $ imgPath $ i»;
> Else «File not exists $ imgPath. $ I»;
>
>
if (! is_null ($ activeResized))

foreach ($ notActiveResized as $ i) if (is_file ($ resizedPath. $ i) $ I! = 'Index.html') if (unlink ($ resizedPath. $ I)) $ thumb ++; else echo "Can not delete $ imgPath $ i»;
> Else «File not exists $ imgPath. $ I»;
>
>
if ($ full> 0) echo "Deleted $ full full-sized images»;
if ($ thumb> 0) echo "Deleted $ thumb thumbnail images»;
if ($ full == 0 $ Thumb == 0) echo «Nothing to delete»;
?>

Схожі статті