将后端内容添加到 Typo3 扩展模板
Adding backend content to Typo3 extension template
我创建了一个 Typo3 扩展,并在我的模板文件夹中添加了一些 .html 页面,我在模板文件夹中预先填充了硬编码 HTML 代码。然后我将我的设置添加到我的 setup.typoscript
page = PAGE
page {
typeNum = 0
shortcutIcon = ""
// Part 1: Fluid template section
10 = FLUIDTEMPLATE
10 {
templateName = TEXT
templateName.stdWrap.cObject = CASE
templateName.stdWrap.cObject {
key.data = pagelayout
pagets__tjms_default = TEXT
pagets__tjms_default.value = Main-Template
pagets__2 = TEXT
pagets__2.value = Start-Content
pagets__3 = TEXT
pagets__3.value = Tutorial-Content
pagets__4 = TEXT
pagets__4.value = Assistent-Content
default = TEXT
default.value = Main-Template
}
templateRootPaths {
0 = EXT:tjms/Resources/Private/Templates/Page/
1 = {$page.fluidtemplate.templateRootPath}
}
partialRootPaths {
0 = EXT:tjms/Resources/Private/Partials/Page/
1 = {$page.fluidtemplate.partialRootPath}
}
layoutRootPaths {
0 = EXT:tjms/Resources/Private/Layouts/Page/
1 = {$page.fluidtemplate.layoutRootPath}
}
}
我已经在 Typo3 后端添加了页面并激活了我的插件。现在我可以看到来自我的 .html 文件的内容,这很好。但是我的问题来了。在我的 Typo3 后端中,我还想向我的页面添加动态内容,但无论何时我这样做,该内容都不会显示在我的页面上,即使我专门将它添加到页面中也是如此。只有硬编码的 .html 代码显示给我,但我在后端添加的任何内容都不会弹出。
所以我的问题是,我是否必须以某种方式配置我的扩展程序或向我的 html 模板添加内容,以便它们在后端显示内容?
我正在使用 Typo3 9.5.14。
感谢您的帮助!
除了模板之外,您还需要变量来动态地将内容填充到该 FLUID 模板中。
您需要在模板中使用变量,例如 {content}
(或 {content->f:format.raw()}
),并且您需要填写这些变量,例如:
page {
10 {
variables {
content < styles.content.get
test = TEXT
test.value = my text from typoscript.
test.wrap = <p>|</p>
}
}
}
或者您使用 viewhelper 从列中获取内容,例如来自 EXT:bootstrap_package
的 viewhelper 调用:
<f:cObject typoscriptObjectPath="lib.dynamicContent" data="{pageUid: defaultPage, colPos: '0'}" />
我创建了一个 Typo3 扩展,并在我的模板文件夹中添加了一些 .html 页面,我在模板文件夹中预先填充了硬编码 HTML 代码。然后我将我的设置添加到我的 setup.typoscript
page = PAGE
page {
typeNum = 0
shortcutIcon = ""
// Part 1: Fluid template section
10 = FLUIDTEMPLATE
10 {
templateName = TEXT
templateName.stdWrap.cObject = CASE
templateName.stdWrap.cObject {
key.data = pagelayout
pagets__tjms_default = TEXT
pagets__tjms_default.value = Main-Template
pagets__2 = TEXT
pagets__2.value = Start-Content
pagets__3 = TEXT
pagets__3.value = Tutorial-Content
pagets__4 = TEXT
pagets__4.value = Assistent-Content
default = TEXT
default.value = Main-Template
}
templateRootPaths {
0 = EXT:tjms/Resources/Private/Templates/Page/
1 = {$page.fluidtemplate.templateRootPath}
}
partialRootPaths {
0 = EXT:tjms/Resources/Private/Partials/Page/
1 = {$page.fluidtemplate.partialRootPath}
}
layoutRootPaths {
0 = EXT:tjms/Resources/Private/Layouts/Page/
1 = {$page.fluidtemplate.layoutRootPath}
}
}
我已经在 Typo3 后端添加了页面并激活了我的插件。现在我可以看到来自我的 .html 文件的内容,这很好。但是我的问题来了。在我的 Typo3 后端中,我还想向我的页面添加动态内容,但无论何时我这样做,该内容都不会显示在我的页面上,即使我专门将它添加到页面中也是如此。只有硬编码的 .html 代码显示给我,但我在后端添加的任何内容都不会弹出。
所以我的问题是,我是否必须以某种方式配置我的扩展程序或向我的 html 模板添加内容,以便它们在后端显示内容?
我正在使用 Typo3 9.5.14。
感谢您的帮助!
除了模板之外,您还需要变量来动态地将内容填充到该 FLUID 模板中。
您需要在模板中使用变量,例如 {content}
(或 {content->f:format.raw()}
),并且您需要填写这些变量,例如:
page {
10 {
variables {
content < styles.content.get
test = TEXT
test.value = my text from typoscript.
test.wrap = <p>|</p>
}
}
}
或者您使用 viewhelper 从列中获取内容,例如来自 EXT:bootstrap_package
的 viewhelper 调用:
<f:cObject typoscriptObjectPath="lib.dynamicContent" data="{pageUid: defaultPage, colPos: '0'}" />