Вы здесь

Drupal Social Network

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

DrupalSN.com (Drupal Social Network) — это социальная сеть друпаллеров построенная на Друпале. Она создана thomjjames с небольшой помощью BioALIEN.

Что это?

DrupalSN в основном является выставкой сайтов сделанных на Друпале. Я надеюсь разработчики и дизайнеры сайтов на Друпале будут использовать этот сайт для размещения своего портфолио.

Drupal Social Network

Этот сайт предназначен также для того, чтобы люди могли взаимодействовать друг с другом и видеть, как Друпал может эффективно использоваться для создания социальной сети и в конечном счёте этот сайт может служить поддержкой проекту Друпал!

Как это?

Сайт работает на Друпале 5 и использует специально созданную для него с нуля тему. Я не дизайнер, поэтому не стесняйтесь оставлять комментарии о дизайне сайта. Я уверен, что он может быть улучшен!

Почему Друпал?

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

Почему Друпал 5, а не Друпал 6?

Я собираюсь обновить сайт до версии Друпал 6 как только найду время, но когда я начал делать сайт, Друпал 6 ещё находился на стадии тестирования и я решил, что удобнее будет использовать Друпал 5.

Также, модули Views и CCK только начинали портироваться для Друпала 6, а я их широко использую и обязательно в них нуждался. Я использую также большое количество дополнительных модулей и ожидание их версий для Друпала 6 задержало бы разработку сайта.

Если бы я начал этот проект сегодня, я бы определённо делал его на Друпале 6.

Основные возможности

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

Статус пользователя (как на Facebook) — вы, возможно, обратили внимание, что я бесстыдно скопировал статус пользователя с Facebook.

  • Посещения профиля — эту возможность я разрабатывал для другого персонального сайта (AdrenalineHub.com), подправил и использовал снова здесь. Посещения профиля показывают Х-количество последних людей, которые заходили на страницу вашего профиля, а целью этого является связывание посетителей вместе
  • Заполненность профиля — это другой специальный модуль, который подсчитывает заполненность профиля, основываясь на общем количестве полей профиля и тех из них, которые заполнены. Этот пользователь также позволяет пользователям иметь список тех дел, которые нужно завершить в своём профиле, чтобы он был полностью заполненным
  • Мастер заполнения профиля — это ещё один специальный модуль, который руководит процессом заполнения профиля. Я заметил, что такая особенность часто используется на сайтах сообществ и реализовал её и на этом сайте
  • Регистрация в определённой роли — если вы захотите зарегистрироваться на сайте, то увидите, что есть три роли, которые вы можете выбрать при регистрации и которые основаны на том, каким образом вы хотите использовать сайт. Друпал очень удобен для использования подобного подхода при регистрации. Я использовал модули Auto Assign Role, Logintoboggan и небольшой специальный модуль. Различные роли имеют различные поля в профиле. Для того, чтобы добиться этого, я воспользовался немного изменённым модулем User Types (мне нужно почистить код этого модуля, после чего я выложу его в открытый доступ), а также применил патч к модулю Profile (тем не менее, я не рекомендую изменять стандартные модули, если вы полностью не понимаете то, к чему это может привести), который позволил выбор в формах профиля, смотрите этот патч
  • Выставка сайтов — эта часть сайта позволяет посетителям, которые зарегистрировались в роли «Фрилансер» или «Компания» добавлять информацию о своих сайтах, выставляя их на всеобщее обозрение и оценку. Я надеюсь, что фрилансеры и компании будут использовать это место для выставки своих работ для потенциальных клиентов и этот раздел поможет им находить заказчиков. Я сделал форму добавления сайта более удобной, переписав некоторые функции и добавив использование AJAX

Мир Друпала

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

Использованные модули

  • Views, CCK, ImageCache. Эти модули обеспечивают базовую работу с документами сайта. С помощью CCK добавлены новые поля в типы документов, а Views используется для вывода списков и как средство поиска. ImageCache используется для масштабирования и обрезки всех изображений загружаемых на сайт
  • Messaging, Notifications. Notifications используется для того, чтобы позволить пользователям подписываться на сообщения друг друга. Таким образом, когда пользователь добавляет на сайт новый проект, его подписчики могут получать оповещение об этом действии
  • Simplefeed. Этот модуль обеспечивает работу части Drupal World (пункт «DSN Wire» в основном меню). Он управляет сбором лент и создаёт из полученных пунктов документы

Решённые вопросы

  • Интерфейс. Так как сайт должен эффективно использоваться его пользователями, то я нуждался в создании простого и привлекательного интерфейса. По этой причине, я потратил около 50% всего времени разработки на создание и эксперименты с макетами страниц и профилями пользователей. Я не дизайнер, поэтому это заняло наверное больше времени, чем должно было бы. Это не проблема Друпала, а скорее проблема разработки, но я думаю, что интерфейс Друпала не очень удобен, хотя работа с темой позволит настроить его так, как вам нужно
  • Добавление сайтов. Я ещё продолжаю работать над решением этого вопроса, так как чувствую, что формы документа слишком велики для тех типов, которые содержат только несколько полей, а для типов документов с большим количеством полей лучше их уменьшить, чтобы пользователи не впадали в прострацию, увидев более 20 полей, которые нужно заполнить. Чтобы решить этот вопрос, я переписал формы документа на уровне темы и поместил формы в сворачивающиеся блоки, добавил использование AJAX. Я думаю эти меры помогли, но раздумываю над создание пошаговой формы в будущем
  • Быстродействие. На сайте используется более 78 модулей, поэтому мне пришлось следить за быстродействием, чтобы сайт полностью не встал! Сайт работает на VPS, что позволяет мне работать с производительностью на уровне сервера, но на уровне Друпала также важно использовать сжатие CSS и JavaScript, что серьёзно улучшает быстродействие. В дальнейшем я планирую сделать тесты на производительность, со временем возможно мне пригодится и модуль Throttle и обновление до Друпала 6. Я считаю, что работа над быстродействием в Друпале является очень важной и вижу, что быстродействие Друпала в новой версии улучшено. Производительность продолжает улучшаться с каждым выпуском Друпала!

Что нужно было делать по-другому?

  • Планирование. Мои планы менялись каждый день, что значительно замедлило разработку сайта. Я думаю этот вопрос полностью лежит на разработчике; никого не было рядом, чтобы сказать «стоп, это нам не нужно!» или «это отличная идея, делай!». В следующий раз я обязательно сначала составлю план действий, которого затем буду придерживаться
  • Нанять дизайнера. Как я уже упоминал, я не дизайнер и дизайн сайта отнял у меня половину всего времени работы над сайтом. Оглядываясь назад, я теперь предпочёл бы нанять дизайнера интерфейса и думаю, что это позволило бы выполнить работу быстрее

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

Что дальше?

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

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

Ну, а если вам понравится сайт и вы захотите помочь с его рекламой, то можете заглянуть на страницу http://drupalsn.com/promote.

Спасибо за внимание.