Внимание!В данной статье рассматривается работа с кодом. Перед тем как что-то делать, сделайте полный бекап сайта, по ходу работы не забывайте делать бекап файлов которые правите.
AddEventHandler("solverweb.sitemap", "OnAfterSectionParse", "OnAfterSectionParse");
function OnAfterSectionParse(&$section, &$arSections, $arSection) {
if ($arSection['IBLOCK_ID'] == 15) {
$arTags = [];
// $tagPath = $arSection["SECTION_PAGE_URL"];
$rsProducts = CIBlockElement::GetList(
[],
[
"IBLOCK_ID" => $arSection["IBLOCK_ID"],
"=SECTION_ID" => $arSection["ID"],
"!TAGS" => false,
"ACTIVE_DATE" => "Y",
"ACTIVE" => "Y",
"CATALOG_AVAILABLE" => "Y",
"INCLUDE_SUBSECTIONS" => "Y"
],
false,
false,
["ID", "TAGS", "IBLOCK_SECTION_ID"]
);
while($arProduct = $rsProducts->GetNext()){
if(!empty($arProduct["TAGS"]))
$arTags = array_merge($arTags, explode(",", $arProduct["TAGS"]));
}
$arTags = array_unique($arTags);
if (!empty($arTags));
foreach($arTags as $inx => $tagName)
$arSections[$arSection['ID']][] = [
// 'url' => $tagPath."tag/".$tagCode."/",
'url' => $section['url']."tag/".Cutil::translit($tagName, LANGUAGE_ID, array("change_case" => "L", "replace_space" => "-", "replace_other" => "-"))."/",
'mod' => $section['mod'],
'freq' => $section['freq'],
'prior' => $section['prior']
];
// \Bitrix\Main\Diag\Debug::writeToFile(array('tagName'=>$tagName));
}
}