Бывают такие ситуации, когда нужно сбросить дату начала активности элемента. Не важно, элементы блога это, товар, новость или что-то еще.
Как обнулить дату начала активности
Если мы говорим про элементы инфоблока, и апи битрикса, то мы как правило имеем ввиду CIBlockElement::GetList . Этот раз не исключение. С помощью GetList мы будем устанавливать всем элементам дату начала активности в пустое значение.
Дата начала активности, или ‘DATE_ACTIVE_FROM’, отвечает за то, с какого момента публиковать запись (если установлено значение ‘DATE_ACTIVE_TO’, то и по какой период тоже). На примере ниже вы сможете увидеть как легко обнулить у элементов инфоблока значение этого параметра:
if(CModule::IncludeModule("iblock")): $IBLOCK_ID = 4; $rs = CIBlockElement::GetList ( false, Array("IBLOCK_ID" => $IBLOCK_ID, "ACTIVE" => "Y"), false, false, Array('ID', 'NAME') ); while ($arItem = $rs->GetNext()) { $ELEMENT_ID = $arItem['ID']; // id элемента $el = new CIBlockElement; $arLoadProductArray = Array( 'DATE_ACTIVE_FROM' => '' ); $res = $el->Update($ELEMENT_ID, $arLoadProductArray); } endif;
Конечно, в фильтр можно добавить ‘!DATE_ACTIVE_FROM’ => false (лично не пробовал, но по идее должно уменьшить кол-во запросов).
Надеюсь у вас всё получилось, а если нет пишите комментарии к этой записи, будем вместе разбираться 🙂 .