0

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

ABC_105-Report.pdf 
DEFGH_110-Brochure.ppt

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

Report.pdf 
Brochure.ppt

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

4

2 回答 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>

结果:

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

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

于 2018-09-09T08:47:04.143 回答
0

一个非常基本的打字稿视图助手:

在流体中:

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

在打字稿中:

lib.filenameStub = TEXT
lib.filenameStub {
    current = 1
    split {
        max = 2
        token = -
        returnKey = 1
    }
}
于 2018-09-10T06:23:04.743 回答