Социальные сети, сервисы, новостные сайты — так много регистраций на разных сайтах, где каждый из нас что-то делает. Где-то загружается видео, где-то одобряется новость, а где-то добавляется ссылка. Всё это разбросано по интернету, а ведь порой так хочется, чтобы все узнали, что ты сделал.
Специально для тех, кто привык жить публично, кто хочет показать другим свои действия в интернете, был создан плагин Action Streams. Он позволяет собирать информацию с любых(!) сайтов, независимо от того, есть ли у них экспорт в RSS или нет. А затем публиковать эту информацию в своём блоге. Например, можно публиковать в блоге список расшаренных сообщений из Google Reader, одобренные ссылки на Digg.com, сообщения из Twitter'a или новые фотографии на Flickr.
В плагине уже добавлено большинство популярных сервисов, так что, скорее всего, вам не придётся самостоятельно править код. Но, к сожалению, разработчики не знакомы с русскоязычными сервисами, поэтому их придётся добавлять самим. Благо, что сделать это достаточно просто, для этого не обязательно знать никакого языка программирования, достаточно в одном файле добавить несколько строк.
Плагин Action Stream позволяет работать с XML и HTML документами. Это значит, что можно «скормить» ему какой-нибудь фид (RSS, Atom) или любую HTML-страницу. Лучше использовать фиды, так как их парсинг будет происходить быстрее и точнее.
Формат файла прост, это обычный YAML. Большинство современных редакторов подсвечивают его синтаксис. Хотя, для редактирования подойдёт любой текстовый редактор. Вот как выглядит файл в редакторе Notepad++:
Приступаем к реализации
- Для начала нужно скачать и установить плагин. Делается это стандартным способом.
- Дальше нам нужно добавить новые сервисы в конфигурационный файл плагина — config.yaml. Открываем его и сначала ищем строчку «profile_services:». Блок profile_services содержит множество элементов — это и есть список сервисов. Рассмотрим формат каждого элемента.
br />- Название элемента — должно быть написано латинскими буквами, без пробелов и специальных знаков.
- Имя элемента — может быть написано буквами из любого алфавита. Если имя состоит из нескольких слов, его нужно заключить в одинарные кавычки.
- URL страницы пользователя сервиса — адрес страницы, включающий в себя паттерн «%s», обозначающий имя пользователя.
- Подсказка, какие данные необходимо ввести при добавлении нового аккаунта.
- Суфикс URL — на некоторых сервисах профиль пользователя располагается на поддомене. Если это так, то можно добавить это значение.
Далее нам нужно в этом же файле найти другой блок — «action_streams:», в котором содержатся более детальные параметры для каждого сервиса.
- Для примера был взят сайт News2.ru, имя которого в блоке — news2. Блок news2 содержит элементы links и submitted — каждый из них предназначен для сбора определённой информации. Например, links предназначен для сбора информации о новостях, за которые проголосовал пользователь, а submitted — для новостей, добавленных пользователем.
- name — это имя выводится при добавлении нового профиля в админке.
- description — описание элемента, также выводится при добавлении профиля.
- html_form — то, как будет выглядеть отображаемая информация на сайте. Содержит паттерны, один из которых ([_1]) по умолчанию — имя пользователя, а другие указаны в html_params.
- html_params — см. выше.
- url — адрес RSS потока, содержащий паттерн «{{ident}}», обозначающий имя пользователя сервиса.
- identifier — по чему идентифициируем, в большинстве случаев необязателен.
- foreach — из какого элемента будет браться информация.
- get — получение и обработка информации. Содержит значение пятого пункта, а также created_on — дата создания. В значениях этих подэлементов должны быть указаны имена тегов, которые будут парситься в получаемом из пунтка 6 документе.
.service-news2 { background-image: url(../images/services/news2.png); }
Если вы хотите получать информацию с обычных вебсайтов, а не с фидов, то необходимо править другой конфигурационный файл — название у него то же, но находится он в папке плагина Iwtst, входящего в архив. - На заключительной стадии нужно добавить в шаблоны блога необходимые теги для отображения вашей активности. В архиве с плагином есть несколько готовых примеров. А также необходимо добавить в CRON новое задание, чтобы периодически Movable Type обновлял вашу активность. В файле README.txt есть пример задания.
Скачать обновлённые файлы (config.yaml, картинки для сервисов и CSS файл), в которые уже добавлено несколько русскоязычных сервисов.
Ещё несколько примеров можно посмотреть в официальном блоге Movable Type.
Несколько скриншотов