Drupal And Google

Post on 25-Dec-2014

2.100 views 1 download

description

 

Transcript of Drupal And Google

Построение сообществ на 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

Анна ФедорукАнна Федорукafedoruk@sterno.ruafedoruk@sterno.ru

Клера ВиленскаяКлера Виленскаяexe@sterno.ruexe@sterno.ru