Сайт посуточной аренды и модуль Realty Manager
Рассмотрю сегодня еще один проект по TYPO3, который делал когда-то. Времени прошло уже больше года, возможно, кое-что из функциональности (модулей) изменилось, но в целом получился достаточно интересный нишевый сайт. Почему нишевый? — просто тематика сайте связана с «объектами недвижимости» — то есть, основным функционалом должен быть список квартир, их бронирование и организация поиска по ним. Все остальные «моменты» как то статьи, новости, информация о трансфере, предоплатах, условиях и т.п. — просто текстовые страницы, которые реализовываются за счет базовых возможностей TYPO3.
Дизайн проекта достаточно стандартный, никаких особенных элементов не было. Сайт имеет 3 колонки — слева и справа информационные блоки с меню, по центру — основной контент. Учитывая, что все инфоблоки одинаковые по структуре (заголовок, контент) реализовал их через форматированные элементы FCE. Таким же образом сделал отображение лучших квартир на текущий день, где поле ссылка указывает на конкретный объект недвижимости. Выбранный модуль недвижимости, увы, не предоставляет возможности выводить подобную информацию через него.
Новости и статьи. Часть текстов на сайте представлены в виде обычных страниц, чуть больше наполнения реализовано через tt_news. Во-первых, требовалось разбиение на категории, во-вторых, на главной отображаются последние добавленные статьи, в-третьих, кроме статей должны быть еще и новости. Поэтому выбор для typo3 экстеншена очевиден, стабильнее tt_news вряд ли я бы что-то нашел, да и смысла искать не было — он идеально подходит.
Объекты недвижимости. Теперь переходим к самому основному функционалу сайта — объектам недвижимости. Для реализации этого функционала использовался модуль Realty Manager (realty). Сейчас в репозитории последняя версия 0.5.1, — жаль, но с 13.08.2010 плагин не обновлялся. Тем не менее, его возможностей, в принципе, достаточно.
С помощью модуля вы можете создавать и управлять объектами недвижимости, для каждого из которых задавать разные поля — заголовок, краткое описание, подробная информация (отображаемая на отдельной странице). Для объектов можно определять город или район, в моем случае я сделал привязку к станциям киевского метро, что требовалось по ТЗ. Также есть возможность указать цену и определить класс квартиры вместе со многими другими параметрами. Если вы хорошо разбираетесь в PHP программировании и структуре TYPO3 модулей, то сможете сделать из таких базовых опций что угодно. Еще больший отдельный респект разработчику плагина за добавление фотографий по каждому объекту и привязка его к местоположению на карте через указание координат.
Оформление заказа производится с помощью экстеншена Powermail (powermail), которому под силу создание форм любой сложности. Так и здесь с легкостью добавил к стандартным полям даты заселения, защиту от спама и т.п. Замечу, что вообще возможности Powermail очень широкие, не зря его советуют применять во многих других случаях совместно с разными модулями. Разберетесь разок с экстеншеном и дальше любые формы для вас не будут вызывать сложности в реализации.
Поиск по недвижимости. Вообще для плагина Realty Manager есть дополнительный экстеншен под названием realty__search, который реализует поиск. При этом там какой-то весьма эксцентричный и экстравагантный функционал, который сложно вписать в обычный дизайн сайта. Поэтому было принято решение использовать стандартные возможности самого плагина и отображать в боковой панели базовую (родную) форму поиска объектов недвижимости. В принципе, этого хватило, возможно там пришлось еще пошаманить в шаблонах (templates), точно не помню — разберетесь уже сами, если что.
Кстати, если для вас важна SEO составляющая процесса создания сайта (а без этого сейчас никуда), то замечу, что в экстеншене Realty Manager (realty) нет отдельных полей для МЕТА тегов или title. Вы можете применить свои знания в программировании и дописать сам модуль, а можете попробовать использовать плагин SEO dynamic tag (seo_dynamic_tag) — весьма полезная штука в таких случаях. Этот экстеншен позволяет формировать МЕТА теги для страницы выбирая значения из базы данных. Настройка через Typoscript.