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

Полгода назад я рассказывал о том, что Simple Tags не умеет работать с многобайтовыми символами (коими, к слову, являются русские буквы в кодировке 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.org.ua)

 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.

Добавить в закладки

Связанные записи

2
Июнь
2009

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

  1. Lecactus says:

    у меня свежая версия в поверпаке 271 лежит. а отдельно я забываю архивы выкладывать

Подписаться на RSS-ленту комментариев к статье «Simple Tags 1.6.6 и автоматические ссылки меток на русском языке» Trackback URL: http://blog.sjinks.org.ua/wordpress/plugins/566-simpletags-166-and-auto-link-tags-in-russian/trackback/

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

Вы можете использовать данные тэги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

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

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