html - 从文件系统读取HTML代码并显示在TYPO3页面中

标签 html typo3 typo3-7.6.x

设置

我想将数据从我的项目传输到 TYPO3 实例。假设我有一个 HTML 导出,它在 TYPO3 目录中生成大约 20 个不同的 HTML 文件。这些文件包含来自不同系统的数据,并且数据更新非常频繁,因此我会定期用最新信息覆盖它们。

问题

我想告诉 TYPO3 将每个文件的 HTML 内容加载为自己的页面。请注意:这些页面不是完整的 html 文档(没有 <html><body> 标签)。相反,我希望这些文件中的任何代码都显示在 TYPO3 页面的上下文中。有点像 TYPO3 HTML PageContent,但我希望 HTML 的源来自文件。

我不在乎是否必须手动设置每个页面,但我还没有找到任何方法让 TYPO3 页面或 PageContent 从文件中获取其数据。你知道有什么方法可以做到这一点吗?

注意:iframe 不是我的解决方案。我正在使用 TYPO3 7.6.23

最佳答案

我的回答基于以下假设:

  1. 您有一个“前端提供商扩展”EXT:yourext;如果不是,您可以使用正确的“fileadmin/etcetera/Resources/Private/Etcetera”更改每个路径,例如EXT:yourext/Resources/Private/Etcetera

  2. 您在数据库上使用backend_layout来存储后端布局,并使用该字段来控制前端模板。我不记得在版本 7 中您是否还可以使用 key.data=pagelayout

  3. 使用文件系统
  4. 当然你必须调整backend_layout项目的ID

  5. 要包含的文件将是部分文件,存储在文件夹 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/

相关文章:

html - 如果右侧列为空,css 页面布局的中心列如何向右扩展?

php - 如何使用 .htaccess 检测浏览器

typo3 - 如何将字符串与 TYPO3 Fluid 中的变量进行比较

typo3 - 使用 JsonView 的 TYPO3 extbase Controller 中的 JSON 编码异常

javascript - 来自 iFrame 的自动保存 (localStorage) 文本字段不起作用

mysql - 我在 TYPO3 中使用哪个数据库?

doctrine-orm - TYPO3:如何为 Doctrine insert() 迁移 $GLOBALS ['TYPO3_DB' ]->quoteStr()

typo3 - Fluidtypo3 Flux - 保存在表字段中

linux - 导入 .t3d 文件

javascript - HTML Navbar 在幻灯片放映下(不在屏幕上) 如何在不粘住或使用 Bootstrap 的情况下将其强制到屏幕底部?