如何在 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]);
}
}
我有输入类型为 "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]);
}
}