Русский AddThis — одна кнопка для всех сервисов закладок
Альтернативная версия плагина ОднаКнопка для WordPress
Сайт odnaknopka.ru предлагает для загрузки widget для WordPress, который позволяет использовать одну-единственную кнопку для добавления статьи в один из многих сервисов закладок (русский вариант AddThis!). Plugin для WordPress доступен для скачивания со страницы сайта.
Теперь о плохом (люблю я покритиковать): код, генерируемый плагином, никуда не годится
, ибо генерирует он не валидирующийся (и избыточный) HTML. Честно говоря, и сам PHP-код плагина имеет некоторые проблемы: использование htmlspecialchars() для априорно неизвестной кодировки (WordPress можно сконфигурировать для использования практически любой кодировки) не является самым удачным решением.
По традиции, я решил переписать код:
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 CSSspan.odnaknopka {
display: block;
margin: .5em 0;
} - имя скрипта (ok2.utf8.js) в функции
widget_odnaknopka::action_head()придётся поменять для другого внешнего вида кнопки (на данный момент, сайт предоставляет три варианта кнопок) и кодировки.
Есть еще один нехороший момент — скрипт (okx.xxx.js) использует метод document.write() для добавления кнопки в HTML-код, что может не работать, если HTML отдаётся как application/xhtml+xml. Когда дойдут руки — перепишу весь скрипт
Связанные записи
Автор: Vladimir; опубликовано в: Патчи, Плагины WordPress; метки: PHP, WordPress, плагинМарт
2008
Комментарии к статье «Русский AddThis — одна кнопка для всех сервисов закладок» (13) »
Оставить комментарий к записи «Русский AddThis — одна кнопка для всех сервисов закладок»
Вы должны быть авторизованы, чтобы иметь возможность оставить комментарий.

Меня зовут Владимир, я программист-фрилансер, специализирующийся на Web-программировании и програмировании под Linux.
По совместительству занимаюсь администрированием LAMP/LNMP-серверов и техническим переводом.






[...] с половиной месяца назад я писал про альтернативную версию плагина ОднаКнопка для WordPress. Что же, пришла пора Русскому Программисту написать [...]
Наконец-то нормальные закладки вместо этой россыпи дурацких иконов по всему полу поста )
А можно написать такой скрипт под DLE? А еще лучше код.
Я с DLE не знаком… А покупать скрипт ради того, чтобы написать плагин — это не по мне
Здравствуйте Владимир, у меня в комплекте WP 2.7 Lecactus edition ваш плагин закладок (одной кнопкой), но у меня сайт на грузинском языке, и я вас прошу подсказать мнее какой файл нужно переделать, чтобы там на кнобку была надпис на грузинском, или хотья бы на английском (как на международном) языке (т.к. наша аудитория такая). Прошу войти в мое положение и оказать помощь.
P.S. Не смог связатся с Вами по Skype и Gmail chat.
Владимир совершенно прав, с WP всегда так – нужна функциональность того или иного плагина – пиши сам.
Здравствуйте Владимир, скажите как можно приспособить эту кнопку для обычного сайта (не на ворд пресс)?
Василий, Вам сюда.
Здравствуйте. Скажите, пожалуйста, что нужно сделать, чтобы кнопка была только в полной статье, а в анонсе её не было.
ОднаКнопка? Размещайте её только в шаблонах
single.phpиpage.php.Не понял. Я установил плагин. Кнопка есть в анонсе, хотелось чтобы её там не. Сами посмотрите.
Тогда отключить плагин и разместить ссылку на скрипт в single.php и page.php? Или как? Заранее спасибо.
Плагин придётся снести. Он, собственно, и не нужен.
В шаблон
header.phpдобавляете такую строку:В шаблоны
single.php/page.phpв нужное место добавляете такой код:<script type="text/javascript">okbm("<?php echo esc_js(get_permalink()); ?>", "<?php echo esc_js(get_the_title()); ?>");</script>
</span>
Всё!