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

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

Теперь о плохом (люблю я покритиковать): код, генерируемый плагином, никуда не годится :-) , ибо генерирует он не валидирующийся (и избыточный) HTML. Честно говоря, и сам PHP-код плагина имеет некоторые проблемы: использование 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)
    {
        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. Когда дойдут руки — перепишу весь скрипт :-)

Добавить в закладки

Связанные записи

31
Март
2008

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

  1. [...] с половиной месяца назад я писал про альтернативную версию плагина ОднаКнопка для WordPress. Что же, пришла пора Русскому Программисту написать [...]

  2. alart says:

    Наконец-то нормальные закладки вместо этой россыпи дурацких иконов по всему полу поста )

  3. Легион says:

    А можно написать такой скрипт под DLE? А еще лучше код.

  4. Легион says:

    :-) , ну, покупать и ненадо, благо в сети находится большое количество нуленного скрипта. Правда, его код не имеет ничего общего с оригинальным скриптом, поэтому многие и кричат о его кривоте. Не видев оригинальный скрипт. Свой тоже дать не могу, т.к. сразу лишусь лицензии. Дело даже не в моде, а в java-скрипте. Можно создать мультидвижковый скрипт который будет работать на любом скрипте, достаточно будет лишь добавить небольшой код в шаблон, как в Одной Кнопке, и он будет обращаться к скрипту находящемся на хостинге. Так же у него будет возможность в ручную добавлять новые сервисы, и удалять старые. Вот пример такого скрипта http://web-mastery.info/scripts/javascript-83.html. Правда у него один минус, там не выпадающее меню, а просто куча кнопок. Вот если бы можно было сделать у него выпадающее меню, или создать аналогичный скрипт с выпадающим меню. К сожалению, с java у я пока проблемы. Написал что-то похожее, но получилось такое огромное и страшное, что нет смысла использовать.

  5. Dobo says:

    Здравствуйте Владимир, у меня в комплекте WP 2.7 Lecactus edition ваш плагин закладок (одной кнопкой), но у меня сайт на грузинском языке, и я вас прошу подсказать мнее какой файл нужно переделать, чтобы там на кнобку была надпис на грузинском, или хотья бы на английском (как на международном) языке (т.к. наша аудитория такая). Прошу войти в мое положение и оказать помощь.

    P.S. Не смог связатся с Вами по Skype и Gmail chat.

  6. Александр says:

    Владимир совершенно прав, с WP всегда так - нужна функциональность того или иного плагина - пиши сам.

  7. Василий says:

    Здравствуйте Владимир, скажите как можно приспособить эту кнопку для обычного сайта (не на ворд пресс)?

Подписаться на RSS-ленту комментариев к статье «Русский AddThis — одна кнопка для всех сервисов закладок» Trackback URL: http://blog.sjinks.org.ua/wordpress/plugins/61-russian-addthis-one-button-for-all-bookmark-services/trackback/

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

Вы можете использовать данные тэги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

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

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