2019-10-01 12:44:00
809

При разработке сайта, потребовалось осуществить сортировку по множественному свойству. Это свойство должно содержать в себе определенные даты, которые происходят периодически в течении, ну.. например, в течении месяца. При этом сортировка должна осуществляться по самой ближайшей дате.

Проблема заключается в том, что при наличии нескольких дат в свойстве, БИТРИКС производит «клонирование» записей, это может быть интересно в каких-то проектах, что происходит такая сортировка элементов и количество клонов равно количеству записей в свойстве, но только не данном случае.

Требуется именно одна единственная запись с ближайшим временем к текущей дате.

На данный момент простым и быстрым решением послужила запись в шаблоне ID элементов в массив после вывода, потом проверять что уже запись с ID в массиве у нас уже есть и ничего не выводить, это позволит показывать пользователю только уникальные элементы. Конструкция достаточно проста, но работает эффективно в рамках текущего проекта, где не нужно постраничная навигация.

Код PHP #1


<?if(!in_array($arItem['ID'], $elementArray):?>

Тут вывод элементов

<?$elementArray [] = $arItem['ID']; // здесь добавляем ID в массив?>

<?endif;?>


 

Дело в том при постраничной навигации будут учитываться все элементы, которые, выводятся и не выводятся. Пока к сожалению детально не коснулся этого момента в сортировке по множественному свойству, но думаю я затрону этот момент в одной из статей всем хорошего дня. Будут идеи или предложения, рассматриваю любую критику в любом формате)

Комментарии (46)