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

问题描述 投票:0回答:2

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

ABC_105-Report.pdf 
DEFGH_110-Brochure.ppt

我们需要删除“ - ”左边的任何内容,以便在TYPO3前端中成为这样的列表:

Report.pdf 
Brochure.ppt

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

typo3 fluid typo3-8.x viewhelper
2个回答
3
投票

一种可能的解决方案是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',那么正则表达式就是/-.*/


0
投票

一个非常基本的typoscript viewhelper:

在液体中:

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

在typoscript中:

lib.filenameStub = TEXT
lib.filenameStub {
    current = 1
    split {
        max = 2
        token = -
        returnKey = 1
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.