в MODx CMS, Разработка

MODx Evo PHP 5.3 — eregi_replace и preg_replace

В виду того, что в PHP 5.3.x уже нет функции eregi_replace, некоторые сниппеты в MODx Evo перестают работать, ругаясь на эту функцию. В частности, это DirectResize.

Положение исправляем такими маневрами. Ищем в файле /assets/plugins/directresize/directResize.php строки со старой функцией и заменяем их на новые.

79   $imgHTMLHeight = ereg_replace("[^0123456789]","",$array[0]);

383   $imgHTMLWidth = ereg_replace("[^0123456789]","",$array[0]);       

459   $currentImgPath = eregi_replace("^.+src=('|\")","",$imgs[0][$n]);
460   $currentImgPath = eregi_replace("('|\").*$","",$currentImgPath);

482   $imgf = eregi_replace("^.+src=('|\")","",$imgf);


585   $tmp = eregi_replace($attr_k." *= *[\"|']","",$array[0]);
586   $tmp = eregi_replace("[\"']*","",$tmp);

796   $lien_img = eregi_replace("^.+src=('|\")","",$imgs[0][$n]);
797   $lien_img = eregi_replace("('|\").*$","",$lien_img);

804   $imgf = eregi_replace("^.+src=('|\")","",$imgf);

Заменяем на соответствующие:

$imgHTMLHeight = preg_replace("/[^0123456789]/","",$array[0]);
$imgHTMLWidth = preg_replace("/[^0123456789]/","",$array[0]);

$currentImgPath = preg_replace("/^.+src=('|\")/i","",$imgs[0][$n]);
$currentImgPath = preg_replace("/('|\").*$/i","",$currentImgPath);

$imgf = preg_replace("/^.+src=('|\")/i","",$imgf);

$tmp = preg_replace("/".$attr_k." *= *[\"|']/i","",$array[0]);
$tmp = preg_replace("/[\"']*/i","",$tmp);

$lien_img = preg_replace("/^.+src=('|\")/i","",$imgs[0][$n]);
$lien_img = preg_replace("/('|\").*$/i","",$lien_img);

$imgf = preg_replace("/^.+src=('|\")/i","",$imgf);

Написать комментарий

Комментарии

  1. Дмитрий, здравствуйте! Может быть Вы выручите советом, хотя бы в каком направлении копать. Неожиданно вчера заругался плагин DirectResizeLite. Скриншот: http://www.museumpushkin.ru/dirresize_problem.jpg. У меня шесть пушкинских музеев в Питере, в каждой странице по 2-3 фотки. Всего делов-то нужна работа highslide для увеличения вставленной картинки, без всяких обрезок. Заранее спасибо!