[COLOR=#363636]Ребят, подскажите...у меня есть фильтр на странице, который фильтрует по трём параметрам из одного инфоблока и по одному(по сезону) из другого.[/COLOR]
[COLOR=#00AEEF]вот код:[/COLOR]
[COLOR=#2F3192]<?if(!defined("B_PROLOG_INCLUDED";) || B_PROLOG_INCLUDED!==true)die();?>
<?
$season = $_REQUEST['season'];
foreach($arResult['ITEMS'] as $items){
if(!empty($season))
{
$arFilter = array(
'IBLOCK_ID'=>$items['PROPERTIES']['model']['LINK_IBLOCK_ID'],
'B_IBLOCK_ID'=>'4',
'ID'=>$items['PROPERTIES']['model']['VALUE'],
'ACTIVE'=>'Y',
array(
"LOGIC" => "OR",
array("PROPERTY_model_season" => $season),
array("PROPERTY_model_season" => $season)
)
);
}
else
{
$arFilter = array('IBLOCK_ID'=>$items['PROPERTIES']['model']['LINK_IBLOCK_ID'], 'ID'=>$items['PROPERTIES']['model']['VALUE'], 'ACTIVE'=>'Y');
}
$rsElement = CIBlockElement::GetList(
array(),
array($arFilter),
false,
false,
array('ID', 'IBLOCK_ID', 'NAME', 'PREVIEW_PICTURE', 'PROPERTY_*','model_season')
);
if ($obElement = $rsElement->GetNextElement()) {
$arFields = $obElement->GetFields();
$items['PREVIEW_PICTURE'] = CFile::GetFileArray($arFields['PREVIEW_PICTURE']);
$items['PROPERTIES'] = array_merge($items['PROPERTIES'], $obElement->GetProperties());
}
if(($items['PROPERTIES']['model_season']['VALUE_ENUM_ID']==$season)||($season==''))
{
$index_tmp = count($arTempResult); // сколько строк; 0 если первый
if($index_tmp!=0){
if(count($arTempResult[($index_tmp-1)])==$arParams['LINE_ELEMENT_COUNT']){
$arTempResult[$index_tmp][] = $items;
}else{
$arTempResult[$index_tmp-1][] = $items;
}
}else{
$arTempResult[0][0] = $items;
}
}
}
$arResult['ITEMS'] = $arTempResult;
?>
[/COLOR]
в чём тут проблема...если я фильтрую по сезону, то фильтр отбирает не из всего товара, а из товара который отображается на странице...т.е. отображаю я 30 товаров из тридцати 8 летний сезон, он взял и отобразил только 8 в следствии чего пагинация работает неправильно, вёрстка лезит...мне надо чтобы не 8 было а 30....как исправить?