SJ CAPTCHA Lite: невидимая защита от спама

Собрав большую статистику по -ботам, я решил несколько видоизменить SJ CAPTCHA — причем в сторону упрощения.

Причин тому несколько:

  1. Проверка FCrDNS оказалась чрезмерно эффективной: да, она спасает от спам-ботов. Но, к сожалению, из-за большого радиуса кривизны рук некоторых провайдеров, которые не могут нормально PTR-записи прописать (или поставить им в соответствие A-записи), отсеиваются и вполне нормальные пользователи. Что обидно.
  2. Проверка A и MX-записей доменов, указанных в email, оказалась не очень эффективной: большинство спамеров хотя и используют несуществующие адреса, но указанные домены в природе всё же существуют. К тому же, реализация данной проверки не работает в Windows (особенности PHP)
  3. Собственно оказалась очень эффективной — все «слишком умные» спамботы срезались именно на ней. К сожалению, при отключенных изображениях или использовании консольных браузеров она бесполезна. А если роль спам-бота играет человек, то она вообще никак помочь не сможет. Увы.

Далее »

Автор: , опубликовано в: Плагины WordPress, комментариев: 23
6
Сен
2008

Исправляем Event Calendar 3.1.1 RC3 своими руками

По долгу работы пришлось столкнуться в жизни с плагином Event Calendar. Скажу честно: если бы не жёсткий дедлайн, я бы не стал пытаться исправлять его и затачивать напильником под конкретные нужды, быстрее было бы переписать. Причина, по которой я не хотел бы его использовать —  не вышел из стадии RC3 с конца октября прошлого (2007) года и имеет одиннадцать открытых багов в багтрекере.

Сегодня я расскажу о такой интересной ошибке как "Unknown column 'wp_posts.ec3_sch.start' in 'order clause'". Далее »

Автор: , опубликовано в: Патчи, комментариев: нет
28
Авг
2008

Использование движка WordPress без плагинов из стороннего приложения

Иногда встречаются ситуации, когда приложению нужно использовать функциональность, встроенную в , но при этом по ряду причин не хочется подключать установленные плагины. Типичным примером может являться скрипт, запускаемый cron'ом и, например, рассылающий письма подписавшимся на рассылку пользователям.

Обычно, если нужно подключить WordPress к приложению, поступают так:

[-]
View Code PHP
< ?php
    require_once(WORDPRESS_DIR . '/wp-config.php');
?>

После этого приложению становятся доступны все функции/переменные WordPress. Тем не менее, у этого подхода есть недостаток: он подключает все активные плагины. Плохо это может быть тем, что каждый может иметь порядочную (в смысле потребляемых ресурсов) инициализационную секцию: например, цена подключения плагина Simple Forum может быть 70 лишних запросов к базе данных. Далее »

Автор: , опубликовано в: WordPress, комментариев: нет
22
Авг
2008

Search Everything 4.7.1 и WordPress 2.6: отключаем поиск по старым версиям статей

В статье "Удаление старых версий статей из базы данных WordPress" я писал об особенности 2.6, а именно: о хранении старых версий статей в базе данных.

К сожалению, данная особенность WordPress очень смущает весьма популярный : при включённом поиске в тэгах или категориях из-за особенности запроса будут выдаваться статьи, помеченные как ревизии (старые версии, если говорить проще). Далее »

Автор: , опубликовано в: Патчи, комментариев: нет
12
Авг
2008

FormatControl — плагин для решения проблем с форматированием в WordPress

В предыдущей статье я писал про основные источники неправильной разметки в WordPress, среди которых оказалась встроенная в функция ().

Для решения этой проблемы родилась идея написать , который бы автоматически исправлял ошибки, вносимые функцией wpautop(). А также по возможности бы отключал её. В результате родился плагин :

  • плагин заменяет wpautop() во всех фильтрах по умолчанию на свой (исправленный) обработчик; при этом новый фильтр не будет установлен, если какой-нибудь плагин уже убрал wpautop;
  • плагин позволяет отключить функцию wpautop() в пределах статьи путём задания дополнительного поля noautop со значением 1 (в целях совместимости с плагином WP Unformatted так же поддерживается поле sponge);
  • плагин позволяет отключить функцию wptexturize() (известную по замене прямых кавычек угловыми) в пределах статьи путём задания дополнительного поля notexturize со значением 1 (в целях совместимости с плагином WP Unformatted так же поддерживается поле sandpaper);
  • при установке своих фильтров-замен плагин добавляет их с тем же приоритетом, что был у заменяемого фильтра.

Скачать FormatControl для WordPress.

Автор: , опубликовано в: Плагины WordPress, комментариев: 6
7
Июл
2008

Обновление для CodeColorer 0.6.0

Стараниями Дмитрия Лялина я узнал про еще один для подсветки синтаксиса — CodeColorer. Как и многие другие плагины (напрмер, WP CodeBox Эрика Вонга или мой CodeBox), CodeColorer использует в качестве движка библиотеку GeSHi. Далее »

Автор: , опубликовано в: Плагины WordPress, комментариев: 2
6
Июл
2008

Clicky 0.3b для WordPress и проблемы с JavaScript

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

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

Всё хорошо, но по традиции есть одно «но»: если на странице используется, например, , то плагин начинает кидаться ошибками . Далее »

Автор: , опубликовано в: Патчи, комментариев: 1
1
Июл
2008

CodeBox 0.5 для WordPress

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

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

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

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

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

Автор: , опубликовано в: Плагины WordPress, комментариев: 21
22
Июн
2008

OneButton — улучшенный вариант ОднойКнопки

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

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

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

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

Установка

Копируете файл onebutton.zip в каталог с плагинами (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).
  • Версия 0.3b3:
    • добавлены сервисы: Connotea, Bibsonomy, Trucking Bookmarks, Коммунизм и UCA закладки в UA.IX;
    • появилась возможность не показывать для выбранных статей (путём добавления поля disable_onebutton с ненулевым значением);
    • добавлена поддержка отключения иконок сервисов закладок.
  • Версия 1.0b:
    • добавлены сервисы: Slashdot, Magnolia, Blogmarks, Current, Meneame, Oknotizie, Diigo, Funp, Hugg, dealspl.us, N4G, Mister Wong, Faves, Yigg, Fresqui, Care2, Kirtsy, Sphinn;
    • добавлена возможность активации OneButton по клику (а не по наведению), создания списка сервисов при помощи JavaScript, сортировка сервисов закладок;
    • переделан интерфейс администратора, добавлена возможность редактировать существующие сервисы (добавление и удаление будут в 1.0);
    • для уменьшения задержки при отрисовки страницы внешние JavaScript-файлы добавляются в самый низ страницы (тема должна иметь вызов wp_footer(););
    • добавлена возможность помещения OneButton в любое место шаблона путём вызова функции insert_onebutton();
    • JavaScript-версия кнопки позволяет задавать тэги и описание (помимо названия и адреса);
    • много всего было переписано;
    • PHP4 бета-версией не поддерживается!
  • Версия 1.0.2b:
    • добавлен сервис SaveThis.ru;
    • исправлена с названием/описанием статей при использовании OneButton не на is_singular()-страницах (спасибо bruha за сообщение об ошибке);
    • исправлена ошибка с некорректным отображением состояния при сохранении настроек (спасибо Алексею);
    • PHP4 бета-версией всё еще не поддерживается!
Если при активации плагина появляется ошибка:
[-]
View Code Text
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or ‘}’ in /wp-content/plugins/onebutton/onebutton.php on line 15
То вам нужно скачать OneButton 0.3b3 для PHP 4. А еще лучше — попросить хостера обновиться до PHP 5, ибо PHP 4 больше не поддерживается разработчиками и не получает критических обновлений безопасности.
Автор: , опубликовано в: Плагины WordPress, комментариев: 348
21
Июн
2008

Патч для WassUp 1.6

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

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

Автор: , опубликовано в: Патчи, комментариев: 2
20
Июн
2008