У многих наблюдается баг, состоящий в том, что DR процессит изображения, даже если у них не изменен размер в редакторе.
Я попробовал разобраться в этом для версии, которую использую: из Google Code, directresize_0.9.0rev6.zip, ссылка на которую лежит в первом сообщении.
FIX1:
Для того, чтобы изображения, у которых указаны width и height оригинала не обрабатывались DR, необходимо в файл directResize.php после строк с 647:
if ($this->_canProcessThumb())
{
$this->current["file"] = $this->OriginalImgSize();
добавить строки
if ($this->current["file"]["width"] == $this->current["source"]["width"] &&
$this->current["file"]["height"] == $this->current["source"]["height"])
break;
FIX2:
Также, на форуме встречались сообщения об ошибке array_combine, которая возникает достаточно редко. Мне посчастливилось ее встретить и подробно изучить.
Чтобы избежать ошибки в строке 546
Error: array_combine() [function.array-combine]: Both parameters should have at least 1 element
Необходимо заменить эту строку 546 с
$result = array_combine($match[1],$match[3]);
на
if (!empty($match[1])) $result = array_combine($match[1],$match[3]);
Это позволит корректно обрабатывать изображения теги которых заданы совсем без атрибутов.
Замечания и дополнения приветствуются.
UPD1:
А для тех кто, как и я, задумался о том, откуда в исходном коде теги изображений без атрибутов — следующая информация.
Как это обычно бывает, все дело в регулярном выражении.
Список изображений получается с помощью такого регулярного выражения на строке 625:
Такое выражение, как показало исследование, ловит многострочные теги img, в том числе обломки тега вперемешку со скриптами, которыми изобилуют коды счетчиков Рамблера, liveinternet и прочих.
А поскольку на обработку плагина попадает весь выходной поток, а не только переменная [*content*], то тут то и находит коса на камень.
Таким образом, FIX2 верен и дает положительный эффект.