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