在流畅的模板中,如何输出链接文件的大小?

时间:2014-03-17 09:38:35

标签: typo3 fluid typo3-4.5

在流体模板中,我想输出链接文件的大小。

我正在使用f:link.page链接到该文件,因为我认为这是这样做的方法(如果没有,请更正)。

<f:link.page class="download" pageUid="fileadmin/redaktion/download/papers/{paper.download}" {paper.author}">PDF</f:link.page>

由于我已经在网站上使用扩展名ml_links,我想我可以通过lib.parseFunc_RTE传递链接,但是

<f:format.html parseFuncTSPath="lib.parseFunc_RTE"><f:link.page class="download" pageUid="fileadmin/redaktion/download/papers/{paper.download}" {paper.author}">PDF</f:link.page></f:format.html>

将其包装成p.bodytext。

我是否必须使用不同的语法来应用f:format.html TO f:link.page - 还是有更好的方法(通过流体或vhs viewhelper)?

6 个答案:

答案 0 :(得分:2)

实际上自定义VH是实现这一目标的最快方法,即基于on this VH,您需要用文件路径替换size param,然后使用PHP的filesize函数以字节为单位获取大小。

答案 1 :(得分:1)

这是我的VH:

https://gist.github.com/ursbraem/9645542

我已经简化了原件,输出&#34; KiB&#34;文件大小对我来说太技术了。

答案 2 :(得分:1)

当我使用fluidcontent时,我还安装了vhs扩展程序,然后只使用:

<f:format.bytes decimals="1">{v:media.size(path: '{file}')}</f:format.bytes>

输出干净的可读尺寸,例如&#34; 28.2 MB&#34;。

答案 3 :(得分:1)

如果您使用VHS,可以考虑https://fluidtypo3.org/viewhelpers/vhs/master/Media/SizeViewHelper.html(与ApplicationInstitution.objects.exclude(transcript_file__isnull=True) 结合使用)。

答案 4 :(得分:0)

在较新的TYPO3版本中,可以使用FileReference对象的originalResource.size属性。

{file.originalResource.size -> f:format.bytes()}

或您的情况:

{paper.download.originalResource.size -> f:format.bytes()}

答案 5 :(得分:0)

TYPO3 10

我需要一个 TYPO3 10 中 DCE 模块的文件大小输出,这就是我想出的,使用 VHS:

<f:format.bytes><v:media.size><v:format.trim characters="/"><f:uri.typolink parameter="{item.link}" /></v:format.trim></v:media.size></f:format.bytes>

说明:

  • f:uri.typolink 生成我需要的完整路径 v:media.size
  • v:media.size 要求路径不带前导斜线,v:format.trim 删除此字符。
  • f:format.bytes 以 KB 或 MB 为单位显示 v:media.size 的输出。