我想问一下,在TYPO3 LTS 11中,是否有一种方法可以改变TYPO3为渲染图像生成名称的方式?
在模板中,我使用f:image Viewhelper和cropVariant选项来生成图像(由TYPO3 image Rendering完成)。
<f:image image="{file}" cropVariant="desktop" />
该图像有一个类似这样的名称:csm_my-image_88ade60319.jpg
我可以定义TYPO3应该如何命名这些渲染图像吗?
例如"my-image_large.jpg">
文件名的cms_
部分在TYPO3CMSCoreResourceProcessingImageCropScaleMaskTask::getTargetFileName
函数中硬编码。最后的哈希值添加到TYPO3CMSCoreResourceProcessingAbstractGraphicalTask::getTargetFileName
函数中。不确定为什么要添加cms_
,但是散列是为了确保文件名是唯一的。哈希是使用文件和配置生成的。
所以默认情况下这是不可能的。如果你真的想要不同的文件名,你可以XCLASSTYPO3CMSCoreResourceProcessingImageCropScaleMaskTask
,比如:
<?php
namespace VendorMyExtensionResourceProcessing;
class ImageCropScaleMaskTask extends TYPO3CMSCoreResourceProcessingImageCropScaleMaskTask
{
public function getTargetFileName()
{
$originalFileName = parent::getTargetFilename();
$fancyFileName = ... // Do your things to change the file name
return $fancyFileName;
}
}
您可能还需要添加一些内容来配置文件名。因此,您可能还需要XCLASSTYPO3CMSFluidViewHelpersImageViewHelper
类或创建一个新的ViewHelper来为处理指令添加一些设置。
确保文件名是唯一的,否则你可能会得到奇怪的结果。