Добрый день, коллеги! Прошу Вас посмотреть правильность реализации, буду рад любой обратной связи.
Исходные данные: Механизм регистрации заявок реализованный в инфоблоке (за два месяца уже 98 тыс. элементов).
Одним из свойств инфоблока: "Город, регион" (Тип свойства привязка к элементам другого инфоблока "Город, регион" ~120 элементов)
Задача: Реализовать просмотр количества заявок по каждому "Городу, региону" за предыдущую неделю
Реализация: Для реализации данной задачи я использовал компонент:
bitrix:news.list, которым я вывожу на экран инфоблок "Город, регион" (~120 элементов)
В шаблоне вывода инфоблока делаю:
Функцию подсчета кол-ва элементов: | Цитата |
|---|
<? function countElement ($office, $date){ $cnt = CIBlockElement::GetList( array(), array('IBLOCK_ID' => 42, 'PROPERTY_CLIENT_LOCATION' => $office, '>=DATE_CREATE'=>$date), array(), false, array('ID','PROPERTY_CLIENT_LOCATION','DATE_CREATE') );
return $cnt; } ?> |
В переборе элементов, вызываю данную функцию: | Цитата |
|---|
<?foreach($arResult["ITEMS"] as $arItem):?> <? $index = countElement($arItem["ID"], $date); ?> [tr] [td]<? echo $arItem["NAME"]; ?>[/td] [td] <? if($index > 0): ?><?endif;?> <? if($index == 0): ?><?endif;?> [/td] [td]<? echo $index; ?>[/td] [/tr] <?endforeach;?> |
Проблема: Долгое время загрузки страницы (не удивительно)