Вы здесь

AboutAirportParking.com

Версия системы: 
Друпал 6
AboutAirportParking.com

После двух лет работы сайта About Airport Parking, мы полностью перестроили существующий сайт. Мы перешли со старой версии 4.7, использовавшей организацию сайта на основе Flexinode, которая использовалась с 2006 года на Друпал 5 и его систему работы с документами. Новая версия сайта была запущена в июне 2008 года и рассмотрена на сайте mashacle.com в статье About Airport Parking.com helps you find the best place to park at the airport with prices, maps, user reviews and more.

Новая версия AboutAirportParking.com запущена с системой предварительных заказов, дополненной возможностью добавления комментариев, редактированием данных с распределением прав доступа, возможностью поиска аэропорта, интеграцией с картами Google, обновлением информацией о полётах в реальном времени, системой подтверждения заказов по почте и факсу. А с изменённой темой, этот сайт больше не выглядит как Друпал.

Друпал действительно был удобен нам в качестве платформы разработки с его Form API и модульной системой. Мы создали систему заказов с различными уровнями сложности и интеграцией с Autorize.net (часть кода взята из модуля e-Commerce). С использованием мощного Form API, мы обновили процесс регистрации и сделали его более надёжным. Разработанная система поиска позволила нашим пользователям находить более привлекательные предложения. Посмотрите Pittsburgh Parking, чтобы увидеть пример проделанной работы.

Реализация

Для улучшения быстродействия сайта мы создали дополнительные типы документов программно, вместо использования модуля CCK. Это позволило нам создать много взаимозависимых функций между документами аэропортов и документами гостиниц без зависимости от взаимодействия полей модуля. Таблицы базы данных были сделаны немного проще, чем если бы ими управлял CCK. Также, сделать оформление дополнительных типов документов было проще без использования CCK.

Эти слова могут побудить многих опытных разработчиков отойти от использования CCK в пользу программирования типов документов. Управление вставками, обновлениями, версиями и удалением документов через свой модуль потребуют серьёзной разработки, но так как наши разработчики имели опыт управления типами документов, Node API, то у нас не заняло это много времени. Также, после того как была создана инфраструктура, добавление новых полей стало не более сложным, чем создание новой колонки в базе данных, а для обновления формы в документах стало достаточно написать несколько строк зная Form API. Правда наш генеральный менеджер не может добавить поле через веб-интерфейс как он мог сделать раньше в CCK, но это и к лучшему, так как мы, разработчики, никогда не доверяем им, так как, они, всё равно всегда всё сделают не так как надо.

Любой дополнительный тип документов тем не менее может быть расширен с использованием модуля CCK, что мы и собираемся сделать в ближайшее время добавив поддержку фотографий для гостиниц, сделав это при помощи модулей ImageField и ImageCache.

API

Не вдаваясь в подробности и не перечисляя каждый хук, который мы использовали, вот некоторые вещи, которые могли бы заинтересовать разработчиков.

AboutAirportParking.com

Используя drupal_mail(), мы смогли вставлять верхнюю и нижнюю колонки сайта во все исходящие письма. Используя hook_cron(), мы делаем рассылку писем нашим пользователям.

Используя hook_profile_alter() мы смогли показать различные страницы профиля обычным пользователям, которые видят всю сохранённую информацию, а владельцы лотов видят утилиты и отчёты для управления своими лотами.

Используя функции оформления мы создали панель управления для пользователей, которая позволяет владельцам лотов редактировать свою информацию. Наши разработчики широко использовали возможности autocomplite callback доступные в Form API для создания отчётов с полями с автозавершением, для сохранения цифр или первых имён в списках.

Последнее о чём мы хотим упомянуть, это confirm_form(). Небольшая вспомогательная форма/API, которую мы использует для того, чтобы удостовериться в том, что пользователь действительно хочет изменить или удалить информацию. До получения подтверждения от пользователя информация не обновляется и не удаляется. Мы рекомендуем всем использовать такой подход и не удалять материалы без подтверждения со стороны пользователя.

Модули

Мы использовали те же самые модули, которые используются на большинстве сайтов: Views, CCK, GMap для карт аэропортов, TinyMCE для текстового редактора, XML Sitemap, Global Redirect и Meta tags для поисковой оптимизации, Coder и Devel в процессе разработки. Кроме этих общеупотребительных модулей, нам хочется обратить внимание и на несколько других.

Так как сайт содержит огромное количество документов, которое не под силу обработать маленькой команде сайта, мы решили дать возможность редактировать определённые документы группам пользователей. Для этого мы использовали модуль Nodeaccess. Это отличный модуль для управления правами доступа к документам групп пользователей.

Так как комментирование документов доступно всем посетителям, то перед нами встала задача борьбы со спамом. К счастью, есть модуль Mollom, который успешно решил поставленные перед ним задачи.

Модуль Page Title — это маленький модуль, который позволяет редактировать текст, который будет показываться в заголовке браузера вместо заголовка документа. Модуль Remember me позволил нам улучшить работу с входом пользователей в свои аккаунты, а модуль MimeMail позволил сохранить много времени, которое мы в ином случае провели бы за кодированием. Мы нуждались в возможности прикрепления PDF-файлов к письмам для работы нашей системы связанной с факсами и этот модуль был отличным решением этого вопроса.

Развитие

Есть много интересных идей по развитию сайта AboutAirportParking.com на Друпале, так как сайт постоянно расширяется. В наших ближайших планах установить на сайте модуль Mailhandler, который позволит обрабатывать комментарии пользователей пользующихся нашей системой резервирования.

Мы также рассматриваем вопрос открытия отделений для нашей системы резервирования, для которой подошёл бы модуль Services или просто работа со стандартными функциями XML-RPC ядра.

Заключение

Конечно, AboutAirportParking.com это не тот сайт, который изменил мир, но это удачный пример того, как Друпал позволяет быстро и эффективно реализовать определённую идею.