Битрикс GetList — как получить самые просматриваемые элементы инфоблока?

Задача: Вывести из инфоблока пять самых просматриваемых новостей.

Согласно документации CIBlockElement::GetList позволяет делать выборку и сортировать по свойству SHOW_COUNTER, в котором содержаться данные о количестве просмотров элементов инфоблока.

1. Не могу сообразить, как прописать запрос на выборку данных, где количество в SHOW_COUNTER больше всего?
2. Будит ли оптимальным получить CIBlockElement::GetList - с сортировкой по значениям SHOW_COUNTER и ограничить лимит "nTopCount" => 5?
3. Есть ли более рациональные варианты решения указанной задачи?
  • Вопрос задан
  • 1612 просмотров
Решения вопроса 1
@voland700 Автор вопроса
Вопрос решен. Возможно решение пригодится кому-нибудь, опишу решение.
С помощью CIBlockElement::GetList - получаем список элементов инфоблока, сортируем по убыванию по полю SHOW_COUNTER - в котором содержаться данные о количестве просмотров, и ограничиваем лимит 5 элементами.

if(CModule::IncludeModule('iblock'))
{
	$res = CIBlockElement::GetList(
		array("SHOW_COUNTER"=>"DESC"), // сортировка по количеству просмотров;
		array("IBLOCK_ID"=>1," ACTIVE"=>"Y"), //Получаем  активные элементы , в данном случае из инфоблока с ID = 1;
		false, 
		array("nTopCount"=>5), //ограничиваем количество элементов - только 5.
		array("NAME","PREVIEW_PICTURE", "DETAIL_PAGE_URL")// Выбираем только указанные поля
	); 
	while($ar = $res->GetNext())
	{
		$arTheBest[]=$ar;	//массив с данными 5 самых просматриваемых элементов инфоблока				
	}
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы