SJ CAPTCHA Lite: невидимая защита от спама
Собрав большую статистику по спам-ботам, я решил несколько видоизменить плагин SJ CAPTCHA — причем в сторону упрощения.
Причин тому несколько:
- Проверка FCrDNS оказалась чрезмерно эффективной: да, она спасает от спам-ботов. Но, к сожалению, из-за большого радиуса кривизны рук некоторых провайдеров, которые не могут нормально PTR-записи прописать (или поставить им в соответствие A-записи), отсеиваются и вполне нормальные пользователи. Что обидно.
- Проверка A и MX-записей доменов, указанных в email, оказалась не очень эффективной: большинство спамеров хотя и используют несуществующие адреса, но указанные домены в природе всё же существуют. К тому же, реализация данной проверки не работает в Windows (особенности PHP)
- Собственно CAPTCHA оказалась очень эффективной — все «слишком умные» спамботы срезались именно на ней. К сожалению, при отключенных изображениях или использовании консольных браузеров она бесполезна. А если роль спам-бота играет человек, то она вообще никак помочь не сможет. Увы.
Сен
2008
Исправляем Event Calendar 3.1.1 RC3 своими руками
По долгу работы пришлось столкнуться в жизни с плагином Event Calendar. Скажу честно: если бы не жёсткий дедлайн, я бы не стал пытаться исправлять его и затачивать напильником под конкретные нужды, быстрее было бы переписать. Причина, по которой я не хотел бы его использовать — плагин не вышел из стадии RC3 с конца октября прошлого (2007) года и имеет одиннадцать открытых багов в багтрекере.
Сегодня я расскажу о такой интересной ошибке как "Unknown column 'wp_posts.ec3_sch.start' in 'order clause'". Далее »
Авг
2008
Использование движка WordPress без плагинов из стороннего приложения
Иногда встречаются ситуации, когда приложению нужно использовать функциональность, встроенную в WordPress, но при этом по ряду причин не хочется подключать установленные плагины. Типичным примером может являться скрипт, запускаемый cron'ом и, например, рассылающий письма подписавшимся на рассылку пользователям.
Обычно, если нужно подключить WordPress к приложению, поступают так:
require_once(WORDPRESS_DIR . '/wp-config.php');
?>
После этого приложению становятся доступны все функции/переменные WordPress. Тем не менее, у этого подхода есть недостаток: он подключает все активные плагины. Плохо это может быть тем, что каждый плагин может иметь порядочную (в смысле потребляемых ресурсов) инициализационную секцию: например, цена подключения плагина Simple Forum может быть 70 лишних запросов к базе данных. Далее »
Автор: Vladimir, опубликовано в: WordPress, комментариев: нетАвг
2008
Search Everything 4.7.1 и WordPress 2.6: отключаем поиск по старым версиям статей
В статье "Удаление старых версий статей из базы данных WordPress" я писал об особенности WordPress 2.6, а именно: о хранении старых версий статей в базе данных.
К сожалению, данная особенность WordPress очень смущает весьма популярный плагин Search Everything: при включённом поиске в тэгах или категориях из-за особенности запроса будут выдаваться статьи, помеченные как ревизии (старые версии, если говорить проще). Далее »
Автор: Vladimir, опубликовано в: Патчи, комментариев: нетАвг
2008
FormatControl — плагин для решения проблем с форматированием в WordPress
В предыдущей статье я писал про основные источники неправильной разметки в WordPress, среди которых оказалась встроенная в WordPress функция wpautop().
Для решения этой проблемы родилась идея написать плагин, который бы автоматически исправлял ошибки, вносимые функцией wpautop(). А также по возможности бы отключал её. В результате родился плагин FormatControl:
- плагин заменяет
wpautop()во всех фильтрах по умолчанию на свой (исправленный) обработчик; при этом новый фильтр не будет установлен, если какой-нибудь плагин уже убралwpautop; - плагин позволяет отключить функцию
wpautop()в пределах статьи путём задания дополнительного поляnoautopсо значением 1 (в целях совместимости с плагином WP Unformatted так же поддерживается полеsponge); - плагин позволяет отключить функцию
wptexturize()(известную по замене прямых кавычек угловыми) в пределах статьи путём задания дополнительного поляnotexturizeсо значением 1 (в целях совместимости с плагином WP Unformatted так же поддерживается полеsandpaper); - при установке своих фильтров-замен плагин добавляет их с тем же приоритетом, что был у заменяемого фильтра.
Скачать FormatControl для WordPress.
Автор: Vladimir, опубликовано в: Плагины WordPress, комментариев: 6Июл
2008
Обновление для CodeColorer 0.6.0
Стараниями Дмитрия Лялина я узнал про еще один плагин WordPress для подсветки синтаксиса — CodeColorer. Как и многие другие плагины (напрмер, WP CodeBox Эрика Вонга или мой CodeBox), CodeColorer использует в качестве движка библиотеку GeSHi. Далее »
Автор: Vladimir, опубликовано в: Плагины WordPress, комментариев: 2Июл
2008
Clicky 0.3b для WordPress и проблемы с JavaScript
В Австралии и США большой популярностью пользуется плагин Clicky — Web Analytics 2.0. Как следует из названия, Clicky является еще одним сервисом для анализа статистики веб-сайта. Судя по приведённой на сайте таблице, Clicky, образно говоря, «затыкает за пояс» даже такого конкурента, как Google Analytics.
Себе на сайты я ставить Clicky не пытался, но наблюдал его в действии в проекте, над которым работаю. Могу сказать, что сервис действительно мощный и удобный, а плагин Clicky для WordPress относится к разряду «сконфигурировал и забыл».
Всё хорошо, но по традиции есть одно «но»: если на странице используется, например, Prototype, то плагин начинает кидаться ошибками JavaScript. Далее »
Автор: Vladimir, опубликовано в: Патчи, комментариев: 1Июл
2008
CodeBox 0.5 для WordPress
В статье «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 килобайт. Работа идёт!
Автор: Vladimir, опубликовано в: Плагины WordPress, комментариев: 21Июн
2008
OneButton — улучшенный вариант ОднойКнопки
Два с половиной месяца назад я писал про альтернативную версию плагина ОднаКнопка для 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:
- Версия 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;
- появилась возможность не показывать OneButton для выбранных статей (путём добавления поля
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 бета-версией всё еще не поддерживается!
Июн
2008
Патч для WassUp 1.6
Недавно вышла очередная версия WassUp, и, что характерно, остались все старые проблемы. Для их решения готов новый патч
Но что меня очень разочаровывает, с разработчиками WassUp очень трудно разговаривать
За последние несколько месяцев я им неоднократно говорил о различных багах, но они так и остались неисправленными.
Из-за проблем с производительностью я наконец-таки снёс WassUp (слишком много переделывать, чтобы исправить все проблемы, а написан он всё же кривовато), так что данный патч будет всё же последним. Далее »
Автор: Vladimir, опубликовано в: Патчи, комментариев: 2Июн
2008

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

