On panel, user can drap and drop file from files list to create file
’ KirbyTag.
Currently only url
field is set on markdown editor, wether others fields exists:
(file: file__url)
My need is to display a name instead of the filename. This name is the one contained in text
field.
(file: file__url text: my__name)
So, for example let’s consider a file with the following attributes:
- URL : fileURL
- filename : elvispresley.pdf
- text: Elvis is alive!
After drag and drop, here is the KirbyTag displayed on markdown editor:
(file: fileURL/elvispresley.pdf text: Elvis is alive!)
Hi! Thank you for your answer that helped a lot. Unfortunately I still don’t know which field need to be used to carry this replacement data as there are many options to follow. Is there an existing field already dedicated to this purpose? Is there some kind of alt field?
Since you have access to the $file object, you can use any meta data:
'panel' => [
'kirbytext' => [
'fileDragText' => function(Kirby\Cms\File $file, $url) {
if($file->type() === 'image') {
return sprintf('(image: %s text: %s)', $url, $file->title()->or('Some fallback text')) ;
}
if($file->type() === 'document') {
return sprintf('(file: %s text: %s)', $url, $file->description()->or($file->name()));
}
return null;
}
],
],
OK, thank you for the help! Retrieving the wanted field is now ok. But not link is created for the file!
The HTML code produced contains is not a link.
File’s URL as dropped in the Markdown field is the one on media folder:
media/pages...
. It is OK as I copied/pasted it on a browser and file showned.
Replacing it with the relative link is OK. So the $file->url()
code in your example does not work.
Yes, should’ve been $url, sorry.
1 Like