Вы здесь

The Pulitzer Prizes

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

Пулитцеровская премия присуждается ежегодно, начиная с 1917 года. Эта премия считается самой почётной в области журналистики, литературы и музыки в США. Студия Openflows Community Technology Lab недавно закончила разработку нашего нового сайта. Теперь он сделан с использованием Drupal, Linux, Apache и MySQL.

The Pulitzer Prizes

Первый сайт был построен в 1993 году. Двумя годами позже он был перемещён на собственный домен и обновлён для использования с системой использовавшей скрипты на Perl и базу данных Sybase. Это решение было ведущим в области создания сайтов на тот момент, оно обеспечивало в некоторых случаях поддержку метаданных и содержало большое количество архивных статей в виде HTML-файлов. С развитием технологий, мы постепенно ушли от хранения статей в HTML-формате.

Система Друпал, на которой была недавно запущена новая версия сайта, очень хорошо подходит для хранения статей и их вывода пользователям, управление сайтом на её основе удобно и интуитивно понятно как редакторам, так и пользователям. В Друпале удобная система шаблонов, которая не вызывает затруднений при выводе информации, а накопленную информацию мы быстро перенесли в новую базу данных.

Архитектура сайта

Мы решили положить в основу сайта модули Views и CCK, что означало использование Друпала 5, несмотря на значительное обновление возможностей, которые были доступны в Друпале 6, но которые ещё не были окончательно доработаны в то время, когда мы начинали разработку сайта.

The Pulitzer Prizes

Содержание состоит из восемнадцати различных типов документов, которые содержат в общей сложности 40 дополнительных полей и используют шесть словарей. Содержание сайта в основном выводится двадцатью двумя видами.

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

С тех пор, как модуль Panels перестал обеспечивать нас достаточной гибкостью, мы самостоятельно создали некоторые сложные страницы на которых выводится до шести видов с помощью PHP-кода, обрабатываются аргументы видов. Это можно увидеть на обзорных страницах за каждый год, как показано на диаграмме.

Мы также использовали фильтрацию в видах, которая основана на терминах таксономии в словарях с мультивыбором. Использование этой техники потребовало использования custom argument handling code blocks. Не удивительно, что каждый вид имеет свой собственный шаблон; после документов с PHP-кодом и кода управления аргументами это была самая сложная задача.

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

Как и на большинстве сайтов на Друпале, мы воспользовались большим количеством дополнительных модулей. В частности, мы хотели бы выразить благодарность сообществу за следующие модули:

  • FlashVideo — загрузка и преобразование видеофайлов
  • ImageCache — создание и управление правилами обработки изображений
  • Javascript Tools — набор яваскрипт-утилит
  • jQuery Update — обновление jQuery
  • Lightbox2 — оформление просмотра изображений
  • Media Field — тип поля — аудио; тип поля — видео
  • Mediafield Display — вывод аудиополей и ссылок ведущих на аудиофайлы
  • Scheduler — публикация документов по расписанию
  • Taxonomy Theme — оформление страниц с определёнными терминами

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

The Pulitzer Prizes

Для вывода результатов поиска мы использовали модуль Views, специальный шаблон и так как было невозможно одновременно сортировать мультитермины словарей, мы использовали сортировку по типу документов и дате создания. Мы использовали значение поля «Дата создания» для вывода информации о дате создания документа, в противовес дате, в которую документ был добавлен на сайт. Так как наши архивы содержат документы до Unix timestamp epoch, мы использовали патч для модуля Node, чтобы использовать даты до 1 января 1970 года (этот патч добавлен в ядро Друпала 7). Эта проблема существовала в силу того, что Пулитцеровская премия основана 13 января 1901 года.

Мы также сортировали результаты поиска по нескольким другим критериям важным для премии, назначая даты поля «Дата» с каждым годом через внешний скрипт, который напрямую изменял информацию в базе данных. Есть другой, более элегантный путь управления этим, но так как использованный нами поиск создаёт серьёзную нагрузку на базу данных, мы выбрали путь лучшего быстродействия и попытались снизить нагрузку на сервер. По этой же причины, мы сделали обратное портирование patch for database.mysqli.inc из Друпала 6, для создания временных таблиц в памяти, а не на диске.

Всем спасибо

Этот проект — результат совместных усилий руководства Пулитцеровской премии (отметим управляющего сайтом Клавдию Стоун-Вейссберг и управляющего Сига Гисслера, Алана Брукса и Шерил Тайлор из Chips & Inc., которые управляли разработкой дизайна и осуществляли руководство проектом, Джима Пьетранджело из WebCampOne, который консультировал нас по вопросам CSS и помогал с неизбежными проблемами при отображении сайта в IE и Columbia University IT Department, на хостинге которых работает сайт в окружении LAMP на двух веб-серверах с распределением нагрузки и сервере выделенном для базы данных. Такая кооперация помогла нам в Openflows сконцентрироваться на разработке сайта на Drupal. Основные работы по сайту были выполнены Эриком Голдхагеном, Мэттом Корксом и Натом Мейсенбургом.