AboutAirportParking.com - Drupal превращает деловую возможность в Действительность

аватар: andyceo

AboutAirportParking.com - главная страницаПосле двух лет существования AboutAirportParking.com получил полный Drupal-ремонт. Мы переехали со старой инсталляции Flexinode на Drupal 4.7, который был сделан стажёром чуть более чем за месяц, в 2006 году, к самостоятельно темизированной инсталляции Drupal 5, перезапущенной в июне 2008 и существующей до настоящего момента. Как представлено в обзоре стартапа на Mashable.com "About Airport Parking.com помогает Вам найти лучшее место для парковки в аэропорту, с ценами, картами, пользовательскими обзорами и прочим."

AboutAirportparking.com был перезапущен с системой полного бронирования парковки, дополненной комментирующими обзорами, доступом к управляемому редактированию, страницами аэропорта и парковки с возможностью поиска, интеграцией карт от Google, расписанием рейсов, обновляющемся в режиме реального времени, и с подтверждением бронирования через электронную почту и факс. С заказной темой, он также не очень напоминает Drupal.

Drupal действительно хорошо развился как оболочка разработки, с его FormAPI и замечательной модульной платформой. У нас была возможность создать систему бронирования, дополненную особыми датами (blackout dates, т.е. в периоды праздников, фестивалей, сезонных пиков, и других подобных мероприятий или событий, гостиницы/авиарейсы не обязаны обслуживать по установленным тарифам), ограничением бронирования, многочисленными типами бронирования и интеграцией Authorize.net (позаимствовав некоторый код из модуля eCommerce). Посредством замечательного FormAPI, позволяющего изменять формы, мы упростили регистрационный процесс в ходе проверки, и создали собственный поиск, чтобы помочь нашим пользователям в нахождении лучшей возможной брони. Проверьте нашу Питсбургскую парковку, как хороший пример, иллюстрирующий всё вышеизложенное.

Трудный выбор

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

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

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

Основные моменты: API

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

AboutAirportParking.com - профиль пользователя

Используя mail_alter API, мы были в состоянии задать стандартную шапку и подвал всем исходящим сообщениям электронной почты. Используя хук Cron, мы отсылаем ночную электронную почту о дневной броне владельцам участков, а также выполняем очистку и обрабатываем некоторую биллинговую информацию.

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

Наши разработчики широко использовали автозаполнение, встроенное в FormAPI, чтобы создать отчеты с автозаполняемыми полями для бронированных номеров или листинги имён/ фамилий.

Последняя изюминка - использование подтверждающей формы. Превосходная небольшая вспомогательная часть FormAPI, которую мы использовали, чтобы удостовериться, что люди действительно хотят изменить или отменить свою броню. В соответствии с функцией темы или файлом шаблона, мы добавляли информацию, касающуюся резервирования брони, прежде, чем они делали обновление. Действительно, Вы должны использовать это. Не отменяйте или не удаляйте материал с Вашего сайта без подтверждения пользователя.

Основные моменты: модули

Да, у всего типичного должны были быть модули, которые мы использовали для того, чтобы создать этот сайт, такие, как Views, CCK, Pathauto, Gmap для карт аэропортов и парковочных мест, TinyMCE для визуального редактирования, XMLSitemap, Global Redirect и Meta Tags для помощи в SEO, Coder и Devel во время разработки. Я также хотел осветить несколько других модулей.

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

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

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

Что дальше?

Есть много возможностей для того, чтобы продолжать по-максимуму использовать Drupal, поскольку AboutAirportParking.com расширяется. Впереди - окончательная интеграция модуля MailHandler, чтобы получать и принимать комментарии от пользователей, которые использовали систему бронирования.

Мы также смотрим в сторону разработки партнёрской системы, чтобы позволить партнёрам использовать нашу систему бронирования, таким образом модуль Services выглядит убедительно, или же мы можем просто использовать XMLRPC, включённый в ядро Drupal.

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

Заключение

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

Источник: AboutAirportParking.com - Drupal turns a business opportunity into Reality

Комментарии

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • You can use the <go> tags just like the <a> for nicer urls.
  • Доступны HTML теги: <a> <img> <noindex> <br> <em> <i> <strong> <b> <strike> <s> <u> <sup> <sub> <h1> <h2> <h3> <h4> <h5> <h6> <cite> <blockquote> <abbr> <code> <ul> <ol> <li> <dl> <dt> <dd> <p> <div> <span> <hr>
  • Строки и параграфы переносятся автоматически.
  • You can enable syntax highlighting of source code with the following tags: <blockcode>. The supported tag styles are: <foo>, [foo]. PHP source code can also be enclosed in <?php ... ?> or <% ... %>.

Подробнее о форматировании

CAPTCHA
Введите, пожалуйста, код, который Вы видите на картинке. Показ изображений в браузере должен быть включен.
CAPTCHA на основе изображений
Введите символы, которые показаны на картинке.
Добавьте страницу в закладки. Перейти к верху страницы
RSS-материал