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