Answer the question
In order to leave comments, you need to log in
Programmatic update of SEO fields of infoblock sections in 1C Bitrix?
Good afternoon, there is a task to programmatically update the seo fields in the sections of the info block, I do this:
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
// Загружаем данные из файла источника
$sources = array();
$file = file('export_seo_section.csv', FILE_IGNORE_NEW_LINES);
// Создаем массив с данными
foreach ($file as $key => $value) {
$sources[$key] = str_getcsv($value);
}
// Обработаем массив для сравнения
foreach ($sources as $key => $value) {
$source_data[$value[0]] = $value;
}
// ID Инфоблока
$IBLOCK_ID = 24;
// Получаем список разделов в инфоблоке
$rsElement = CIBlockSection::GetList(array(), array("IBLOCK_ID"=>$IBLOCK_ID, "ACTIVE"=>"Y"), false);
// Проходимся циклом и формируем массив со значениями
while ($arElement = $rsElement->GetNext()){
// Для получения дополнительных свойств из вклавдки SEO
$ipropValues = new \Bitrix\Iblock\InheritedProperty\SectionValues($arElement["IBLOCK_ID"], $arElement["ID"]);
// Массив с результатами
$arElement["IPROPERTY_VALUES"] = $ipropValues->getValues();
foreach ($source_data as $key => $value) {
if ($arElement["IPROPERTY_VALUES"]["SECTION_PAGE_TITLE"] == $key) {
// Формируем массив для загрузки
$LoadData= Array(
"ACTIVE" => "Y",
"IBLOCK_SECTION_ID" => $arElement['ID'],
"IBLOCK_ID" => $IBLOCK_ID,
"IPROPERTY_TEMPLATES"=>Array(
"SECTION_META_TITLE" => $value[1],
"SECTION_META_DESCRIPTION" => $value[2],
)
);
$res = new CIBlockSection;
$res = $res->Update($arElement['ID'], $LoadData);
print 'Обновили: ' .$arElement["IPROPERTY_VALUES"]["SECTION_PAGE_TITLE"].'<br/>';
}
}
}
array(4) {
["ACTIVE"]=>
string(1) "Y"
["IBLOCK_SECTION_ID"]=>
string(3) "722"
["IBLOCK_ID"]=>
int(24)
["IPROPERTY_TEMPLATES"]=>
array(2) {
["SECTION_META_TITLE"]=>
string(146) "Продажа вентиляторов для всех видов холодильников и других холодильных систем."
["SECTION_META_DESCRIPTION"]=>
string(349) "Вентиляторы в холодильнике служат для обдува холодильных камер систем NOFROST, в нашем каталоге представлен широкий выбор вентиляторов с техническим описанием, фотографиями и хорошими ценами."
}
}
$LoadData["IPROPERTY_TEMPLATES"] = Array(
"SECTION_META_TITLE" => $value[1],
"SECTION_META_DESCRIPTION" => $value[2],
);
Answer the question
In order to leave comments, you need to log in
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question