我正在使用TemplavoilàPlus,我有一个由用户填写的名为field_title
的字段。
我使用此字段通过Typoscript对象路径为FCE的其他字段创建URL / HTML。
常量:
file = fileadmin/datasheets/|.pdf
设置:
lib.field_datasheet = TEXT
lib.field_datasheet {
field = field_title
wrap = <a href="{$file}"></a>
}
问题是,仅当文件/ URL存在时,我才想这样做。 首先,我想检查一下我创建的URL是否未链接到404页面。 然后,我认为检查文件大小是否为0会更容易。 经过两天的工作,到处查看后,我意识到这些解决方案都不容易...
我认为我有一些答案,例如使用stdWrap.rawUrlEncode
,file:current:size
,if.isTrue.data
,FILE
等,但是显然,Typoscript不是针对初学者的,并且我似乎找不到如何正确排列所有内容,以及如何正确使用所有这些内容。
我认为我可以使用类似的方法来解决这种情况:
if.isTrue < .10 #.10 containing the size of the file
if.value = 0
但是真正困难的部分是从我使用Typoscript创建的URL中获取文件大小。 我很漂亮,肯定有一种方法只能对Typoscript进行处理,因为我知道一个人可以从其uid中获取文件的大小…
或者也许我应该坚持检查该网址是否未指向404页面。 也许有一个我没想到的简单解决方案!
任何帮助将不胜感激,如果这个问题太容易解决,对不起,非常感谢您阅读本文! =)
编辑:我正在使用Typo3 7.6
答案 0 :(得分:2)
您可以为此使用文件链接。未经测试,应该是这样的:
lib.field_datasheet = TEXT
lib.field_datasheet {
field = field_title
wrap = |.pdf
filelink {
path = fileadmin/datasheets/
file.field = field_title
}
}
不确定如果文件不存在该怎么办。它可能什么也不显示,在这种情况下,您可以使用ifEmpty.field = field_title
仅显示文本。
有关文件链接的更多信息:https://docs.typo3.org/typo3cms/TyposcriptReference/Functions/Filelink.html
答案 1 :(得分:1)
为什么不让TYPO3决定文件是否存在,值得建立链接?
您的问题可能是您没有什么可以联系的。 (空的A标签)
我会尝试:
常量:
filePath = fileadmin/datasheets/|.pdf
设置:
lib.field_datasheet = TEXT
lib.field_datasheet {
// use the 'filename' as text to be linked
field = field_title
// now build the link:
typolink.parameter {
field = field_title
wrap = {$filePath}|
}
}
答案 2 :(得分:1)
感谢鲁迪的回答,我已经能够解决我的问题。 为了对他人有用,这是我使用过的Typoscript的一部分:
lib.field_datasheet = TEXT
lib.field_datasheet {
value {
field = field_title
wrap = |.pdf
}
filelink {
path = /fileadmin/datasheet/
target = _blank
altText = PDF icon
titleText = Download datasheet
//Personalize the icon, the file must be named pdf.png
icon_link = 1
icon = 1
icon {
path = fileadmin/icons/
ext = png
}
}
}