- Друзья:
- Drupal cook book |
- Танцы с Друпалом |
- Уберкарт.ру |
- Сетегном |
- Карикатуры |
описание
warning: Creating default object from empty value in /var/www/shvabrashvabr.ru/modules/taxonomy/taxonomy.pages.inc on line 33.
Швабрашвабр → Швабрашвабр 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 (к сайту Швабрашвабр.ру он не подходит ;)).
Перед дальнейшим чтением статьи я рекомендую вам установить эту сборку на собственном сервере, изучить ее возможности и, в случае если у вас возникнут вопросы по настройке тех или иных элементов системы, вернуться к чтению статьи.