Скрипт, удаляющий изображения, которые не привязаны ни к чему.
Аккуратно с ИБ, у которых отдельно хранятся значения.
require($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php');
global $DB;
$t1 = microtime(true);
$q = 'SELECT f.ID
FROM `b_file` AS f
LEFT JOIN `b_iblock_element` AS e1 ON f.ID = e1.PREVIEW_PICTURE
LEFT JOIN `b_iblock_element` AS e2 ON f.ID = e2.DETAIL_PICTURE
LEFT JOIN `b_iblock_section` AS s1 ON f.ID = s1.PICTURE
LEFT JOIN `b_iblock_section` AS s2 ON f.ID = s2.DETAIL_PICTURE
LEFT JOIN `b_iblock_element_property` AS ep ON f.ID = ep.VALUE_ENUM
LEFT JOIN `b_iblock_property` AS p ON (ep.IBLOCK_PROPERTY_ID = p.ID AND p.PROPERTY_TYPE = "F")
WHERE
(f.module_id = "iblock" OR f.module_id = "")
AND e1.ID IS NULL
AND e2.ID IS NULL
AND s1.ID IS NULL
AND s2.ID IS NULL
AND ep.ID IS NULL
LIMIT 500';
$db = $DB->query($q);
while ($arItem = $db->fetch()) {
echo ''.print_r($arItem,1).'
';
// аккуратно с ИБ, у которых отдельно хранятся значения
//CFile::Delete($arItem["ID"]);
}
$t2 = microtime(true);
echo '' . print_r($t2 - $t1,1) . '
';
?>
Свежие комментарии