2013-10-10 96 views
0

我使用扩展生成器创建了Typo3扩展。其中一个领域是图像领域。图像扩展:如何获取模板中的完整图像路径?

当在前端渲染的实体我有机会到这个领域,如:

{entity.image} <!-- results in image.jpg without a path --> 

但只检索的文件的名称。现在,我可以创建一个文件夹,其中关于这个扩展的所有图像应该被上传,如:

fileadmin/user_upload/entity 

现在我可以像模板线它:

<img src=" fileadmin/user_upload/entity/{entity.image}" alt="{entity.name}"> 

这工作得很好直到有人使用图像多次。在这种情况下,Typo3将创建一个图像并在后端设置image_01.jpgimage_02.jpg等。当然这些图像不存在于新创建的文件夹中。看来,Typo3会在某处创建一个副本并使用该副本中的名称。

所以我的问题是:

  • 我怎样才能在模板中的真实图像路径?也许在控制器的某个地方?
  • 如何阻止Typo3创建这些副本并增加每个图像的数量?
  • 请问影像浏览器帮助<f:image />有帮助吗?如果是这样,怎么样?

这是一个基于extbase/fluid的扩展。

+0

您正在使用哪种TYPO3版本? 6.x或4.x?解决方案取决于它。 – lorenz

+0

@lorenz我正在使用标记为verison 6.1.x - 我发现Typo3正在将图像复制到'uploads/tx_nameofextension'中。是对的吗? – lampshade

回答

2

如果使用类型为“组”与internal_type“文件”,TYPO3拷贝文件的正常领域

uploads/your_extension/ 

为了避免重复,它增加了一个数字后缀与文件名称相同(甚至如果它们相同)。所以你应该从那里引用文件。

在TYPO3 6.x中,您可能会考虑使用文件抽象层。基本上,您将FAL的图像字段添加到您的表格/模型中,您将获得文件浏览器以及将文件附加到记录中所需的所有内容。

在您的流体模板则可以访问所有的FAL属性,如文件大小,文件扩展名等。看到这里的教程: http://keinerweiss.de/755-typo3-fal-in-einer-eigenen-extbasefluid-extension-einsetzen.html

+0

感谢您使用抽象层的提示。 – lampshade

1

只是备案,其记载无处:

file extension (filetype): {yourfile.originalResource.originalFile.extension} 
file size (filesize): {yourfile.originalResource.originalFile.size} 
type?: {yourfile.originalResource.originalFile.type}