Работа со списком элементов

Иногда нужно сделать не типовое решение.
Мы не исключение и нам часто приходится решать не стандартные задачи, которые мы стараемся реализовать не только эффективно, но и элегантно.
Одна из недавних задач звучала следующим образом: "на странице элемента, показать все элементы, кроме текущего".
Эта задача относилась к проекту на системе управления контентом "1С-Битрикс".
Теперь расскажем вам о самом решении.
Предположим что нужные инфоблоки уже созданы, добавлен и настроен комплексный компонент bitrix:news.
Теперь нужно добавить вызов компонента, который отвечает для вывод списка элементов, bitrix:news.list в файле с выводом детального элемента detail.php.
Таким легким движением добавили вывод список элементов, рядом с детальной информацией. Высока вероятность, что в списке вы встретите упоминание текущего элемента. Мы решили, что это не правильно и решили устранить это.
Благо, решается это достаточно просто - при помощи использования фильтров - стандартных элементов системы 1С-Битрикс.
Для этого перед кодом вызова компонента нужно вставить следующий код:
$GLOBALS['arProj'] = array('!ID'=>$ElementID);
А в массив вызова компонента bitrix:news.list добавить строку:
"FILTER_NAME" => "arProj"
Пример подключения компонента вы можете увидеть ниже на изображении:
И все! Эта задача выполнена.
Область применения такого решения очень широка.
Например:
- У вас есть портфолио работ и каждой отдельной работе вы решили посвятить отдельную страницу. Вы хотите, чтобы пользователи видели сразу же и ваши другие работы?
- У вас есть лента новостей. Даже на странице новости, вы хотите показывать список новостей?
Обратите внимание!
Визуальный редактор 1С-Битрикс вырезает строку"FILTER_NAME" => "arProj", поэтому если вы изменили настройки компонента через визуальный редактор то, скорее всего, вам потребуется заново вставить эту строку в код вызова компонента на странице.
О вкусном напоследок...
Очень интересный момент, о том как получить идентификатор текущего элемента из вызова компонента, скоро напишет Павел, один из наших разработчиков.