@Wocsom
новичёк

Как сделать настройку фильтрации массива списка на странице?

Прикладываю исходник
https://cloud.mail.ru/public/FKHa/So2UeNPsa
Проблема в следующем, на странице формируется списки магнитных карт. К сожалению отображаются магнитные карты только за сегодняшнее число. В не зависимости установки даты вручную. Однако в этом месте филтьра если убрать $arFilter, то карты за предыдущие даты появится, хоть и не в полном составе.
$res = CIBlockElement::GetList(Array("PROPERTY_P_FIO"=>"ASC"), $arFilter, false, false, $arSelect);

Просьба помочь с решением, поскольку не являюсь разработчикам и даже джуниором...
  • Вопрос задан
  • 178 просмотров
Решения вопроса 1
@Wocsom Автор вопроса
новичёк
Решение оказалось банальным. Потребовалось убрать несколько строк и подкорректировать странницу, для нормального вида.
Добавилось:
$res = CIBlockElement::GetList(Array("DATE_ACTIVE_FROM"=>"DESC"), $arFilter, false, false, $arSelect);
		$res->NavStart(10); 
		$res->bShowAll = true;
		$res->GetPageNavString('Привет!');
echo $res->GetPageNavStringEx($navComponentObject, 'Заголовок', '', 'Y');

Убрал:
if(!empty($_REQUEST['date_from'])){
                if (new DateTime($_REQUEST['date_from'] . ' 23:59') < new DateTime($r['DATE_ACTIVE_FROM']))
                    continue;
                if (new DateTime($_REQUEST['date_from'] . ' 00:00') > new DateTime($r['DATE_ACTIVE_TO']))
                    continue;
            }else {
                if (new DateTime(date('d.m.Y') . ' 23:59') < new DateTime($r['DATE_ACTIVE_FROM']))
                    continue;
                if (new DateTime(date('d.m.Y') . ' 00:00') > new DateTime($r['DATE_ACTIVE_TO']))
                    continue;
            }

if(empty($r['PROPERTY_P_DATE_VALUE']) || $DB->CompareDates($r['PROPERTY_P_DATE_VALUE'], ConvertTimeStamp() . '00:00') >=0 ) {}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
rpsv
@rpsv
делай либо хорошо, либо никак
Указать нужно в arFilter нужное условие. Например:
$arFilter['>=ACTIVE_FROM'] = date(\DATE_ATOM);
Ответ написан
babarun
@babarun Куратор тега 1С-Битрикс
Безумный план моих идей в руках больных людей
Добавьте код
echo '<pre>';
print_r($arFilter);
echo '</pre>';

перед вашим
$res = CIBlockElement::GetList(Array("PROPERTY_P_FIO"=>"ASC"), $arFilter, false, false, $arSelect);


И увидим условия выборки
Ответ написан
Ваш ответ на вопрос

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

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