使用自定义模板渲染内容

时间:2018-03-08 10:43:27

标签: typo3 typoscript fluid typo3-8.x

是否有解决方案只更改由typoscript选择的contentelement模板?

像这样:

lib.testelement = CONTENT
lib.testelement {
    renderObj {
        file = Path/to/my/template.html
    }
    table = tt_content
    select {
        pidInList = MyPid
        where = uid=MyUid
        max = 1
    }
}

我需要来自控制器的指定变量。

2 个答案:

答案 0 :(得分:0)

如果没有renderObj,则默认渲染将用于所选记录 如果你想使用renderObj,你必须定义完整的渲染。 这可以是默认渲染的副本 你有问题:渲染依赖于CType(和list_type)(所以你可能知道那个CE的CType。) 所以它变得越来越复杂。

也许您可以使用其他解决方案:
如果您将FSC中的流体模板替换为您想要特别使用默认流体模板副本的那种CE 在该副本中插入条件<f:if condition="{data.pid} == Mypid">,这样如果这种CE来自您的特殊页面,您可以进行另一次渲染。

答案 1 :(得分:0)

renderObj必须是官方cObject,所以这应该完成工作

lib.testelement = CONTENT
lib.testelement {
    renderObj = FLUIDTEMPLATE
    renderObj {
        file = Path/to/my/template.html
    }
    table = tt_content
    select {
        pidInList = MyPid
        where = uid=MyUid
        max = 1
    }
}

有关FLUIDTEMPLATE的其他参数

,请参阅https://docs.typo3.org/typo3cms/TyposcriptReference/ContentObjects/Fluidtemplate/Index.html

要为集成商提供扩展渲染的选项而无需触及FLUIDTEMPLATE本身,您可以添加COA

lib.testelement = CONTENT
lib.testelement {
    renderObj = COA
    renderObj {
        10 = FLUIDTEMPLATE
        10.file = Path/to/my/template.html
    }
    table = tt_content
    select {
        pidInList = MyPid
        where = uid=MyUid
        max = 1
    }
}