Клиентом была поставлена задача: при обмене с 1С товары помеченные на удаление в 1С должны деактивироваться на сайте, тоже самое должно происходить с характеристиками (в Битриксе они становятся торговыми предложениями). Решение: стандартный (от Битрикса) класс CIBlockCMLImport (лежит здесь:Bitrix/modules/iblock/classes/general/cml2.php) выносим в свой файл задаем собственное имя и в функцию ImportElement дописываем код:
Иногда бывает нужно вывести меню не по всему инфоблоку, а только по одному из разделов. Кастомизированный компонент menu.section имеет дополнительный параметр "Корневой раздел меню (ID):" в который нужно ввести ID раздела.
Функция array_multisort первый массив (сортирующий) - фактически маска для сортировки второго (основного) массива. Задаем его элементы так, чтобы их порядок после сортировки давал нужный нам порядок основного массива. Сортирующий массив будет отсортирован SORT_ASC (по умолчанию, если не указано иного), а элементы основного массива будут отсортированы в соответствии с элементами сортирующего массива. Например
Умный фильтр Битрикса не поддерживает фильтрацию по складам (потому как работает только со свойствами элементов). Следовательно, чтобы добавить в возможность фильтровать товар по наличию на складах, нужно добавить соответствующие свойства в карточку элемента. Для этого напишем обработчик в init.php, который при изменении количества товара на складе будет проставлять нужные свойства в карточку элемента.
Не единожды поступала задача вывести фильтр с многоуровневой структурой. Здесь будет показана одна реализация на основе свойств инфоблока. Вторая реализация выглядит как фильтр, на самом деле является выводом catalog.section.list, закомуфлированным под фильтр и подающим в ajax данные для фильтрации catalog.section либо по свойствам, либо по разделам. Эта реализация основана на интуитивно понятной структуре разделов инфоблока и является ее отображенинм. Она накладывает определенные ограничения на структуру разделов и выводит только два уровня. На момент написания реализацию можно посмотреть здесь: http://locationhunters.ru/catalog/
Умный фильтр обладает бОльшими возможностями и выглядит для заказчика более предпочтительным, чем выше описанный пример. Естественно, что все зависит от конкретной задачи в рамках которой разработчик делает свой выбор. Для описаной здесь реализации использован следующий подход: многоуровневость заложена в
1. Скопировать стандартный шаблон компонента bitrix.system.auth.registration в папку шаблона сайта 2. В этом шаблоне разместить примерно следующий код: