Русский AddThis — одна кнопка для всех сервисов закладок

Альтернативная версия плагина ОднаКнопка для WordPress

Сайт odnaknopka.ru предлагает для загрузки widget для , который позволяет использовать одну-единственную кнопку для добавления статьи в один из многих сервисов закладок (русский вариант AddThis!). Plugin для доступен для скачивания со страницы сайта.

Теперь о плохом (люблю я покритиковать): код, генерируемый плагином, никуда не годится :-) , ибо генерирует он не валидирующийся (и избыточный) HTML. Честно говоря, и сам -код плагина имеет некоторые проблемы: использование htmlspecialchars() для априорно неизвестной кодировки (WordPress можно сконфигурировать для использования практически любой кодировки) не является самым удачным решением.

По традиции, я решил переписать код:

[-]
View Code PHP
<?php
class widget_odnaknopka {
    function widget_odnaknopka()
    {
        add_filter('the_content',array(&$this, 'odnaknopka'));
        add_action('wp_head', array(&$this, 'action_head'));
    }

    function odnaknopka($content)
    {
        $url = get_permalink();
        $title = get_the_title();
        return $content . '<span class="odnaknopka"><script type="text/javascript">okbm("'.wp_specialchars($url).'","'.wp_specialchars($title).'")</script></span>';
    }

    function action_head()
    {
        print '<script src="http://odnaknopka.ru/wp/ok2.utf8.js" type="text/javascript"></script>';
    }
}

$widget = new widget_odnaknopka();
?>

Так мне он нравится больше :-)

Замечания:

  • кнопка, генерируемая скриптом, помещается не внутрь элемента <div>, как это было в оригинале (так как это конфликтует с автоматической генерацией тэгов <p> WordPress), а в <span class="odnaknopka">. Поэтому придётся немного изменить CSS, например, так:
    [-]
    View Code CSS
    span.odnaknopka {
        display: block;
        margin: .5em 0;
    }
  • имя скрипта (ok2.utf8.js) в функции widget_odnaknopka::action_head() придётся поменять для другого внешнего вида кнопки (на данный момент, сайт предоставляет три варианта кнопок) и кодировки.

Есть еще один нехороший момент — скрипт (okx.xxx.js) использует метод document.write() для добавления кнопки в HTML-код, что может не работать, если HTML отдаётся как application/xhtml+xml. Когда дойдут руки — перепишу весь скрипт :-)

Автор: ; опубликовано в: Патчи, Плагины WordPress; метки: PHP, WordPress, плагин
31
Мар
2008

RSS Комментарии к статье «Русский AddThis — одна кнопка для всех сервисов закладок» (19)  »

  1. SpyMan

    Спасибо за статью, интересный блог, добавил в закладки!

  2. Warez

    Спасибо, как раз друг спрашивал о подобном, поделюсь с ним ссылкой…

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

Оставить комментарий к записи «Русский AddThis — одна кнопка для всех сервисов закладок»

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Оставляя комментарий, вы выражаете своё согласие с Правилами комментирования.

Подписаться, не комментируя

गते गते पारगते पारसंगते बोधि स्वाहा