Николай Ланец
30 июня 2013 г., 16:48

Исправленный DirectResize 1.3.1 for MODX Revolution

Переносил сейчас сайт с Evo на Revo. Установил DirectResize из официального репозитория. В целом все шуршит. Но на одной странице проявился баг. Картинка не только не ресайзилась, у нее еще и установленные атрибуты width и height слетели, в результате чего на странице картинка стала крупней, чем надо.
Полез ковырять плагин. Нашел там два бага.
1. $height = preg_replace("[^0123456789]","",$array[0]); Ошибка в регулярном. Забыли слеши по краям прописать. Из-за этого плагин не мог очистить HTML-атрибут тега картинки, и получить чисто числовое значение высоты. Кстати, этот баг я не менее полутора лет назад встречал в DirectResize, но его так и не поправили.
2. Картинку как обычно заливал какой-то манагер, и в названии картинки присутствовали пробелы. При вставке картинки TinyMCE благополучно пробелы заменил на коды %20, а вот DirectResize urldecode не выполнил при обработке пути картинки. В результате все и побилось.
Так как официальный пакет обновлялся последний раз 4-го января 2012-го, то рассчитывать на скорейший патч особо не приходится.
Собрал новый пакет с заплатками. Скачать можно на sourceforge.net. Можно устанавливать как обновление текущему пакету, и не бояться, что не встанет потом официальное обновление.
Кстати, кто не читал эту статью, почитайте. Благодаря этому у меня вообще не было головняков с контролем того, какие параметры мне опять обновлять при установке обновленного пакета, или при откате версии.

Добавить комментарий