Upload
guest2766ed
View
2.100
Download
1
Embed Size (px)
DESCRIPTION
Citation preview
Построение сообществ на Drupal, Построение сообществ на Drupal, интеграция с сервисами Googleинтеграция с сервисами Google
Анна Федорук, Клера ВиленскаяАнна Федорук, Клера Виленская
Sterno.RuSterno.Ru
Система hooks в DrupalСистема hooks в Drupal• Мета-hooksМета-hooks
– Регистрация обработчиков страниц Регистрация обработчиков страниц – Регистрация типов контента Регистрация типов контента – Что нужно делать при включении и отключении модуля, что нужно делать Что нужно делать при включении и отключении модуля, что нужно делать
при выполнении cron-а и т.д.при выполнении cron-а и т.д.• Работа с контентомРабота с контентом
– Создание, изменение, удаление нодыСоздание, изменение, удаление ноды– Отображение нодыОтображение ноды– Разделение доступаРазделение доступа– Работа с комментариямиРабота с комментариями
• Работа с пользователямиРабота с пользователями– Регистрация, удаление, изменение данных, аутентификацияРегистрация, удаление, изменение данных, аутентификация– Отображение инфорации о пользователеОтображение инфорации о пользователе
• Работа с формамиРабота с формами– Создание, темизация формСоздание, темизация форм– Внесение изменений в любую формуВнесение изменений в любую форму
Реализация API для своих Реализация API для своих собственных модулейсобственных модулей
Модуль NРеализация
hook ААргументы Результат
Выполнение скрипта
внутри модуля
Выполнение скрипта
внутри модуля
Вызов hook Amodule_invoke_all()
или module_invoke()
... ...
Пример 1: Организация Пример 1: Организация премодерируемого конкурсапремодерируемого конкурса
Работа опубликована
Модерация
Стандартный workflow
Собственный процесс модерации
Пользовательотправляет работу
на конкурс (создание ноды
соответствующего типа)
Оценка работы
Собственный принцип построения рейтинга
VotingAPI
Выполнение рутинныхопераций над голосами
Реализация 1: MMS-конкурс на Реализация 1: MMS-конкурс на photo-biennale.ruphoto-biennale.ru
Реализация 2: конкурс видео на Реализация 2: конкурс видео на pepsi.rupepsi.ru
Пример 2: Организация летучих Пример 2: Организация летучих сообществ по тегамсообществ по тегам
Taxonomy
Ноды с тегами
Летучее сообщество
Пользователи сервиса
Taxonomy + собственные
принципы отбора пользователей
возможность написать пост непосредственно в летучем сообществе, используя hooks работы с контентом
(hook_nodeapi)
+
Реализация:Реализация:Летучие сообщества на pepsi.ruЛетучие сообщества на pepsi.ru
Мультиэго — идея сервисаМультиэго — идея сервиса
• Отображение имени эго theme_username()• Страница эго на сайте• Имя эго в почтовых уведомлениях
Эгоист
Эго 1
Клуб 3
Клуб 1
Эго 3
Эго 2
Клуб 2
АрхитектураАрхитектура
Разделяемые:• Сессии• Пользователи • Форматы ввода• Информация о типах контента• Информация о словарях таксономии• Подключенные модули• Метаинформация о сообществах
Индивидуальные для каждого клуба:• Контент и комментарии• Теги • Избранное• Личные сообщения• Роли и права эго• Настройки клуба• Ленты и круги доверия• Информация об эго (юзерпики,
настройки)
Центральный сайт сервиса• Точка входа• Каталог клубов• Общесервисный контент
Клуб• Своя политика и правила• Свой контент• Свой внешний вид• Изолированное эго
Ресурсы сервиса
Мультисайтинг в DrupalМультисайтинг в Drupal
Единый кодядра
+ дефолтные
модули
Началообработки
запроса
+
Определениефайла
конфигурации
Соединение с БД ...
/sites/all/sites/default/sites/адрес_сайта
settings.phpиндивидуальныенастройки сайта
modulesиндивидуальныемодули сайта
themesиндивидуальныетемы сайта
Создание клуба на МультиЭгоСоздание клуба на МультиЭгоПользователь:
Выбор основных параметров
• Название клуба • Поддомен• Имя эго для владельца
Выбор внешнего вида• Выбор темы• Загрузка логотипа• Выбор иконки юзера
Выбор уровня приватности клуба
Drupal:
• Создание необходимых файлов и директорий
• Создание необходимых таблиц в БД
• Устанавливаем настройки по умолчанию: права пользователей, оформление, настройки страниц и т.д.
• Устанавливаем оформление и права пользователей согласно выбору создателя сообщества
Дополнительный уровень логикиДополнительный уровень логики
Административный интерфейс• Управление модулями
• Управление темами и блоками• Управление правами пользователей
• Другие важные настройки
Интерфейс владельца• Управоение внешним видом• Ограниченное управление правами пользователей• Ограниченное управление блоками• Настройки клуба• Избранное клуба
Интерфейс пользователя (эгоист/эго/аноним)• Посты и комментарии• Личные сообщения• Личное избранное• Круги доверия и ленты
упрощение
и ограничение
Drupal и сервисы GoogleDrupal и сервисы Google
Google через API : GDataGoogle через API : GData
Ресурс
Создать Получить Обновить Удалить
Пример использования Picasa Web Пример использования Picasa Web Albums Data API на silvercam.ruAlbums Data API на silvercam.ru
ФотографииТегиМесто съемки
Комментарии
КомментарииРейтинг альбомовДобавление в друзьяЛента альбомов друзей
Теги
Пример использования Picasa Web Пример использования Picasa Web Albums Data API на silvercam.ruAlbums Data API на silvercam.ru
Пример использования Picasa Web Пример использования Picasa Web Albums Data API на silvercam.ruAlbums Data API на silvercam.ru
Пример использования Picasa Web Пример использования Picasa Web Albums Data API на silvercam.ruAlbums Data API на silvercam.ru
Drupal Picasa
Адрес публичной галереи Picasa
Список публичных альбомов
Выбор альбома и номинации
Сохранение node
Координаты места съемки, список
фотогоафий альбома, теги
Пример использования Calendar API Пример использования Calendar API и Maps API на photo-biennale.ruи Maps API на photo-biennale.ru
Пример использования Calendar API Пример использования Calendar API и Maps API на photo-biennale.ruи Maps API на photo-biennale.ru
Альбом Picasa Web Albums
Место Google Maps
Название события, дата, время, ссылка на созданную node
Событие Google Calendar
Создание node «Выставка» на photo-biennale.ru
Google Apps APIsGoogle Apps APIs– Provisioning API Provisioning API **– Reporting API Reporting API **– Email Migration API Email Migration API **– Single Sign-On Service Single Sign-On Service **– Email Gateway Interface Email Gateway Interface **– Calendar Data APICalendar Data API– Spreadsheets Data APISpreadsheets Data API– Google Gadgets APIGoogle Gadgets API– Google Talk open protocolsGoogle Talk open protocols
* * недоступны в базовом пакете
Делаем почту на сайте: Делаем почту на сайте: Drupal + Google AppsDrupal + Google Apps
1.1. Зарегистрироваться в Google AppsЗарегистрироваться в Google Apps
2.2. Настроить почту – указать сервера Google в Настроить почту – указать сервера Google в
качестве почтовыхкачестве почтовых
3.3. Установить модуль регистрации пользователей в Установить модуль регистрации пользователей в
Google AppsGoogle Apps
4.4. Настроить систему единого входаНастроить систему единого входа
Модуль для взаимодействия Модуль для взаимодействия с Google Appsс Google Apps• Действия с пользователями (Hook_user)Действия с пользователями (Hook_user)
Register:Register:
– Создание пользователя в Google AppsСоздание пользователя в Google AppsUpdate:Update:
– Изменение информации о пользователеИзменение информации о пользователеDelete:Delete:
– Удаление пользователяУдаление пользователя
• Страница входа в Google Apps (для SSO)Страница входа в Google Apps (для SSO)– Функция аутентификации и генерация ответа SAMLФункция аутентификации и генерация ответа SAML
Система единого входаСистема единого входа
СсылкиСсылки
http://sterno.ru/rit2008http://sterno.ru/rit2008
http://drupal.org/ http://drupal.org/
http://code.google.com/intl/ru/more/http://code.google.com/intl/ru/more/
http://www.google.com/ahttp://www.google.com/a
Спасибо за внимание!Спасибо за внимание!
Эту презентацию и дополнительные материалы к ней Эту презентацию и дополнительные материалы к ней
вы можете найти на вы можете найти на http://sterno.ru/rit2008http://sterno.ru/rit2008
Анна ФедорукАнна Федорук[email protected]@sterno.ru
Клера ВиленскаяКлера Виленская[email protected]@sterno.ru