Битрикс — как перезаписать картинку анонса из детальной?
Что делать, если при импорте или при любых других условиях у вас не записывается свойство картинка анонса?
Как в битриксе заново сгенерировать картинки анонса
Для этого создадим файл в корне сайта, например import.php — в который запишем код:
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
CModule::IncludeModule("iblock");
CModule::IncludeModule("file");
$ID = 1;//id инфоблока
$arFilter = Array("IBLOCK_ID"=>$ID);
$rsEl = CIBlockElement::GetList(Array(), $arFilter);
while($arEl = $rsEl->GetNext()){
$el = new CIBlockElement;
$arFields = Array();
if($arEl["DETAIL_PICTURE"]){
$arFields['PREVIEW_PICTURE'] = CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"] . CFile::GetFileArray($arEl["DETAIL_PICTURE"])["SRC"]);
$arFields['PREVIEW_PICTURE']["del"] = "Y";
$el->Update($arEl["ID"], $arFields);
}
}
Указываем ID информационного блока и после запуска в браузере и окончания выполнения скрипта в поле для анонса запишется та же самая картинка что и в детальном.
Если вам необходимо записать фото в превью с учетом ресайза, то скрипт придется доработать.