- Друзья:
- Drupal cook book |
- Танцы с Друпалом |
- Уберкарт.ру |
- Сетегном |
- Карикатуры |
Новая версия Швабрашвабр.ру — "социальной" сборки CMS Drupal
В этой версии сборки основной сущностью, вокруг которой строится жизнь сайта, является не запись в блоге, как в предыдущей версии, а профиль пользователя, как в социальных сетях типа вКонтакте или Фейсбука.Сайт работает по таким правилам:
- Каждый пользователь при регистрации может выбрать тип своего аккаунта: "Работник" или "Работодатель", в зависимости от выбранного типа пользователю будут доступны различные настройки профиля.
- Каждый пользователь (здесь и далее под пользователем подразумевается авторизованный в системе посетитель сайта) может указывать свой текущий статус, статусы сохраняются в базе данных и могут быть одображены в стиле Твиттера.
- Каждый пользователь имеет персональную гостевую книгу, оформленную в виде "стены".
- Каждый пользователь может создавать персональные галереи изображений. Администраторы могут создавать общие галереи изображений.
- Каждый пользователь может закачивать фотографии и привязывать их к любым доступным персональным или общим фотогалереям.
- В профиле пользователя отображается список гостей, посетивших этот профиль.
- Вся активность, проявляемая пользователем, доступна для просмотра через его профиль.
Кроме того, от старой сборки остался следующий функционал:
- Любой пользователь может вести свой блог.
- Любой пользователь может голосовать за чужие посты и комментарии, эти голоса влияют на "карму" и позицию в рейтинге автора.
- Пользователь с кармой больше чем X может создавать коллективные блоги и определять права доступа к ним.
- Все новые посты доступны по адресу shvabrashvabr.ru/new, посты набравшие определенное количество голосов (сейчас это 2) или отмеченные модератором попадают на главную страницу сайта.
- Пользователи могут создавать списки друзей.
- Пользователи могут присваивать сообщениям метки (тэги, ярлыки), на основе которых строится облако тэгов.
Disclaimer:
Внимание! Данная сборка предоставляется не как готовое к использованию решение, а как демонстрация возможностей CMS Drupal. Я убежден, что каждый создаваемый сайт должен иметь свои индивитуальные черты, подчеркивающие особенности конкретного решения. Создаете сайт о футболе? Нет ничего сложного в том, чтобы реализовать на Друпале каталог команд и футболистов:- Создайте новый тип контента "Футбольная команда".
- Создайте новый тип контента "Футболист" и с помощью CCK-поля node reference привяжите футболистов к командам.
- С помощью Views создайте списки команд и футболистов, привязанных к команде.
- С помощью CCK + Imagefield + Imagecache реализуйте возможность прикреплять к командам/футболистам фотографии.
Все эти задачи в том или ином виде реализованы в этой сборке, нужно только потратить время на то чтобы понять и осознать основные понятия, используемые в Друпале и вы, обладая минимальными знаниями в HTML + CSS + PHP, сможете создать сайт со структурой и связями любой сложности. Да, к сожалению, без минимальных знаний языков программирования и разметки вы не сможете на 100% воспользоваться возможностями системы, но вам и не обязательно быть PHP-гуру, чтобы разобраться в представленной сборке, достаточно уметь читать html-код и иметь представления об основных принципах программирования: условные операторы, циклы, функции.
К сожалению, у меня совершенно нет времени на то, чтобы заниматься поддержкой пользователй, по этому за ответами на возникающие вопросы прошу обращаться на Друпал.ру. Надеюсь, мое начинание будет поддержано сообществом Друпал.ру и Швабрашвабр, силами сообщества, будет развиваться и обрастать новым функционалом.
strict warning: Declaration of views_plugin_style_default::options() should be compatible with views_object::options() in /var/www/shvabrashvabr.ru/sites/all/modules/views/plugins/views_plugin_style_default.inc on line 24.
Швабрашвабр → Швабрашвабр 2 — описание
Posted ноября 9th, 2009 by РомкаВступление
В мае 2008 года я сделал демонстрационную сборку CMS Drupal, работающую как коллективный блог с элементами социальной сети и получившую название Швабрашвабр. В основу этой сборки лег Друпал 5 версии. На тот момент уже был доступен Drupal 6, но под него еще не были портированы все необходимые для реализации задуманного функционала модули. В предложенной сборке был реализован следующий функционал:
- зарегистрированные в системе пользователи могли вести собственный блог, оставлять комментарии к записям в блогах и голосовать за посты и комментарии к ним.
- Отданные голоса влияли на карму (рейтинг) автора поста или комментария (отданный голос за пост имел больший вес, чем голос за комментарий); пользователи набравшие определенный рейтинг автоматически получали роль "продвинутого пользователя", что давало им дополнительные возможности, например, создавать коллективные блоги.
- Коллективный блог — блог записи в котором посвящены определенной тематике. Владелец блога (его автор, создатель) мог определить его тип:
- в открытый блог могли писать все желающие пользователи сайта,
- в закрытом блоге публиковать записи могли только пользователи "подключившиеся" к нему, при этом заявку на подключение к блогу мог отправить любой желающий, а решение принять ее или нет принимал владелец блога,
- логика работы приватного коллективного блога была аналогична логике закрытого, за исключением того, что попасть в него можно было только по приглашению владельца блога, просто так послать заявку на подключения к блогу пользователи не могли.
- Главная страница сайта представляла из себя список записей в блогах, набравших определенный пользовательский рейтинг, таким образом была реализована "социальная" составляющая проекта — на главную страницу сайта попадали только те записи, которые интересны посетителям сайта. Кроме того, список всех существующих записей в блогах был доступен на отдельной странице.
- Также на сайте были реализованы механизмы внутренней почты, "дружбы" между пользователями и т.д.
Спустя полгода (в ноябре 2008 года) я реализовал аналогичный описанному выше функционал уже на шестом Друпале, но на тот момент еще не было возможности безболезненно портировать существующую Швабрушвабр с пятого Друпала на шестой. Эта сборка вместе с её описанием, а также большой статьей посвященной Друпалу была опубликована в журнале PC Magazine/RE, я очень рекомендую, перед дальнейшим чтением этого материала прочитать статью из PC Magazine, так как здесь я не буду описывать основные используемые понятия, которые были описаны в той статье. Кроме того, рекомендую прочитать две других моих статьи, посвященных Друпалу, также опубликованных в PC Magazine/RE, первая доступна по адресу http://pcmag.ru/solutions/detail.php?ID=36589, вторая будет опубликована в ближайшем номере журнала.
Теперь настало время портировать старую Швабрушвабр с пятого Друпала на шестой и добавить ей дополнительный функционал. Все необходимые для этого модули уже реализованы их разработчиками, осталось их только установить и настроить.
В новой версии сборки я постарался сделать упор на социальную составляющую. По моему мнению, центром, вокруг которого крутится вся жизнь социальной сети, является профиль пользователя, который должен содержать в себе максимальное количество информации об активности своего владельца. Итак, в дополнение к реализованному ранее функционалу, новая сборка содержит следующие возможности:
- каждый пользователь может указывать свой статус, который выводится в виде микроблога в стиле Твиттера,
- каждый пользователь может создавать персональные фотогалереи и загружать в них свои фотографии,
- каждый пользователь имеет персональную гостевую книгу (как "стена" во вКонтакте),
- каждый пользователь имеет список друзей и последних посетителей своего профиля,
- кроме того, каждый пользователь при регистрации должен выбрать свой тип (в этой реализации — Исполнитель или Заказчик, но эти названия должны зависеть от конкретного проекта) и, в зависимости от типа, ему будут доступны различные настройки своего профиля.
- на главную страницу теперь могут попадать не только материалы, набравшие определенный рейтинг, но и материалы продвинутые модератором,
- и т.п.
Блоги теперь являются не основным элементом проекта, а лишь его небольшой частью.
В этой статье я покажу как решить следующие задачи:
- как подготовить сайт на пятом Друпале к переносу на шестой и как осуществить этот перенос. На самом деле, в этой операции нет ничего сложного, в некоторых случаях достаточно просто скачать c drupal.org и установить шестой Друпал и все модули (их версии под Drupal 6), которые были использованы в сборке пятого Друпала, после чего подключить к этой сборке базу данных от старого сайта на пятом Друпале и запустить скрипт update.php. Этот скрипт сам выполнит все необходимые действия. К сожалению, в случае с Швабройшвабр будет не все так просто, после выполнения указанных действий сборку еще немного надо будет обработать напильником, в частности, нужно будет заново пересоздать "представления" (views — списки документов, которые используются, например, для генерации главной страницы сайта и страницы со списком всех записей в блоге), а также портировать "списки друзей" из устаревшего модуля BuddyList2 в новый User Relationships.
- Как настроить "представления" для реализации старого (списки всех записей в блогах и записей в блогах для главной страницы) и нового функционала (списки фотогалерей и фотографий).
- Как перенести списки друзей со старого сайта в новый (из BuddyList2 в User Relationships).
- Как реализовать функционал персональных фотогалерей практически нативными средствами Друпала (Views и CCK) без применения сторонних модулей типа image или gallery2.
- Как создать "стену", "статусы", "последних гостей" и вывести все это в профиле юзера.
Готовый пример, разработанный в рамках этой статьи вы можете скачать по ссылкам:
В предложенной сборке создано 4 юзера: admin, Заказчик, Исполнитель, Лошадь. У всех пароль — 1111 (к сайту Швабрашвабр.ру он не подходит ;)).
Перед дальнейшим чтением статьи я рекомендую вам установить эту сборку на собственном сервере, изучить ее возможности и, в случае если у вас возникнут вопросы по настройке тех или иных элементов системы, вернуться к чтению статьи.