Simple Tags 1.7.4.4: The New Bugs

Исправляем старые и новые ошибки

Сегодня наконец-то появилось время обновить старые плагины; в их числе оказался и . Честно говоря, версия 1.7.4.4 меня разочаровала: автор сломал автоматические ссылки меток. Теперь они не работают даже для английского языка.

Резюмируя: в данной версии нужно исправить:

Проблема с автоматическими ссылками возникла из-за невнимательности автора:

[-]
Download simple-tags.diff
    $this->randomArray($this->link_tags);

    //...
               
    // only continue if the database actually returned any links
    if ( isset($link_tags) && is_array($link_tags) && count($link_tags) > 0 ) {

Метод randomArray() теперь не возвращает массив (как это было в предыдущих версиях плагина), а изменяет тот массив, который передан ему в параметрах ($this->link_tags). Но если раньше результат $this->randomArray($this->link_tags) присваивался переменной $link_tags, то теперь эта переменная исчезла, и условие в if теперь всегда ложно.

для плагина (unified diff):

[-]
View Code Diff
diff -uwdBrN simple-tags/inc/client.php simple-tags.new/inc/client.php
--- simple-tags/inc/client.php  2010-03-23 14:01:55.000000000 +0200
+++ simple-tags.new/inc/client.php  2010-03-23 15:14:40.000000000 +0200
@@ -122,8 +122,8 @@
        }
       
        // Shuffle array
-       $this->randomArray($this->link_tags);
-      
+       $link_tags = $this->link_tags;
+       $this->randomArray($link_tags);
       
        // HTML Rel (tag/no-follow)
        $rel = $this->buildRel( $this->options['no_follow'] );
@@ -157,8 +157,9 @@
                }
               
                $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="'. esc_attr( sprintf( __('Posts tagged with %s', 'simpletags'), $term_name ) )."\">$0</a>";
+               $quoted = preg_quote($term_name, "/");
+               $match = '/(\PL|\A)(' . $quoted . ')(\PL|\Z)/u'.$case;
+               $substitute = '$1<a href="'.$term_link.'" class="st_tag internal_tag" '.$rel.' title="'. esc_attr( sprintf( __('Posts tagged with %s', 'simpletags'), $term_name ) )."\">$2</a>$3";
               
                // for efficiency only tokenize if forced to do so
                if ( $must_tokenize ) {
diff -uwdBrN simple-tags/inc/inc.functions.php simple-tags.new/inc/inc.functions.php
--- simple-tags/inc/inc.functions.php   2010-03-23 14:01:55.000000000 +0200
+++ simple-tags.new/inc/inc.functions.php   2010-03-23 15:09:06.000000000 +0200
@@ -4,6 +4,7 @@
  *
  */
 function SimpleTags_Install() {
+   register_uninstall_hook (dirname(__FILE__) . '/simple-tags.php', 'SimpleTags_Uninstall' );
    $options_from_table = get_option( STAGS_OPTIONS_NAME );
    if ( $options_from_table == false ) {
        $options = (array) include( dirname(__FILE__) . '/default.options.php' );
diff -uwdBrN simple-tags/simple-tags.php simple-tags.new/simple-tags.php
--- simple-tags/simple-tags.php 2010-03-23 14:01:55.000000000 +0200
+++ simple-tags.new/simple-tags.php 2010-03-23 15:07:42.000000000 +0200
@@ -3,7 +3,7 @@
 Plugin Name: Simple Tags
 Plugin URI: http://redmine.beapi.fr/projects/show/simple-tags
 Description: Extended Tagging for WordPress 2.8 and 2.9 ! Suggested Tags, Mass edit tags, Autocompletion, Tag Cloud Widgets, Related Posts, Related Tags, etc!
-Version: 1.7.4.4
+Version: 1.7.4.4.1
 Author: Amaury BALMER
 Author URI: http://www.herewithme.fr
 Text Domain: simpletags
@@ -23,6 +23,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:
    Both :
@@ -55,9 +56,8 @@
 require( STAGS_DIR . '/inc/tpl.functions.php'); // Templates functions
 require( STAGS_DIR . '/inc/widgets.php');      // Widgets
 
-// Activation, uninstall
+// Activation
 register_activation_hook(__FILE__, 'SimpleTags_Install'   );
-register_uninstall_hook (__FILE__, 'SimpleTags_Uninstall' );
 
 // Init ST
 function simple_tags_init() {

Для тех, кто патчи не любит, есть исправленная версия плагина (из исходного архива также удалены скриншоты): скачать Simple Tags 1.7.4.4.1

Автор: ; опубликовано в: Патчи; метки: Simple Tags, utf8, WordPress, ошибка, патч, плагин
23
Мар
2010

RSS Комментарии к статье «Simple Tags 1.7.4.4: The New Bugs» (5)  »

  1. Almaz

    А почему бы не оповестить о проблемах автора плагина и не выслать ему исправленный вариант? И не придется при выходе следующей версии снова патчить этот плагин. На страничке плагина есть ссылки на сайты автора.

  2. Спасибо, помогло! :)

  3. Сделайте аналогичный плагин и выложите в репозитарий, помогите людям.

  4. Simple Tags в отличие от всех остальных плагинов, которые развиваются по нарастающей в плане качества, мне кажется идет в обратном направлении – заметил это когда пропал min – max количество автолинков в посте – чем ему эта функция мешала – никак не пойму.. пришлось совсем отключить автолинк потому что пересыпанная ссылками статья раздражает даже меня, автора.Владмимир – присоединяюсь к Win Man – чем постоянно править чужой кривой код, который кстати еще и грузит не по детски – напишите свой – в ST как минимум половина ненужных функций…

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

Оставить комментарий к записи «Simple Tags 1.7.4.4: The New Bugs»

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

*

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

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

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

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