Simple Tags 1.6.6 и автоматические ссылки меток на русском языке

Время идёт, проблемы остаются…

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

Так сложилось, что именно сегодня я решил обновить . Патчить код было лень, я надеялся, что у Lecactus’а лежит пропатченная свежая версия. Увы, только 1.6.3.

Для тех, кто больше любит патчи (unified diff):

[-]
Download simple-tags.php
diff -uwdBrN simple-tags/simple-tags.php simple-tags.new/simple-tags.php
--- simple-tags/simple-tags.php 2009-04-22 10:22:28.000000000 -0400
+++ simple-tags.new/simple-tags.php     2009-06-01 21:50:20.000000000 -0400
@@ -3,7 +3,7 @@
 Plugin Name: Simple Tags
 Plugin URI: http://wordpress.org/extend/plugins/simple-tags
 Description: Simple Tags : Extended Tagging for WordPress 2.3, 2.5, 2.6 and 2.7 ! Autocompletion, Suggested Tags, Tag Cloud Widgets, Related Posts, Mass edit tags !
-Version: 1.6.6
+Version: 1.6.6.1
 Author: Amaury BALMER
 Author URI: http://www.herewithme.fr

@@ -22,6 +22,7 @@
 Contributors:
 - Kevin Drouvin (kevin.drouvin@gmail.com - http://inside-dev.net)
 - Martin Modler (modler@webformatik.com - http://www.webformatik.com)
+- Vladimir Kolesnikov (vladimir at extrememember dot com - http://blog.sjinks.pro)

 Todo:
        Admin
@@ -30,25 +31,6 @@
                - Verifier la case du remplacement par les liens
 */

-// Check version.
-global $wp_version;
-if ( strpos($wp_version, '2.7') !== false || strpos($wp_version, '2.8') !== false  ) {
        require(dirname(__FILE__).'/2.7/simple-tags.client.php');
-} elseif ( strpos($wp_version, '2.5') !== false || strpos($wp_version, '2.6') !== false  ) {
-       require(dirname(__FILE__).'/2.5/simple-tags.client.php');
-} elseif ( strpos($wp_version, '2.3') !== false ) {
-       require(dirname(__FILE__).'/2.3/simple-tags.client.php');
-} elseif ( strpos($wp_version, '2.2') !== false || strpos($wp_version, '2.1') !== false || strpos($wp_version, '2.0') !== false ) {
-       add_action('admin_notices', 'simple_tagging_warning');
-} else {
-       add_action('admin_notices', 'simple_tags_warning');
-}

-function simple_tagging_warning() {
-       echo '<div class="updated fade"><p><strong>'.__('Simple Tags can\'t work with this WordPress version !', 'simpletags').'</strong> '.sprintf(__('You must use <a href="%1$s">Simple Tagging Plugin</a> for it to work.', 'simpletags')
, 'http://wordpress.org/extend/plugins/simple-tagging-plugin/').'</p></div>';
-}
-
-function simple_tags_warning() {
-       echo '<div class="updated fade"><p><strong>'.__('Simple Tags can\'t work with this WordPress version !', 'simpletags').'</strong></p></div>';
-}
 ?>
\ No newline at end of file
[-]
View Code Diff
diff -uwdBrN simple-tags/2.7/simple-tags.client.php simple-tags.new/2.7/simple-tags.client.php
--- simple-tags/2.7/simple-tags.client.php      2009-04-22 10:22:28.000000000 -0400
+++ simple-tags.new/2.7/simple-tags.client.php  2009-06-01 22:02:04.000000000 -0400
@@ -1,6 +1,6 @@
 <?php
 class SimpleTags {
-       var $version = '1.6.6';
+       var $version = '1.6.6.1';

        var $info;
        var $options;
@@ -274,8 +274,9 @@

                        foreach ( (array) $link_tags as $term_name => $term_link ) {
                                $filtered = ""; // will filter text token by token
-                               $match = "/\b" . preg_quote($term_name, "/") . "\b/".$case;
-                               $substitute = '<a href="'.$term_link.'" class="st_tag internal_tag" '.$rel.' title="'. attribute_escape( sprintf( __('Posts tagged with %s', 'simpletags'), $term_name ) )."\">$0</a>";
+                               $quoted = preg_quote($term_name, "/");
+                               $match = "/(\PL|\A)(" . preg_quote($term_name, "/") . ")(\PL|\Z)/u".$case;
+                               $substitute = '$1<a href="'.$term_link.'" class="st_tag internal_tag" '.$rel.' title="'. attribute_escape( sprintf( __('Posts tagged with %s', 'simpletags'), $term_name ) )."\">$2</a>$3";

                                // for efficiency only tokenize if forced to do so
                                if ( $must_tokenize ) {

Для тех, кто предпочитает готовое: скачать исправленную версию плагина Simple Tags 1.6.6 для WordPress.

Вложения:

Автор: ; опубликовано в: Патчи, Плагины WordPress; метки: Simple Tags, utf8, WordPress, ошибка, патч, плагин
2
Июн
2009

RSS Комментарии к статье «Simple Tags 1.6.6 и автоматические ссылки меток на русском языке» (23)  »

  1. Странное дело: ставлю на мой блог этот плагин самой свежей версии и он работает, но русифицировать я его не могу – не получается. Вроде меняю английские слова на русские, а выводятся всё равно английские. Ладно, удалила свежую версию и поставила 1.6.4 – вдруг пропал весь сайдбар! Удалила старый плагин и восстановила код – всё стало нормально. Что я делаю не так? Или для моего шаблона этот плагин не подходит?

  2. Поставила Вашу версию плагина, вроде установилось всё нормально. Но… Есть вопросы.

    1. В каком файле плагина можно изменить английские слова на русские? Спрашиваю потому, что не получалось до этого так сделать, наверное делала неправильно.

    2. Как добавлять метки? У меня стоит Кумулус, но теперь в админке блога он пропал (хотя на самом блоге облако меток имеется). Раньше через него добавляла метки, а теперь как?

      1. По-хорошему нужно редактировать .po-файл, потом из него генерировать .mo-файл. Подробности в Кодексе WordPress. Не получаться могло из-за того, что в плагине присутствует ошибка, из-за которой он не может подгрузить языковые файлы.
      2. Я WP Cumulus не пользовался, трудно сказать, в чём причина. А для добавления меток можно использовать Posts » Post Tags (/wp-admin/edit-tags.php?taxonomy=post_tag).
  3. Спасибо за помощь! Только я с английским не очень (если честно, то вообще никак). Да и в правке кода могу только сына попросить помочь, а он тоже не всё может…

    Ещё раз спасибо!

Пожалуйста, не используйте эту форму для комментирования! Данная форма предназначена исключительно для ботов.

Оставить комментарий к записи «Simple Tags 1.6.6 и автоматические ссылки меток на русском языке»

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

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

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

गते गते पारगते पारसंगते बोधि स्वाहा