首页 > 解决方案 > 如何删除 TYPO3 Fluid 文件名中“-”左侧的字符串?

问题描述

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

ABC_105-Report.pdf 
DEFGH_110-Brochure.ppt

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

Report.pdf 
Brochure.ppt

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

标签: typo3fluidtypo3-8.xviewhelper

解决方案


一种可能的解决方案是 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>

结果:

  • 报告.pdf
  • 宣传册.ppt
  • 文件名WithoutMagicChar.jpg
  • 魔术字符.jpg

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


推荐阅读