Несколько ошибок с PHP версии 5.3 и выше

Замечено было 2 ошибки в плагине Ajaxfilemanager для TinyMCE при работе на хосте с PHP версии 5.3 и выше.

Первая

перестали отображаться превью залитых картинок с расширением JPG

Исправление

В файле /admin/ajaxfilemanager/inc/class.image.php

в функцию

function _isSupported($filename, $extension, $function, $write = false)

добавить код

if (PHP_VERSION_ID >= 50300 && strtolower($extension) == "jpg") $extension = "JPEG";

Получится вот так:

function _isSupported($filename, $extension, $function, $write = false)
{
        // добавить вот этот код 
	if (PHP_VERSION_ID >= 50300 && strtolower($extension) == "jpg") $extension = "JPEG";

        $giftype = ($write) ? ' Create Support' : ' Read Support';
        $support = strtoupper($extension) . ($extension == 'gif' ? $giftype : ' Support');

        if (!isset($this->gdInfo[$support]) || $this->gdInfo[$support] == false) {
            $request = ($write) ? 'saving' : 'reading';
            $this->_debug("Support for $request the file type '$extension' cannot be found.");
            return false;
        }
        if (!function_exists($function)) {
            $request = ($write) ? 'save' : 'read';
            $this->_debug("The '$function' function required to $request the '$filename' file cannot be found.");
            return false;
        }

        return true;
}

Вторая

При загрузке изображений на сервер выскакивало окошко с ошибкой Syntaxerror: unexpected token <, при этом загрузка прекращалась и окошко не обновлялось хотя по сути изображение уже было залито.

Исправление

Находим файл ajax_file_upload.php

И меняем

$manager = new manager($upload->getFilePath(), false);

на

$manager = new manager(dirname($upload->getFilePath()), false);

И третье

Еще такое было в модуле для Joomla «Fatal error: Cannot redeclare name_function() (previously declared in \путь\к\файлу\с\функцией.пыхпых:469) in \путь\к\файлу\с\функцией.пыхпых:654«.
То есть, ошибка дубликата функции с похожим названием, но функция одна.

Лечилось так

if (!function_exists('name_function')) {
    function name_function() {
    // любое содержимое
   }
 }

Спасибо за внимание 🙂


Оставьте комментарий