如何删除 TYPO3 Fluid 文件名中“-”左边的字符串?

How to remove strings at left of "-" in filename in TYPO3 Fluid?

使用 TYPO3 8 LTS,我们得到了许多标准化的文件名,例如:

ABC_105-Report.pdf 
DEFGH_110-Brochure.ppt

我们需要删除“-”左侧的所有内容,以便它在 TYPO3 前端中变成这样的列表:

Report.pdf 
Brochure.ppt

我们已经在使用包含 Format:Eliminiate、子字符串的 VHS Viewhelpers,因此它可能是解决方案的一部分。

一种可能的解决方案是 VHS:Format / PregReplaceViewHelper。

<f:alias map="{filenames: {
    0: 'ABC_105-Report.pdf',
    1: 'DEFGH_110-Brochure.ppt',
    2: 'FilenameWithoutMagicChar.jpg',
    3: 'Multiple-Magic-Chars.jpg'}}">
    <ul>
        <f:for each="{filenames}" as="filename">
            <li>
                {v:format.pregReplace(
                    subject: filename, 
                    pattern: '/^[^-]*-/', 
                    replacement: ''
                )}
            </li>
        </f:for>
    </ul>
</f:alias>

结果:

  • Report.pdf
  • Brochure.ppt
  • FilenameWithoutMagicChar.jpg
  • 魔法-Chars.jpg

如果需要'Chars.jpg'而不是'Magic-Chars.jpg',正则表达式是 /-.*/.

一个非常基本的错字查看助手:

在液体中:

<f:cObject typoscriptObjectPath="lib.filenameStub" data="{filename}" />

打字错误:

lib.filenameStub = TEXT
lib.filenameStub {
    current = 1
    split {
        max = 2
        token = -
        returnKey = 1
    }
}