Выбрать курс
13  /  17

Добавление страниц тегирования в решении Digital Web Delux

Внимание!В данной статье рассматривается работа с кодом. Перед тем как что-то делать, сделайте полный бекап сайта, по ходу работы не забывайте делать бекап файлов которые правите.

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));
	}
}