Сообщество Друпала часто проводит встречи, однако до сих пор нет опубликованной формулы по использованию Друпала для таких встреч. Компания This By Them (T×T) работала с организаторами DrupalCon Los Angeles 2009 над разработкой сайта для этой конференции и мы хотим поделиться с сообществом веб-формулой успешного проведения конференции.
Сайт DrupalCampLA.com был разработан на Друпале 6 с использованием стандартных и дополнительных модулей, которые занимались управлением зарегистрированных мероприятий, работой со спонсорами, докладчиками, показывали биографии пользователей и выполняли другие задачи. Сайт показывает список зарегистрированных событий, в который участники конференции заносят свои доклады, а посетители добавляют те темы, о которых они хотели бы послушать (в стиле BarCamp). Расписание планируемых на день мероприятий сделано достаточно гибким для того, чтобы организаторы мероприятия могли легко управлять основным расписанием встречи.
This By Them (T×T) — это небольшая Друпал-студия расположенная в Orange County, немного южнее Лос-Анджелеса. Команда T×T принимает активное участие в жизни сообщества и отвечает за несколько дополнительных модулей, в числе которых Services, Search Ranking, Fuzzy Search и Ubercart Coupon. Желая помочь в проведении третьей ежегодной встречи друпаллеров в Лос-Анджелесе и проведении DrupalCampLA, T×T отправила письмо организаторам конференции и предложила разработать сайт конференции. Майк Стюарт, один из организаторов, скептически отнёсшийся к такому потрясающему предложению, ответил на это письмо списком желаемых возможностей, включая многие проблемы с составлением расписания, которые стояли перед организаторами и участниками этого события. Команда T×T вызов приняла! Майк, Блэйк и Джон Ромин встретились на следующей неделе, на встрече OC/PHP (организаторы встречи Orange County Drupal) и обсудили некоторые подробности предстоящей работы.
Исходные цели включали: возможность определить докладчика, организаторов и спонсоров. Плюс возможности по подробному планированию.
Важность улучшения планирования происходящих на мероприятии событий стала ясна после DrupalCampLA 2008, на котором было зарегистрировано свыше 450 посетителей. Встреча 2008 года была успешной, но планирование событий выполнялось вручную, было утомительным и требовало больших усилий. Целью 2009 года было попытаться вернуть схему использовавшуюся в 2007 году, когда расписание событий было размещено на стене холла и люди поднимали руки, чтобы сказать о том, какой доклад им интересен и они хотят его посетить. В конце, мы определяли интересную информацию, заносили её в расписание и таким вот образом позволяли участникам управлять встречей. Ниже находится список поставленных целей:
В процессе разработки любого сайта, мы в основном пытаемся придерживаться следующих действий, так как это позволяет нам общаться и визуально рассматривать возможности сайта до того, как работа будет завершена полностью. Это особенно важно в том случае, когда временные рамки или финансовая смета являются главными факторами... а когда они ими не являются?
Планирование включает сбор требований к сайту, которые определяются целями сайта, его аудиторией, управляющими и так далее. Кроме того, мы считаем, что также удобными являются некоторые исследования тех способов, которые могут решить поставленные задачи. Эти исследования включают базовую настройку сайта на Друпале с несколькими модулями и сопоставление подходов.
После основного обсуждения, мы записываем все принятые идеи. Этот список содержит описание всех страниц сайта, их основных возможностей и тех действий, которые необходимо выполнить для их реализации. Этот документ обычно проходит несколько рассмотрений и изменений, так как каждый подразумевает что-то своё, что не может быть выявлено сразу. Ниже находится пример этого документа, который мы написали для этого проекта.
Вы можете заметить, что некоторые из этих пунктов не были реализованы. Они были удалены в процессе разработки для упрощения интерфейса. Вы можете скачать полную версию этого документа.
Целью создания макета является получение карты сайта, на которой каждая страница имеет свои блоки и смысловые подписи той информации, которая будет в них находиться или описание действий, которые можно в них сделать. Вы можете скачать этот макет.
Основываясь на макете, структура обычно создаётся для первой страницы и нескольких внутренних страниц. Для этого проекта мы сделали первую страницу и одну внутреннюю страницу. Это было сделано главным образом из-за размера сайта (относительно маленький) и ограничения по времени создания (около двух с половиной недель).
Фаза создания сайта обычно завершается вместе с фазой разработки структуры. Однако, это обычно возможно только в том случае, если у вас есть макеты, которые определяют направление работы и характеристики каждой страницы.
После завершения создания сайта и его структуры, вы можете начать работу над оформлением сайта. На большинстве сайтов вы можете продолжать его строительство вместе с оформлением, но мы всё же рекомендуем разместить на своих местах как минимум все блоки. Мы считаем, что это действительно помогает ускорить разработку сайта, так как в этом случае ваше внимание будет сосредоточено только на оформлении и работе с CSS.
Сайт строился на последней доступной версии Друпала 6 и на нём используется много дополнительных модулей, включая CCK для создания документов, ImageField и ImageCache для управления изображениями, Views для вывода содержания (полный список дополнительных модулей можно найти в этом документе ниже).
Заявки на доклады сделаны модулем CCK, что дало возможность использовать в них следующие дополнительные поля: день, время, комната. В дополнение этому типу документов мы сделали словарь «Категории», что позволило классифицировать доклады по следующим темам: бизнес, код и разработка, дизайн и эргономика, drupalchix, быстродействие и расширяемость, мастер-класс и стратегия действий, создание сайта. Использование таксономии для классификации докладов было удобно тем, что это позволило нам получить выгоду от интеграции документов с модулем Views. Используя категории, мы позволили посетителям фильтровать доклады на основе их интересов.
Вы можете спросить, как мы смогли использовать дни/время/комнаты в качестве CCK-полей, если позволили всем желающим создавать доклады? Ответом на этот вопрос является настройка прав доступа к полям. Это позволило нам дать всем участникам возможность добавлять и редактировать свои доклады, в то время как только организаторы имели доступ к установке детальной информации о докладе.
Чтобы дать возможность пользователям формировать список интересующих их докладов, мы использовали модуль Flag. Мы создали новый тип флажков, который позволял отмечать документы и только зарегистрированные участники могли отмечать доклады и добавлять их в свои закладки. Используя этот модуль вместе с модулем Views, мы смогли легко сформировать список докладов, которые набрали наибольшее количество желающих их посетить, что позволило нам формировать расписание на основе предпочтений большинства участников. Для пользователей выгода в формировании списка докладов которые они хотят посетить в том, что когда меняется время/место доклада, это отражается в их профилях.
Для спонсоров встречи мы сделали свой тип документов с использованием CCK. В этот тип документов были добавлены следующие поля: логотип (тип поля — изображение) сайт (тип поля — ссылка) и участники (тип поля — ссылка на пользователя). В дополнение к типу документов, мы использовали модуль Taxonomy и разделили спонсоров на категории. Затем мы использовали стиль вида «Без форматирования» и выбрали для него группировку по термину. Это позволило вывести небольшой заголовок перед каждой группой спонсоров. Другая выгода в таком подходе заключалась в том, что мы получили возможность легко выбрать логотипы только платиновых и золотых спонсоров, чтобы показать их в нижней колонке на всех страницах сайта, а на первой странице сайта только логотипы платиновых спонсоров.
При создании документа, организатором назначался владелец этого документа из списка спонсоров. Это позволяло спонсорам легко изменять описание и логотип своей компании в любое время. Кроме того, в процессе создания сайта мы подумали, что было бы классно показать какие из участников встречи представляют того или иного спонсора, и добавили поле ссылающееся на пользователя. Вы наверное обратили внимание на то, что мы проверяем загрузил ли пользователь свою фотографию и затем обрабатываем её с помощью ImageCache.
/**
* Theme function for 'default' userreference field formatter.
*/
function txt_drupalcamp_userreference_formatter_default($element) {
$output = '';
$default = variable_get('user_picture_default', '');
if (isset($element['#item']['uid']) && $account = user_load(array('uid' => $element['#item']['uid']))) {
$filepath = $account->picture ? $account->picture : $default;
$output = l(theme('imagecache', 'mini', $filepath, $account->profile_fullname, $account->profile_fullname), 'user/'. $account->uid, array('html' => TRUE));
$output .= '<span class="username">'. theme('username', $account) .'</span>';
}
return $output;
}
Первая страница сайта была создана с помощью модуля Panels. Мы часто используем этот модуль, так как он даёт нам возможность легко размещать связанную друг с другом информацию в разных местах страницы.
Мы хотели бы также дать ссылки на сайты прошедших конференций, которые помогли нам в разработке нашего сайта:
В итоге проведённой работы получился профиль установки DrupalCamp.
По различным причинам, мы решили не включать графические файлы нашей темы в сборку. В основном из-за того, что хотели сделать сайт встречи уникальным. Однако, все шаблоны и яваскрипты включены в темы. Мы рекомендуем использовать тему встречи в качестве основной и по необходимости добавлять в неё нужные вам стили.
Вложение | Размер |
---|---|
![]() | 168.55 КБ |
![]() | 483.78 КБ |