设置
我想将数据从我的项目传输到 TYPO3 实例。假设我有一个 HTML 导出,它在 TYPO3 目录中生成大约 20 个不同的 HTML 文件。这些文件包含来自不同系统的数据,并且数据更新非常频繁,因此我会定期用最新信息覆盖它们。
问题
我想告诉 TYPO3 将每个文件的 HTML 内容加载为自己的页面。请注意:这些页面不是完整的 html 文档(没有 <html>
或 <body>
标签)。相反,我希望这些文件中的任何代码都显示在 TYPO3 页面的上下文中。有点像 TYPO3 HTML PageContent,但我希望 HTML 的源来自文件。
我不在乎是否必须手动设置每个页面,但我还没有找到任何方法让 TYPO3 页面或 PageContent 从文件中获取其数据。你知道有什么方法可以做到这一点吗?
注意:iframe 不是我的解决方案。我正在使用 TYPO3 7.6.23
最佳答案
我的回答基于以下假设:
您有一个“前端提供商扩展”EXT:yourext;如果不是,您可以使用正确的“fileadmin/etcetera/Resources/Private/Etcetera”更改每个路径,例如
EXT:yourext/Resources/Private/Etcetera
您在数据库上使用
backend_layout
来存储后端布局,并使用该字段来控制前端模板。我不记得在版本 7 中您是否还可以使用key.data=pagelayout
使用文件系统
当然你必须调整backend_layout项目的ID
要包含的文件将是部分文件,存储在文件夹
EXT:yorext/Resources/Private/Partials/
中,并命名
MyFileToInincludeOne.html
MyFileToInincludeTwo.html
等等
基本的 TypoScript 类似于:
page.10 = FLUIDTEMPLATE
page.10{
templateName= TEXT
templateName.stdWrap {
cObject = CASE
cObject {
key.data = levelfield:-2,backend_layout_next_level,slide
key.override.field = backend_layout
//I assume you already have some templates
1 = TEXT
1.value = Default
2 = TEXT
2.value = Home
//The layouts for the "pages with html files" begin here
10 = TEXT
10.value = MyFileOne
11 =TEXT
11.value = MyFileTwo
}
}
layoutRootPaths {
0 = EXT:yourext/Resouces/Private/Layouts/Page/
}
partialRootPaths {
0 = EXT:yourext/Resouces/Private/Partials/Page/
}
templateRootPaths {
0 = EXT:yourext/Resouces/Private/Template/Page/
}
}
所以,在前面的几行中, 模板 MyFileOne.html 将包含部分 MyFileToIncludeOne.html,只需在其中写入:
<f:render partial="MyFileToIncludeOne"/>
如果您想将文件分开,您也可以使用不同的路径:
partialRootPaths {
0 = EXT:yourext/Resouces/Private/Partials/Page/
1 = fileadmin/some/other/path/
}
我希望我没有忘记重要的段落。请随时要求澄清
关于html - 从文件系统读取HTML代码并显示在TYPO3页面中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47487053/