如何在模板中从后端渲染内容?

时间:2018-09-24 09:32:41

标签: typo3

我将尝试解释我的问题尽可能具体。

在BackendLayouts文件夹中创建了一个称为Portal.ts的拼写文件,添加了几行和几列。在正确的文件夹中添加了Portal.html,并在Layouts文件夹中进行了布局,该布局使用呈现了Portal.html模板。 (这是我实现所有魔术的地方)

现在,我要做的是在后端添加内容。所以我要做的是创建一个名为Portal的页面。然后出现并选择“门户”布局。保存了,它似乎起作用了。大!

现在,我使用后端将一些内容添加到列中。我现在的问题是,如何在模板中检索该内容?我做了一个标题,图像和文本。

这是我的Portal.ts:

backend_layout {
    colCount = 2
    rowCount = 2
    rows {
        1 {
            columns {
                1 {
                    name = Hoofdteksten
                    colspan = 2
                    colPos = 1
                }
             }
        }

        2 {
             columns {
                 1 {
                     name = Afbeeldingen
                     colspan = 3
                     colPos = 3
                }
            }
        }
    }
}

这是模板文件:

<f:layout name="Portal" />
<f:section name="content">

    <div id="portal"> RENDER HEADER FROM BACKEND HERE </div>

</f:section>

2 个答案:

答案 0 :(得分:0)

您可以在TypoScript中的FLUIDTEMPLATE对象中设置变量。像这样:

page = PAGE
page.1 = FLUIDTEMPLATE
page.1 {
    templateName = Basic2ColumnPage
    templateRootPaths.1 = fileadmin/sitedesign/Resources/Private/Layouts
    variables {
        contentNormal < styles.content.get
        contentRight < styles.content.get
        contentRight.select.where = colPos = 2
    }
}

styles.content.get用于获取内容。默认情况下,它将使用colPos = 0从当前页面中获取内容,因此,如果要从其他列中获取内容,请添加select.where = colPos = 2(其中2是要从中获取内容的列)。然后,您可以在模板中使用变量。

有关更多信息,请参见https://docs.typo3.org/typo3cms/TemplatingTutorial/BasicFluidTemplates/Index.html

答案 1 :(得分:0)

您需要全局TypoScript配置来呈现内容。这可能看起来像这样:

lib.content {
    render = CONTENT
    render {
        table = tt_content
        select {
            orderBy = sorting
            where.cObject = COA
            where.cObject {
                10 = TEXT
                10 {
                    field = colPos
                    intval = 1
                    ifEmpty = 0
                    noTrimWrap = | AND colPos=||
                }
            }
        }
    }
}

如果您的项目中有类似的内容,则可以在cObject VieHelper的帮助下在您的流体模板中使用它,如下所示:

<div id="header">
  <f:cObject typoscriptObjectPath="lib.content.render" data="{colPos:1}" />
</div>

我在https://usetypo3.com/backend-layouts.html

上的博客文章中对此进行了详细描述。