Размер и расширение файла из статического ресурса
В родительском ресурсе через 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» в сниппеты и вызывать как модификатор фенома.
Плагины нагружают систему как мне кажется. Тем более такой мелкий и редко используемый.
Плагины нагружают систему как мне кажется. Тем более такой мелкий и редко используемый.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.