Simple Tags 1.7.4.4: The New Bugs
Исправляем старые и новые ошибки
Сегодня наконец-то появилось время обновить старые плагины; в их числе оказался и Simple Tags. Честно говоря, версия 1.7.4.4 меня разочаровала: автор сломал автоматические ссылки меток. Теперь они не работают даже для английского языка.
Резюмируя: в данной версии нужно исправить:
- автоматические ссылки меток;
- поддержку многобайтовых символов в автоматических ссылках;
- вызов
register_uninstall_hook()при каждом обращении к блогу.
Проблема с автоматическими ссылками возникла из-за невнимательности автора:
//...
// 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):
--- 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
Автор: Vladimir; опубликовано в: Патчи; метки: Simple Tags, utf8, WordPress, ошибка, патч, плагинМар
2010
Комментарии к статье «Simple Tags 1.7.4.4: The New Bugs» (5) »
Пожалуйста, не используйте эту форму для комментирования! Данная форма предназначена исключительно для ботов.
Оставить комментарий к записи «Simple Tags 1.7.4.4: The New Bugs»
गते गते पारगते पारसंगते बोधि स्वाहा
Меня зовут Владимир, я программист-фрилансер, специализирующийся на Web-программировании и програмировании под Linux.
По совместительству занимаюсь администрированием LAMP/LNMP-серверов и техническим переводом.


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