Студия разработки сайтов и приложений

Netspark.ru

Заметки и разработки

OctoberCMS

Про кнопки социальных закладок

Периодически спрашивают, каким именно образом я сделал колонку социальных закладок, плавающую справа. Не могу признаться, что считаю ее верхом красоты и изящества, но раз спрашивают, имеет смысл рассказать. Рассказываю.

Первым делом я взял с Drupalcookbook.ru модуль социальных закладок Service Links с уже встроенными русскими сервисами. Многим, кстати, достаточно будет просто его установить и радоваться. Я, однако, решил добавить пару недостающих закладок, а именно — кнопки Твиттера и ВКонтакте. Добавлять в модуль Service Links новые кнопки очень легко: ищем в коде модуля вот эту строчку

// Add your own link by modifing the link below and uncomment it.
//$links['service_links_delicious'] = theme('service_links_build_link', t('Delicious'), "http://del.icio.us/post?url=$url&title=$title", t('Bookmark this post on del.icio.us.'), 'delicious.png', $nodelink);

копируем ее и вставляем рядом, изменив настройки под добавляемый сервис закладок. Для Твиттера и ВКонтакте строчки будут выглядеть вот так:

$links['service_links_twitter'] = theme('service_links_build_link', t('Twitter'), "http://twitter.com/home?status=RT @graker_ru $title: $url", t('Share on Twitter.'), 'images/twitter.png', $nodelink);
$links['service_links_vkontakte'] = theme('service_links_build_link', t('VKontakte'), "http://vkontakte.ru/share.php?url=$url&title=$title", t('Bookmark this post on vkontakte.ru.'), 'images/vkontakte.png', $nodelink);

Не забудьте подставить вместо @graker_ru нужный аккаунт.

Кстати, совсем недавно выяснилось, что в модуле Service Links не работает кнопка добавления в Яндекс.Закладки (спасибо tHe_Eney за бдительность). Так получилось, потому что Яндекс изменил URL страницы добавления. Так что если хотите пользоваться кнопкой Яндекса, исправьте ее реализацию в модуле на код:

$links['service_links_yandex'] = theme('service_links_build_link', t('Yandex'),  "http://zakladki.yandex.ru/newlink.xml?url=$url&name=$title", t('Bookmark this post on Yandex.'), 'images/yandex.png', $nodelink);

Ну а дальше я в настройках модуля включил нужные мне кнопки, выставил правильные разрешения, заменил иконки по умолчанию на другие, после чего полностью отключил в настройках модуля вывод кнопок где бы то ни было и вручную вставил его в файл шаблона node.tpl.php там, где мне нужно:

<?php if ($page): ?>
<div class="social-bookmarks-links">
    <?php /*Переменная $service_links содержит все кнопки и генерируется модулем автоматически*/ ?>
    <?php print $service_links; ?>
</div>
<?php endif; ?>

Ну а вертикальное расположение и фиксированная позиция — это чистый CSS, не мне вас учить.

Вот и все. Как видите, сделать кнопки социальных закладок в Друпале — легко. Кстати, есть и другие способы, их вы без труда найдете на сайте Drupalcookbook.ru и в прочих местах.

Комментарии