Как сделать выборка по инфоблоку с пересохранением нужных елементов?
Добры день.
Может скажите, как методами битрикса сделать выборку по инфоблоку с пересохранением нужных елементов?
Условно мне массово нужно присвоить тексту в инфоблоке дополнительный класс css или наоборот заменить и т д...
Антон, Т.е. нужно прописывать условия в шаблоне инфоблока? Просто до этого на других cms обычно меня путем запросов к БД, а в битриксе такое вытворять мне настоятельно не советовали.
прямые запросы к базе данных в битриксе делать нельзя!
в битриксе такое вытворять мне настоятельно не советовали
Резервная копия, API инструменты и в путь
spoiler
Продвинутые битрикс-юзеры только так и работают
Т.е. нужно прописывать условия в шаблоне инфоблока?
Если вам нужно массово сделать замены полей, свойств и т.п., то делаете отбор нужного и в цикле прогоняете апдейт. Как это работает можете посмотреть тут (этот пример вам не подходит, но для понимания логики сойдет) https://qna.habr.com/answer?answer_id=1505820
в шаблоне ?
Делать не в шаблоне, а на отдельной пустой странице
прямые запросы к базе данных в битриксе делать нельзя!
Можно - если понимаете, что делаете.
Если "текст" в условии задачи - это html, и хранится в столбце DETAIL_TEXT , то поправить все элементы инфоблока с ID 36 можно запросом вроде:
UPDATE `b_iblock_element`
SET `DETAIL_TEXT`=REPLACE(`DETAIL_TEXT`, 'что-то', 'что-то новое')
WHERE `IBLOCK_ID`=36
Ближайший по скорости вариант через API - это GetList() и потом поштучный Update() каждого элемента, с параметром bUpdateSearch=false. Потому что Битрикс за годы так и не научился массовым апдейтам.
Если же оставите параметр по умолчанию, в true, то ждать результата будете крайне долго.