В начальном техническом задании был определен обширный набор функционала в рамках разработки компонента Estate 3. Имея значительный опыт и понимая особенности создания компонентов под CMS Joomla 3 было принято решение предварительно создать библиотеку, позволяющую автоматизировать ряд рутинных задач. Библиотека взяла на себя функции автозагрузки классов, формирования интерфейсов административной части компонента, управления базой данных (что в итоге сформировалось в ORM систему под Joomla), перекрытии множества функционала CMS, который требовал доработки. В итоге на базе созданной библиотеки разработка и изменение компонента проводились значительно быстрее обычного.
Поскольку основной задачей проекта была разработка функционала компонента, макеты были значительно упрощены и на скриншотах и тестовом сайте estate3.malevich.com.ua отражают лишь наличие той или иной информации на странице почти без какого-либо оформления.
Фильтр объектов недвижимости
При разработке компонента одной из наиболее объемных и сложных задач была задача по реализации фильтра в категориях объектов недвижимости. Ее сложность заключалась в том, что для каждой из категорий должна быть возможность выбрать произвольный набор полей для фильтрации с различными типами данных. Для реализации этой структуры в базе данных за основу был взят паттерн EAV, который был реализован на php с учетом особенностей данной задачи. Кроме этого весьма универсально и независимо были реализованы типы полей, которые можно использоваться при фильтрации объектов недвижимости в категориях. Кроме стандартных типов, которые с легкостью можно представить обычными элементами html форм, как выпадающий список, список с множественным выбором или поле ввода, можно создавать значительно более сложные поля. Например, для категории "Жилая недвижимость" в качестве такого поля используется карта метро города Москва, с рядом собственных функциональных возможностей.
Также добавлена возможность сортировки объектов по любому из доступных в данной категории полей и в любом направлении.