[QUOTE]Алкесей Мамонтов написал:
Вкратце:
В компоненте с помощью
[CODE] $res = CIBlockElement::GetList(array(), $arFilter, false, array("nPageSize" => $arParams["ITEMS_PER_PAGE"]), $arSelect);
[/CODE]
получаю список элементов инфоблока и передаю их в шаблон, где вывожу с пагинацией:
[CODE] $res->NavStart();
while ($ob = $res->GetNextElement()) {
$item = $ob->GetFields();
echo $item["ID"];
echo $item["NAME"];
echo $item["ACTIVE"];
}
echo $res->NavPrint("Товары");
[/CODE]
Вопрос - правильная ли это реализация? Знаю, что в шаблоне делать запросы к БД - не лучшая практика, поэтому хотелось бы узнать - в данной ситуации метод
[CODE] $ob->GetFields();
[/CODE]
совершает запрос к БД или оперирует уже имеющимся объектом типа CIBElement?[/QUOTE]
Почему бы вам в компоненте не сформировать $arResult['ITEMS'] как в стандартных компонентах? Зачем тянуть в шаблон объект?
В шаблоне не только запросы к БД не нужно делать, а вообще любую логику. Только вывод элементов
Вкратце:
В компоненте с помощью
[CODE] $res = CIBlockElement::GetList(array(), $arFilter, false, array("nPageSize" => $arParams["ITEMS_PER_PAGE"]), $arSelect);
[/CODE]
получаю список элементов инфоблока и передаю их в шаблон, где вывожу с пагинацией:
[CODE] $res->NavStart();
while ($ob = $res->GetNextElement()) {
$item = $ob->GetFields();
echo $item["ID"];
echo $item["NAME"];
echo $item["ACTIVE"];
}
echo $res->NavPrint("Товары");
[/CODE]
Вопрос - правильная ли это реализация? Знаю, что в шаблоне делать запросы к БД - не лучшая практика, поэтому хотелось бы узнать - в данной ситуации метод
[CODE] $ob->GetFields();
[/CODE]
совершает запрос к БД или оперирует уже имеющимся объектом типа CIBElement?[/QUOTE]
Почему бы вам в компоненте не сформировать $arResult['ITEMS'] как в стандартных компонентах? Зачем тянуть в шаблон объект?
В шаблоне не только запросы к БД не нужно делать, а вообще любую логику. Только вывод элементов