Facebook, Google +1, Twitter, ВКонтакте — как добавить эти кнопки этих сервисов

Периодически в форуме и других местах возникают вопросы, как добавить кнопки различных социальных сетей и сервисов к своему блогу и нужны ли для этого какие-нибудь плагины. В этом посте я расскажу о принципе добавления различных кнопок расшаривания. Всё очень просто.

Многие ориентируются на другие платформы, где для любого изменения нужен плагин или другое расширение. Но в Movable Type всё гораздо проще, поскольку большинство задач реализуется при помощи языка шаблонов, который, как известно, не сложнее обычного HTML.

Возьмём для примера кнопку Твиттера, которую необходимо разместить под каждым постом. Стандартный код выглядит так:

<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" data-lang="ru">Твитнуть</a>
<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>

Если разместить несколько таких кнопок на странице, то при клике на любую из кнопок будет добавляться текущая открытая страница. Поэтому подобный код не подходит, нужно добавить в него данные о расшариваемой странице. Все дополнительные параметры доступны на странице для разработчиков. Находим там самые необходимые параметры — url и text — и добавляем их к вышеприведённому коду:

<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" data-lang="ru" data-url="<mt:EntryPermalink/>" data-text="<mt:EntryTitle encode="html"/>">Твитнуть</a>
<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>

Теперь можно добавлять этот код к каждой записи, кнопка появится и будет содержать уникальные данные для каждой записи (адрес записи и её название). Обратите внимание, что здесь для имени записи добавлен атрибут encode_html. Это нужно для того, чтобы не возникало ошибок, если в имени записи будут кавычки. Также для некоторых данных могут понадобиться другие модификаторы, например, encode_url.

Также обратите внимание, что необязательно размещать Javascript-код вызова около каждой кнопки, достаточно разместить его один раз между тегами head.

Аналогичным образом добавляются и все остальные кнопки. Как пример, недавняя тема в форуме, где есть код для ВКонтакте.

Комментариев: 4

Пример кода целиком не уместился в сообщении. Может, стоит его взять в какой-нить контейнер? А то сообщение прочитал, но в чем разница - сразу не понял :)

Ага, вроде скролл есть, а скопировать непросто. Вот готовый пример, раскрашенный даже:
http://movable-type.ru/uploads/2011/07/twitter.html

>> Пример кода целиком не уместился в сообщении

Надо файл стиля подправить, например, так:

http://www.dmitrijev.ru/2011/06/tegi-code-i-blockquote.php

Спасибо. Когда-то тут было подобное, но со сменой стиля куда-то потерялось. Надо бы унифицировать стили и добавить подобные правила.

Комментировать

Статистика

Яндекс.Метрика

Последние записи

  • Facebook, Google +1, Twitter, ВКонтакте — как добавить эти кнопки этих сервисов

    Периодически в форуме и других местах возникают вопросы, как добавить кнопки различных социальных сетей и сервисов к своему блогу и нужны ли для этого какие-нибудь...

  • Movable Type на GitHub: что происходит и что будет

    В конце мая я сообщил, что Movable Type полностью перебрался на GitHub, что позволило быстрее обновлять дистрибутив. Кроме того, все изменения, которые есть в русской...

  • Movable Type 4.37 и 5.12

    Разработчики всерьёз взялись за поиск и устранение возможных уязвимостей (о чём они объявили в Пронете), поэтому встречайте новый релиз обеих веток. При определённых обстоятельствах пользователь,...

  • Movable Type 4.361 и Movable Type 5.11

    Вышло обновление сразу для двух веток Movable Type, включающее исправление проблем с безопасностью (при определённых условиях посторонний человек мог читать, создавать или изменять контент в...

  • Movable Type 5.1: обновлённый интерфейс и новые возможности

    Русская версия Movable Type готова. Вы можете скачать её прямо сейчас, а затем ознакомиться со списком изменений. Скачать Movable Type 5.1: В zip-архиве Или в...

Закрыть