Размер и расширение файла из статического ресурса
        В родительском ресурсе через pdoPage выводится список pdf-файлов, которые берутся из дочерних ресурсов (тип «статический файл»), Подскажите пожалуйста, как вывести на сайте размер и расширение статического файла? Может есть готовый сниппет который это делает?    
    
    
                                                                                
            Комментарии: 2
                Думаю уже не актуально, но может будет кому полезно, добавил модификатор fenom который выводит размер файла и его расширение. Создать плагин и повесить его на событие pdoToolsOnFenomInit
Вызывать в виде {'linkToFile' | getFileInfo}
                    Вызывать в виде {'linkToFile' | getFileInfo}
<?php
/** Функция обрабатывает размер файла в байтах в человекочитаемый 
    формат добавляя к размеру файла размерность, например 128 Mb
*/
if (!function_exists("human_filesize")) {
    function human_filesize($bytes, $decimals = 2)
    {
        $sz = ["B", "Kb", "Mb", "Gb", "Tb", "Pb"];
        $factor = floor((strlen($bytes) - 1) / 3);
        return sprintf("%.{$decimals}f", $bytes / pow(1024, $factor)) .
            " " .
            @$sz[$factor];
    }
}
/** @var modX $modx */
switch ($modx->event->name) {
    case "pdoToolsOnFenomInit":
        /** @var Fenom $fenom
            Мы получаем переменную $fenom при его первой инициализации и можем вызывать его методы. 
            Например, добавим модификатор вывода имени домена сайта из произвольной ссылки.
        */
        $fenom->addModifier("getFileInfo", function ($input) {
            if (file_exists($input)) {
                return strtoupper(pathinfo($input, PATHINFO_EXTENSION)) .
                    ", " .
                    human_filesize(filesize($input), 0);
            }
        });
        break;
}            
                Думаю, лучше оформить «human_filesize» и «getFileInfo» в сниппеты и вызывать как модификатор фенома.
Плагины нагружают систему как мне кажется. Тем более такой мелкий и редко используемый.
                    Плагины нагружают систему как мне кажется. Тем более такой мелкий и редко используемый.
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.