安装程序
我想将数据从我的项目传输到一个TYPO3实例。假设我有一个HTML导出,在我的TYPO3目录中生成大约20个不同的HTML文件。这些文件包含来自不同系统的数据,并且数据更新非常频繁,因此我定期用最新信息覆盖它们。
问题
我想告诉TYPO3将每个文件的HTML内容作为自己的页面加载。请注意:页面不是完整的html文档(没有<html><body>标记)。相反,我希望这些文件中的任何代码都显示在TYPO3页面的上下文中。有点像TYPO3 HTML页面内容,但我希望HTML的源代码来自一个文件。
我不在乎是否必须手动设置每个页面,但我还没有找到任何方法让一个输入错误的页面或页面内容从文件中获取数据。你知道这有什么可能吗?
注意:在我的情况下,iframe不是一个解决方案。我使用的是TYPO3 7.6.23

最佳答案

我的回答基于以下假设:
您有一个“前端提供商扩展”EXT:yournext;如果没有,您可以使用适当的“fileadmin/etcetera/Resources/Private/etcetera”更改每个路径,如EXT:yourext/Resources/Private/Etcetera
使用数据库上的backend_layout存储后端布局,并使用该字段控制前端模板。我不记得在版本7中,您是否也可以使用key.data=pagelayout
当然,您必须调整后端布局项的id
要包含的文件将是部分文件,存储在EXT:yorext/Resources/Private/Partials/文件夹中,并将命名为
MyFileToIncludeOne.htmlMyFileToIncludeTwo.htmlet cetera
基本的印刷字体如下:

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/

10-12 00:05
查看更多