Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!
написали, но часть вопроса, все равно открыта.
При ответе на этот вопрос я просто ожидал указание "на место" (возможно /bitrix/php_interface/init.php?), где можно деактивировать элементы и как лучше (с точки зрения производительности) всего это сделать (то есть получить список, и изменить свойство у каждого из элементов).
Дело в том, что есть еще функциональность которая необходима. У элементов, в данном информационном блоке, есть некоторое свойство, которое отвечает за отображение этих элементов в определенном списке (скажим топ элементов). Но в этом списке элементы должны показывать только скажем 2 недели после даты добаления, а после истечения этого срока они должны из списка топа уходить, но продолжать еще быть активными некоторое время.
Вот для решения подобной задачи, я намеривался использовать тоже "место", и тот же подход.
хм... а вот вознмк все таки вопрос.
Я нашел те элементы которые нужно деактивировать. А как собственно правильно это сделать?
Проблема в том, что я пытался это сделать при помощи CIBlockElement::Update следующим образом:
Код
$el = new CIBlockElement;
$arProps = Array(
"ACTIVE" => "N"
);
$res = $el->Update($arFields["ID"], $arProps);
в результате элемент становится неактивным, но при этом удаляются все его другие свойтсва. Оно и в общем очевидно, я ведь их здесь не задал.
Ладно, смотрим другой метод CIBlockElement::SetPropertyValues
Не работает. Видимо потому что свойство активности не добавлено мной, а явлеется предопределенным.
Суть вопроса: единственный путь который у меня есть - использовать CIBlockElement::Update, но при этом мне необходимо прочитать все остальные свойства (в том числе и созданные мной) и при использовании этого update занести их все в $arProps? или же есть способ похожий на второй?
Ибо информационный блок, с которым приходится работать имеет большое количество собственных свойств. Читать их, а потом записывать их же, как-то не рационально, тогда как достаточно было бы изменить только одно. Тем более в условиях ограниченности ресурсов веб хостинга.
Т.е. функционала автоматического изменения активности элемента в зависимости от установленных даты начала активности и даты окончания активности так и нет?