MODX 2.7.1-pl не открывает xml файлы компонентов.

Часто при разработке нужно по быстрому взглянуть какие названия у объектов компонентов. В MODX версии 2.7.1-pl файлы типа teaching.mysql.schema.xml перестали открываться в админке. Как поправить?
Александр Туниеков
24 сентября 2019, 12:21
modx.pro
780
0
Поблагодарить автора Отправить деньги

Комментарии: 3

Александр Туниеков
25 сентября 2019, 06:54
0
Сам задал вопрос. Сам и отвечу :-).
Проблема не в MODX а в классе php finfo. На одном хостинге он на тип файла возвращает «text/html», на другом «application/xml». Или от версии php зависит.
Я поправил в MODX файл core/model/modx/modfilehandler.class.php
/**
     * Tells if a file is a binary file or not.
     *
     * @param string $file
     * @return boolean True if a binary file.
     */
    public function isBinary($file) {
        if (!file_exists($file) || !is_file($file)) {
            return false;
        }

        if (filesize($file) > 0 && class_exists('\finfo')) {
            $finfo = new \finfo(FILEINFO_MIME);
            $info_file = $finfo->file($file);
            //$this->modx->log(1,"$file ".$info_file);
            if(strpos($info_file, "application/xml") !== false) {
                //$this->modx->log(1,"$file ".$info_file);
                return false;
            }
            return substr($info_file, 0, 4) !== 'text';
        }

        $fh = @fopen($file, 'r');
        $blk = @fread($fh, 512);
        @fclose($fh);
        @clearstatcache();
        return (substr_count($blk, "^ -~" /*. "^\r\n"*/) / 512 > 0.3) || (substr_count($blk, "\x00") > 0);
    }
Теперь xml редактируется у меня.
    Александр Туниеков
    25 сентября 2019, 07:19
    +1
      Сергей
      27 ноября 2019, 20:00
      0
      изменил версию с 5.6 на 7.3 и все стало открывать
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        3