如何在 MODX 中使用一台电视的两个不同输出?

How to use two different outputs of one TV in MODX?

我有输入类型为 "File" 的电视。我如何多次使用此文件的输出: 1. 在一个地方 url 2.在一个地方作为这个文件的名字 3. 在一个地方作为这个文件的大小

谢谢

您将必须创建一个片段来输出您想要的参数。类似于:

[[!outputMyFile? &attribute=name &tv=[[*myTvValue]]]]

片段将在其中对 TV 值 [文件名] 进行处理并输出所需的适当属性。

1 - 使用你的电视 - <a href="[[++site_url]][[*myFileTv]]">My File</a>

2 - 使用这样的片段 -

[[!getNameFromPath?&path=`[[*myFileTv]]`]]

这个片段的代码是-

<?php
$path = $modx->getOption('path', $scriptProperties, '');
$fileName = basename($path);
return $fileName;

3 - 使用另一个片段 -

[[!getSizeFromPath?&path=`[[*myFileTv]]`]]

哪个密码是-

<?php
$path = $modx->getOption('path', $scriptProperties, '');
if (!empty($path)) {
    $size = filesize(MODX_BASE_PATH . ltrim($path,'/'));
    $sizes = array(" Bytes", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB");
    if ($size == 0) { 
        return('n/a'); 
    } else {
        return (round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $sizes[$i]); 
    }
}