Ars Longa, Vita Brevis

В Австралии и США большой популярностью пользуется плагин Clicky — Web Analytics 2.0. Как следует из названия, Clicky является еще одним сервисом для анализа статистики веб-сайта. Судя по приведённой на сайте таблице, Clicky, образно говоря, "затыкает за пояс" даже такого конкурента, как Google Analytics.

Себе на сайты я ставить Clicky не пытался, но наблюдал его в действии в проекте, над которым работаю. Могу сказать, что сервис действительно мощный и удобный, а плагин Clicky для WordPress относится к разряду "сконфигурировал и забыл".

Всё хорошо, но по традиции есть одно "но": если на странице используется, например, Prototype, то плагин начинает кидаться ошибками JavaScript. Читать статью «Clicky 0.3b для WordPress и проблемы с JavaScript» полностью…

В статье "CodeBox: подсветка синтаксиса для WordPress" я говорил, что вместо того, чтобы постоянно исправлять старые и новые баги в плагине WP CodeBox, я сделал форк, который будет жить своей жизнью, но при этом будет совместимым с WP CodeBox, чего бы Eric Wang там ни творил.

Обещания, как говорится, нужно держать :-) Сегодня у меня выдались пять часов свободного времени, и я занялся доработкой/исправлением плагина. Фактически, из исходного кода остались только имена параметров, всё остальное было переписано в "родном, мудром, обьектно-ориентированном" стиле.

В результате получился CodeBox 0.5 (функционально соответствующий WP CodeBox 1.2.2.1). К версии 1.0 планирую довести до ума поддержку TinyMCE (в своё время несовместимость WP CodeBox с TinyMCE привела к тому, что я не использую WYSIWYG), поменять кое-что в JavaScript, добавить новые опции и т.п. Поддержка интернационализации уже есть, осталось заняться переводом :-) Как говорится, планов очень много, где бы время взять?

Скачать CodeBox 0.5 для WordPress.

PS - по сравнению с предыдущей версией, плагин "похудел" практически на 200 килобайт. Работа идёт!

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

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

Достоинства:

  • не требует внешних скриптов (всё, что нужно для работы, присутствует на сервере);
  • запросы отсылаются непосредственно сервису закладок и никуда более — если у Вас паранойя, Вам это понравится (ОднаКнопка отсылает их еще и на свой сервер);
  • для отображения бокса с сервисами закладок используется XHTML-шаблон, который пользователь может переделать по своему вкусу;
  • очень легко добавлять новые сервисы закладок;
  • поддерживается больше сервисов закладок;
  • для добавления статьи (которая отображается шаблоном single.php) в сервис закладок не требуется поддержка JavaScript (любители Lynx, специально для вас);
  • все иконки сервисов закладок хранятся в одном файле (техника, известная как CSS rollovers); как следствие, для загрузки всех иконок требуется один запрос, а не двадцать четыре;
  • zero configuration — поставил и забыл.

Установка

Копируете файл onebutton.zip в каталог с плагинами WordPress (wp-content/plugins), разархивируете, после чего активируете в wp-admin/plugins.php.

Скачать плагин OneButton for WordPress.

История изменений:

  • Версия 0.2:

    • поддержка интернационализации;
    • поправлены иконки и недочеты в разметке (bersy, большое спасибо!);
    • улучшена поддержка Internet Explorer 6 (как я его не люблю!).
  • Версия 0.2.1:

    • добавлены новые сервисы закладок (RuCity, LinkStore, NewsLand);
    • исправлены потенциальные проблемы с форматированием (Настя, Alex, спасибо за тестирование!);
    • улучшена поддержка Internet Explorer 6 (как я его не люблю!).
  • Версия 0.3b — Alex, спасибо за идеи:

    • возможность открывать сервисы в новом окне (путём добавления в ссылку target="blank");
    • возможность добавлять отключать rel="nofollow" в ссылке на сервис;
    • возможность показывать кнопку только в полной версии статьи/страницы (в этом случае не подгружается ненужный более JavaScript — минус один запрос);
    • кнопка не должна попадать в фид или трэкбэк;
    • возможность выбора показываемых сервисов закладок.
  • Версия 0.3b2:

    • добавлены сервисы Lopas и Закладки I.UA (подсмотрено здесь);
    • автоматическое использование описания (мета-тэг description статьи) и тэгов (tags + category) для сервисов, которые это поддерживают (Закладки I.UA, Blink, Simpy, Spurl, Текст 2.0, RuCity).
Июнь 20, 2008

Патч для WassUp 1.6

Рубрика: Патчи
Метки: , , , , , ,
Vladimir

Недавно вышла очередная версия WassUp, и, что характерно, остались все старые проблемы. Для их решения готов новый патч :-) Но что меня очень разочаровывает, с разработчиками WassUp очень трудно разговаривать :-( За последние несколько месяцев я им неоднократно говорил о различных багах, но они так и остались неисправленными.

Из-за проблем с производительностью я наконец-таки снёс WassUp (слишком много переделывать, чтобы исправить все проблемы, а написан он всё же кривовато), так что данный патч будет всё же последним. Читать статью «Патч для WassUp 1.6» полностью…

Меня всегда интересовало, насколько эффективно WordPress работает с базой данных, и насколько хорошо спроектирована база данных.

Практически в каждом проекте, над которым я работаю, я использую те или иные средства для анализа производительности скрипта и поиска его слабых мест. Для разработчиков не является секретом, что во многих случаях плохая производительность работы скрипта обусловлена низкой производительностью SQL-запросов. И, как правило, низкое быстродействие запросов связано с их неоптимальностью (что включает в себя отсутствие необходимых индексов в базе данных).

Однажды столкнувшись с ужасной производительностью WordPress и не имея возможности анализировать код десятка поставленных плагинов, я стал решать задачу иначе, в результате чего родился плагин для анализа SQL-запросов. Читать статью «SqlMon: плагин для анализа SQL-запросов» полностью…

Решив уделить пару часов оптимизации своего собственного блога, я с удивлением обнаружил, что страница может генерироваться несколько секунд (!). Отойдя от шока и выяснив, в чем там дело (этому можно будет посвятить отдельную статью), я быстро разобрался с запросами к базе данных и уменьшил общее время запросов в среднем до одной секунды (ну медленный у меня сервер).

Тем не менее, это заставило меня задуматься о том, как WordPress использует собственный кэш и что можно сделать, чтобы улучшить производительность. Читать статью «WP File Cache: замена WP_Object_Cache с поддержкой долговременного кэширования» полностью…

Небольшой плагин для любителей HTTPS — помещает панель управления WordPress (админку, если по-русски) за HTTPS. Shane, специально для тебя! :-)

Возможно, кому-нибудь даже пригодится. Скачать WP Secure Admin.

Update: специальный бонус: плагин WP Secure Login — безопасный логин/регистрация/восстановление пароля. Скачать WP Secure Login.

Июнь 1, 2008

Патч для WP WassUp 1.5.1

Рубрика: PHP, Патчи
Метки: , , , , ,
Vladimir

Сегодня явно день патчей :-)

Полтора месяца назад я уже писал про замечательный плагин Wassup, а также о его нелюбви к Windows. Помимо этой ошибки, я обратил внимание на нелюбовь плагина к строкам, состоящим из многобайтных символов (например, UTF-8).

Сегодняший патч исправляет:

  • проблему с разделителями каталогов (традиционно);
  • мелкие ошибки, связанные с невалидностью генерируемого HTML-кода;
  • добавляет поддержку строк, состоящим из многобайтных символов (поддержка таких строк требует наличия активированного расширения PHP mb_string);
  • добавляет rel="nofollow" к ссылкам в блоках типа 'Top 5 Referrers', 'Top 5 Search Terms'.

Скачать патч в формате unified diff.

Патч нужно применить рекурсивно к каталогу /wp-content/plugins/wassup.

Как-то на досуге я занялся анализом приходящего спама и обратил внимание, что практически 98% спама в комментариях приходят с IP-адресов, замеченных в рассылке спама по электронной почте. А спамеры обычно попадают в черные списки (blacklist).

DNSBLDNS blacklist или DNS blocklist — списки хостов, хранимые с использованием системы архитектуры DNS. Обычно используются для борьбы со спамом. Почтовый сервер обращается к DNSBL, и проверят в нём наличие IP-адреса клиента, с которого он принимает сообщение. При положительном ответе считается, что происходит попытка приёма спам-сообщения, и оно блокируется (не принимается сервером, и, как правило, отправителю отсылается уведомление об этом).

Идея состоит в том, чтобы написать расширение для WordPress, проверяющее наличие IP-адреса комментатора в чёрном списке. Читать статью «Использование DNSBL для борьбы со спамом в комментариях» полностью…

Сегодня я установил русифицированную версию плагина Subscribe to Comments 2.1.2 и с удивлением обнаружил, что русификация-то и не работает (хотя языковые файлы присутствуют).

На сайте, с которого я скачал эту русифицированную версию, утверждается, что Проверена совместимость до версии WP: 2.3.3, поэтому вполне возможно, что проблема возникла в WordPress 2.5. Я не буду это утверждать наверняка, ибо с gettext я знаком весьма поверхностно. Читать статью «Патч для Subscribe to Comments 2.1.2» полностью…

Апр 13, 2008

Патч для WassUp 1.5 for WordPress

Рубрика: Патчи
Метки: , , , , ,
Vladimir

Ранее я уже писал про замечательный плагин Wassup, а также о его нелюбви к Windows. Вышла версия 1.5, а баг (увы!) не поправили.

Скачать патч в формате unified diff.
Патч нужно применить к файлу /wp-content/plugins/wassup/lib/action.php.

Как и в прошлый раз, помимо исправления ошибки с разделителями каталогов, патч исправляет небольшую ошибку, связанную с невалидностью (инвалидностью?) генерируемого (X)HTML-кода.

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

На Wordpress.org есть примерно с десяток плагинов для отсеивания спам-ботов, но использование чужого кода — это не наш метод, поэтому коллекция плагинов пополняется еще одним :-) Читать статью «Спамеры просто достали, или, Еще одна CAPTCHA для WordPress» полностью…

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

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

Скачать патч в формате unified diff.

Иногда встречаются люди, повёрнутые на валидности (X)HTML/CSS. Что уж греха таить, я и сам такой временами :-)
Для подсветки синтаксиса я пользуюсь плагином WP-CodeBox. Хорошая вещь, но у него есть один маленький недостаток: разметка, которую он генерирует (и CSS, который он использует, но это другая история), не валидируется. Читать статью «Патч для WP CodeBox для Valid XHTML» полностью…