Информационные агентства и новостные сайты частенько выводят в теле основной статьи блок рекомендуемых статей. Обыкновенно они отбираются по тегам статьи или по ключевыс словам. Как реализовать вывод такого блока на «Битрикс»?
1. Фильтр выбора статей arLooksLike
$CurentElement=intval($_GET["ID"]); // берем ID текущей статьи из адресной строки
$res = CIBlockElement::GetByID($CurentElement);
if($ar_res = $res->GetNext())
$arCurentElement=$ar_res;
// Из названия и поисковых тегов формируем строку, по словам которой будем искать все похожие записи:
$tmpName=str_replace(
array(".", ",","?","!","-"),
"",
trim($arCurentElement["NAME"]." ".$arCurentElement["TAGS"])
);
if(strlen($tmpName)>0){
$arLooksLike = array(
"INCLUDE_SUBSECTIONS" => "Y",
"!ID"=>intval($CurentElement) /*исключаем данный элемент из выборки*/
);
$NameItems=explode(" ",$tmpName);
$itemsArray=array();
foreach($NameItems as $item){
if(strlen($item)>1){
$itemsArray[]=array("NAME" => "%".$item."%"); // ищем элементы, у которых выбранное свойство есть в названии
$itemsArray[]=array("TAGS" => "%".$item."%"); // ищем элементы, у которых выбранное свойство есть в поисковых тегах
}
}
$tmpArray=array("LOGIC" => "OR"); // подключаем логику "ИЛИ"
$tmpArray=array_merge($tmpArray,$itemsArray);
$addFArray=array(
array($tmpArray),
);
$GLOBALS["arLooksLike"]=array_merge($arLooksLike,$addFArray);
}
2. Подключаем вывод фильтра
В компоненте news.list подключаем фильтр arLooksLike строкой
"FILTER_NAME" => "arLooksLike",
Готово!
Назад в раздел