Удаляем все изображения анонса и детальные запустив небольшой скрипт.
Как в товарах удалить все фото – Битрикс
ВАЖНО – данный скрипт можно отнести к критичным, а это значит, что информацию можно будет вернуть только из копии. Перед запуском вы должны сделать резервную копию, и четко понимать что дальше будет происходить. В целом, на копии вашего сайта я бы и посоветовал практиковаться 🙂
Немного вводной информации. Использовать будем CIBlockElement::GetList и небольшой трюк связанный с ‘del’ => ‘Y’. Для обновления элемента инфоблока будет использован $el->Update.
Если вам кажется, что Update можно использовать для обновления свойств инфоблока (например, в тех же выгрузках), то знайте – это очень плохая идея и вот почему:
Если массив PROPERTY_VALUES задан, то он должен содержать полный набор значений свойств для данного элемента, т.е. если в нем будет отсутствовать одно из свойств, то все его значения для данного элемента будут удалены.
Но это уже как говорится тема отдельного разговора. Приступим?
Перейдем к коду, и далее немного объясню что происходит:
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); if (CModule::IncludeModule("iblock")): $IBLOCK_ID = 1; $arLoadProductArray = Array( "PREVIEW_PICTURE" => array('del' => 'Y'), "DETAIL_PICTURE" => array('del' => 'Y'), ); $res = CIBlockElement::GetList ( Array("ID" => "ASC"), Array("IBLOCK_ID" => $IBLOCK_ID, "ACTIVE" => "Y"), false, false, Array('ID', 'NAME') ); while ($arItem = $res->GetNext()) { $el = new CIBlockElement; $PRODUCT_ID = $arItem['ID']; $resU = $el->Update($PRODUCT_ID, $arLoadProductArray); unset($el); } endif;
$IBLOCK_ID – тут всё понятно, id нужного нам информационного блока.
“ACTIVE” => “Y” – смотрим изображения только в активных элементах (товарах, новостях – нужное подчеркнуть)
$arLoadProductArray – а вот тут и кроется самое интересное. Передав в качестве параметра массив array(‘del’ => ‘Y’) мы полностью удалим изображения из элемента.
Удалятся ли ресайз копии? Скорей всего нет. И именно поэтому, для данной операции рекомендую удалить папку /upload/resize_cache/iblock.
Если у вас на сайте всё сделано правильно, то копии будут созданы заново. Либо на хитах (посещение страницы и просмотр конкретного товара), либо при загрузке новых изображений в базу.
Для варианта “при загрузке изображений в базу” – имеется ввиду настройки инфоблока для создания уменьшенных копий, а также вызов метода CFile::ResizeImageGet.
Вот и всё, надеюсь данная информация была для вас полезной 🙂 .
Спасибо!! Помогло, делал на копии
Рад что помогло 🙂