====== Проект kaminrb.ru ======
===== Январь, 2016 =====
**Январь, 2016 г.**
Завершен.
==== Цели проекта ====
* Интеграция нового дизайна.
* Разработка поиска и фильтрации по каталогу.
* Разработка фильтрации по новостям.
* Сохранение уведомлений в системе.
==== Особенности ====
Bitrix, HTML, CSS, JavaScript, PHP, AJAX
==== Описание ====
{{ :projects:project_kaminrb.ru.png?300|Проект kaminrb.ru}}
Хоть проект и не с нуля, но все же почти.
Первичный анализ показал, что предыдущий разработчик очень странно отнесся к идеологии битрикса. Где можно было использовать стандартные компоненты - писались свои, где нужно было использовать включаемые области они не использовались, зато были воткнуты в контент статичных страниц.
Создавая новый шаблон я переопределил часть включаемых областей, тех что по делу, а прочие выбросил. Жаль не могу удалить старые файлы - как не крути, а нужно сохранить возможность включения старого шаблона.
Для поиска и фильтрации по каталогу пришлось немного переработать инфоблок товаров. для более простой настройки фильтров я добавил соответствующий инфоблок, в котором можно настроить все необходимы фильтры, в том числе и диапазонные.
А вот с фильтрами по новостям я, надо признать, на мудрил, хотя и упростил себе жизнь. Я расширил инфоблок новостей двумя свойствами - год и месяц. Эти поля заполняются автоматически при создании или редактировании новости. При передачи фильтров, я формирую массив фильтрации по свойствам и готово. Наследующий день, я натолкнулся на стандартный компонент news.calendar. Он умеет выводить календарь и формировать фильтр для news.list. Я посмотрел как этот компонент формирует фильтры и, в принципе, можно было бы заморочиться и написать формирование фильтра без участия моих свойств.
Но венцом оказалась система отправки уведомлений. Для того, чтобы отправить уведомление администратору о заказе звона или о новом отзыве, был написан отдельный модуль и компонент к нему. Ай, молодца! Весь этот модуль я заменил на шесть строк кода - три получение данных из формы и по одной на проверку данных, отправку уведомления, возврат результата. Все. Дополнительно, по просьбе заказчика, настроил сохранение уведомления в ПА.