Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Link to file in Fluid – how to specify storage?

As far as I know, there's no such thing as an f:link.file or v:link.file viewhelper.

There used to be a solution using file.originalResource.publicUrl as the value to point the link to, as in

<f:link.page pageUid="{file.originalResource.publicUrl}" target="_blank">

Am I right that this is no longer necessary? I got this (using ext:mask):

<f:link.page pageUid="{file.identifier}" target="_blank">

returning the same value, while originalResource.publicUrl would not even show up in f:debug.

BUT in file.identifier the storage path, e.g. fileadmin, is not present. How do I add it to the viewhelper?

Or, what is the currently recommended solution for a link to a file in TYPO3 7.6?

like image 928
Urs Avatar asked Nov 02 '16 19:11

Urs


3 Answers

Just use <a href="{file.publicUrl}">{file.name}</a>. When absolute URL or some special configuration is needed use <f:link.typolink parameter="{file.publicUrl}">{file.name}</f:link.typolink>.

like image 110
minifranske Avatar answered Sep 28 '22 10:09

minifranske


TYPO3 11 introduced a new ViewHelper for this

<f:link.file file="{file}" target="_blank">Download</f:link.file>

https://docs.typo3.org/other/typo3/view-helper-reference/11.5/en-us/typo3/fluid/latest/Link/File.html

like image 31
Tobias Gaertner Avatar answered Sep 28 '22 10:09

Tobias Gaertner


For me, @minifranske’s solution worked only as a hint: I needed to use {file.originalResource.publicUrl} instead:

<f:link.typolink parameter="{file.originalResource.publicUrl}">{file.originalResource.title}</f:link.typolink>

also available:

{file.originalResource.name}
{file.originalResource.description}
{file.originalResource.alternative}

Nevertheless, if anybody knows a proper core solution which resembles that of the Rich Text Editor, I’d be happy to hear about it:

<a href="t3://file?uid=123">file link</a>
<a href="t3://page?uid=123">page link</a>
like image 26
clive beckett Avatar answered Sep 28 '22 10:09

clive beckett