Создание социальной сети на drupal. Drupalife Store - легковесный и простой дистрибутив интернет-магазина. Основные модули Drupal

Всем привет, давненько я не писал. Было лень, да и ничего в голову не приходило, но я не забил на блог. После такого простоя вернусь с записи-анонса, ведь без дела я тоже не сидел.

После месяца, а то и двух, я все же решился анонсировать вам свою сборку интернет-магазина на базе Drupal Commerce. Работу над ней начал примерно под конец января, и не спеша делал и вот уже сейчас есть версия, которая безупречно устанавливается, разворачивает весь функционал и реально работает. Т.е. даже годится для продакшена.

Почему я сделал сборку и какие ставил цели

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

Разумеется, первоочередными целями были получение нового опыта с Drupal и постараться сделать что-то реально полезное для русского сообщества Drupal. По поводу опыта, я, конечно же, могу заверить, получил я его в достаточном количестве. Делать сборки действительно интересно и увлекательно. Создавая сборку я изучил друпал намного глубже чем я его знал ранее, примерно раза в полтора, а то и все два. Чтобы сделать сборку пришлось изучать базу друпала, руками просматривать что да как строится и хранится, а раньше я с базой не особо то и работал ибо боялся там что-то нарушить. Сейчас же страха уже не осталось. А по поводу полезности сборки, это уже решит само сообщество и те люди кому это интересно. Если это хотя бы кому-то окажется полезным решением и поможет в чем-либо, я буду очень рад.

После, скажем так, не очень легкого решения делать сборку, ведь информации о разработке дистра очень мало (приходилось разбирать другие сборки и анализировать), я начал думать, что мне делать. Востребованность на интернет-магазины очевидна, но ведь уже есть Commerce Kickstart, Commerce Box и т.д. Получается делать, то, что уже сделано как-то глупо и я начал анализировать этих двух товарищей.

С первым я знаком с момента выхода самого drupal commerce, ведь он был его первой демкой и первым дистрибутивом, при всем при этом он еще и официальный. Но как-то у меня с ним не срослось, сколько я не пробовал, никогда (я не вру) он не устанавливался до конца без ошибок. Постоянно прерывался на какой-либо операции и все шло в тартарары. Мне это, разумеется, не понравилось и я пошел к другому собрату - Commerce Box.

Commerce Box делают наши друзья из Украинского сообщества. Скажу честно, я её не устанавливал, я читал отзывы о ней и смотрел 2, а то и 3 доклада от самих же разработчиков. Они сами говорят что там сейчас полнейшая Ж, устанавливается порядка 300 модулей (!), хотя по демо-сайту я не особо понял, для чего там такое количество модулей. Я приверженец делать сайт с минимум модулей. Так вот, такое количество модулей, плюс то что сейчас они его координатно перепиливают и неизвестно когда допилят, и допилят ли вообще тоже как-то скинуло его из моего видения и я начал гнуть свою палку.

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

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

При этом я старался сделать весь процесс от установки до использования максимально простым и быстрым. По факту получается так, вы устанавливаете сборку, наполняете магазин, и в продакшен зарабатывать денежки.

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

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

Установка

Установка абсолютно ничем не отличается от стандартной. Вы качаете дистрибутив, и в момент установки просто появляется новый пункт.

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

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

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

Разделим условно весь функционал на следующие «бифштексы»:

  1. статьи (персоналий, рецензии, описание проекта)
  2. аудио и видео (аудио- и видеозаписи, конкурсные материалы)
  3. мероприятия (события, конкурсы, фестивали, мастер-классы, открытые занятия)
  4. юзабилити (WYSIWYG, ЧПУ, навигация, гиды по сайту)

Повторюсь - деление условное.

2. Модули

«Из коробки» Drupal обладает достаточно внушительным набором модулей, с помощью которых можно создать достаточно внушительные по своему назначению сайты. Но мы хотим править Вселенной создать более широкий по своему назначению и функциям проект, поэтому нам потребуются инструменты в виде модулей, коих довольно много на официальном сайте .
0. База
Кэп подсказывает, что для начала нам как бы нужен непосредственно архив с самим Drupal. Идём и качаем свежую версию. На момент написания статьи это 7.27 . Сохраняем в отдельную папочку, которую Кэп создал специально для меня.

Дальше нам нужно дополнительно как минимум два модуля: Views и CCK . Views пригодится не только нам, но и другим модулям, зависящим от него. Ну, а CCK позволит нам расширить тот функционал, который предоставляет Field API. Собственно, скачиваем их с сайта Drupal. И не забываем про Token !

Лично я предпочёл включить модуль Update manager для более удобной установки модулей и тем.
NB: ещё не успел порядком изучить Drush, но знаю, что вещь полезнейшая. Осталось со временем перейти на него.

1. Статьи
Для большей части статейных материалов достаточно и «коробочных» модулей - Field API вполне справляется со своими обязанностями. Но если дело касается любой биографии, то здесь одного функционала FAPI уже маловато.

Какая узловая точка в биографии? Правильно, даты. Топаем на сайт и смотрим на Date . Ага, есть, ставим.

Нам надо сделать так, чтобы в зависимости от того, как мы заполним «карточку» на персону, соответствующим образом формировался заголовок страницы. В этом нам неоценимую услугу окажет Automatic Nodetitles . Ставим.

Дополнительно ставим модуль Image , потому как он пригодится потом везде, где только можно.

Забегая вперёд, скажу, что нам понадобится Node Reference и References , от которого NR зависит. Позже объясню, зачем.

2. Аудио и видео
Здесь всё-таки я остановился на модуле Media . Не забываем поставить зависимости: Chaos Tools и File Entity .

Если с воспроизведением видео всё более или менее понятно, то с аудио несколько сложнее. Случайно наткнулся на интересную библиотеку SoundManager 2 . Удобно, стильно, CSS-но. Забираем. К счастью, для библиотеки есть соответствующий модуль - SoundManager2 . Ставим.
На всякий случай ставим себе Libraries API - пригодится.

У нас сеть социальная, поэтому мы хотим, чтобы нам дали право голоса! Хорошо, идём и ставим эти модули: Voting API , Fivestar и Vote Up/Down .

3. Мероприятия
Едем дальше. Нам надо сделать так, чтобы у пользователей была возможность посещать/подписываться на какие-либо мероприятия. Для этого хорошо подойдёт модуль Entity Registration - нам, как правило, нужно знать, кто идёт и сколько всего участников. Ставим.

Возможно, организаторы захотят прикрепить ссылку на страницу мероприятия на том же Timepad , например. Что ж, дадим им такую возможность. Идём и ставим себе модуль Link .

4. Юзабилити
Дабы не обременять пользователей изучением HTML-тегов (поверьте, не у всех музыкантов есть на это время), позволим им воспользоваться каким-нибудь WYSIWYG-редактором. Неважно, что это будет - TinyMCE или CKEditor , хоть все сразу. Чтобы их держать под контролем, поставим модуль Wysiwyg и редактор CKEditor (мой выбор).

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

Понятное дело, что, попав первый раз на сайт, пользователю будет, наверное, не так просто сориентироваться. Было найдено довольно изящное решение вопроса - jQuery-плагин Joyride от ZURB . Скачаем библиотеку, заодно установим для неё соответствующий модуль . Заодно ставим зависимость - Context , если он ещё не установлен.

В основном за ЧПУ отвечает непосредственно Drupal, поэтому там трогать ничего не будем. Будем лишь видоизменять ссылки в зависимости от местонахождения пользователя - для этого ставим Pathauto и Transliteration , чтобы ссылки выглядели чуть более опрятно.

Как и любому другому уважающему себя сообществу, нам хочется иметь и группу ВКонтакте, куда будем постить разные новости и обновления проекта. Но, как вы сами понимаете, ручками делать это лень сложно, особенно одному, так что воспользуемся ещё одним готовым решением - VK CrossPoster . Модуль позволяет размещать сообщения на стене пользователя или группы с возможностью прикрепления ссылки на анонсированную страницу. Модуль имеет пару костылей, которые мы и разберём чуть позже, наберитесь терпения.

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

Итоги

Итак, что у нас в сухом остатке?

Итого: 25 модулей без учёта тех, что встроены в системе, и 2 библиотеки. Возможно, я упустил какие-то зависимости, буду рад, если мне о них напомнят лишний раз.

Сайтов объединений, сообществ, групп на платформе CMS Drupal.

Обзор возможностей Drupal при построении социальных сетей.
Drupal - Open Source CMS, возможности которой позволяет решать ряд задач одновременно. Структура этой системы управления не только дает возможность создавать всевозможные сайты. Большое значение имеют «ноды» (базовая составляющая в Drupal). Благодаря свойствам нод, разработчик получает высокую гибкость в создании и настройке сайтов. Drupal дает возможность легко управлять контентом, пользователями и взаимоотношениями между пользователями. Всё это весьма удобно при разработке соцсетей. Успех реализации зависит от проектировки системы и её реализации.

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

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

  • Aggregator: Модуль Aggregator дает возможность агрегировать информацию с новостных лент, других ресурсов и публиковать их.
  • Blog: Модуль дает возможность создавать блоги.
  • Blog API: модуль дает возможность добавлять на сайт контент с использованием внешних программ.
  • Book: модуль дает возможность выстраивать страницы в порядок в соответствии с иерархией.
  • Color: модуль дает возможность пользователям менять цветовую схему сайта.
  • Comment: модуль дает возможность создавать комментарии к опубликованному контенту и отвечать на комментарии других участников.
  • Forum: модуль дает возможность создавать форумы и организовывать дискуссии
  • Upload: модуль дает возможность участникам сообщества загружать файлы.
  • Profile: модуль дает возможность пользователям публиковать информацию о себе.
  • Tracker: модуль дает возможность отслеживать происходящие изменения на сайте (новые пользователи, новая информация и комментарии).
  • OpenID: модуль дает возможность пользователям заходить в свой профиль с использованием технологии ID.

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

  • Token. Модуль сам по себе не отличается функциональностью, используется для расширения возможностей других модулей.
  • Gravatar. Модуль позволяет участникам использовать аватар.
  • Image resize filter. Модуль дает возможность автоматически делать картинку меньше, если задать в настройках.
  • User Relationships. Модуль дает возможность создавать связи между участниками. Сложно представить современную соцсеть без этой функции.
  • Activity. Модуль дает возможность фиксировать действия пользователей на сайте, выводить изменения в блоках или в лентах или RSS- лентах.
  • Guestbook. Модуль дает возможность создавать гостевые книги участников сообщества (аналог Вконтакте - стена), гостевые книги интернет-сайта.
  • Organic groups. Модуль дает возможность создавать тематические сообщества.
  • Views. Модуль дает дизайнерам сайта возможность гибко и свободно управлять отображением таблиц и содержимым.
  • Notifications. Модуль дает возможность создать любую подписку. Использование вкупе с модулем Messaging дает отличные результаты. Позволяет осуществить подписку на определенный тип материала, группы, на участников сообщества и т.д.
  • Messaging. Модуль позволяет доставлять сообщения удобным для пользователя способом (e-mail, персональное сообщение, SMS и т.д.)
  • Inactive User. Модуль дает возможность управлять неактивными пользователями в автоматическом режиме. Возможные действия: отправка уведомления пользователю о том, что он давно не появлялся на сайте; блокировка профиля; удаление пользователя.
  • CAPTCHA. Модуль позволяет тестировать пользователей в целях выявления и борьбы со спамботами.

Здесь перечислена лишь часть модулей, способных улучшить функциональность ресурса.

Основной функционал Drupal (публикации, таксономия, система распределения доступа), модульность, в совокупности с масштабируемостью системы, возможность гибкой настройки позволяют создавать социальные сети с высоким уровнем сложности.
Стоит напомнить, что Drupal - система с открытым исходным кодом, что позволяет редактировать исходные тексты и использовать проекты, созданные на платформе Drupal в коммерческих целях.
CMS Drupal изначально разрабатывалась для создания сообществ, поэтому имеет все возможности для создания подобных социальных сетей.

Сроки предоставления услуги

Сроки реализации оцениваются индивидуально для каждого проекта.

Регион предоставления услуги
Стоимость предоставления услуги

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

Заказ проекта

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

В продолжение темы:
Linux

Недавно TWITTER, как и Яндекс, сменил свой дизайн. Изменения коснулись внешнего вида, слегка изменилась функциональность. Из-за произошедших обновлений, многие пользователи...