TYPO3 更新到 8.7 模板不工作

TYPO3 Update to 8.7 Template not working

我尝试将 Typo3 安装从 6.1 更新到 8.7 LTS,但模板无法正常工作。 到目前为止我做了什么:

旧安装使用 Fluid Pages Engine,但这不适用于 8.7。据我了解,流体现在包含在 typo3 中?

后端目前正在运行。我可以管理用户、页面和我查看的所有内容。但是,当我调用前端时,出现异常:

#1294587217: The page is not configured! [type=0][]. This means that there is no TypoScript object of type PAGE with typeNum=0 configured. 

TYPO3\CMS\Core\Error\Http\ServiceUnavailableException thrown in file
...\typo3_src-8.7.10\typo3\sysext\frontend\Classes\Controller\TypoScriptFrontendController.php    in line 2487.

我尝试了维基页面的解决方案并替换了 "setup"-模板信息

<INCLUDE_TYPOSCRIPT: source="FILE:fileadmin/typoscript/domain.ts">
<INCLUDE_TYPOSCRIPT: source="FILE:fileadmin/typoscript/typoscript.ts">
page.stdWrap.parseFunc.short.i3 = <span style="text-transform:normal;">i3</span>

# Default PAGE object:
page = PAGE
# Define output for typeNum=0, the default type.
page.typeNum = 0
page.10 = TEXT
page.10.value = HELLO WORLD!

然后我看到"HELLO WORLD!"。现在我卡住了:我需要做什么才能使 "normal" 模板正常工作?

提前致谢

我认为您的错别字文件未包含在 ROOT Template 中。

首先复制 typoscript.ts 文件中的所有拼写错误并粘贴到 ROOT Template 中的 setup.ts,然后检查前端。如果一切都很好,那么肯定你的错字没有包含在 ROOT template 中,如果这不起作用,那么你的错字对象中有一些错误

TYPO3 7 和 8 都包含 FLUIDTEMPLATE Typoscript 对象,但 EXT:fluidpages 是由 fluidtypo3.org 团队维护的外部扩展。

如您所写:

# Default PAGE object:
page = PAGE
# Define output for typeNum=0, the default type.
page.typeNum = 0
page.10 = TEXT
page.10.value = HELLO WORLD!

您正在定义 PAGE 对象将仅包含该简单的 TEXT 对象。

使用 FLUIDTEMPLATE 对象的 "minimum" 配置为:

page = PAGE
page.typeNum = 0
page.10 = FLUIDTEMPLATE
page.10{      
  templateName = Default

  layoutRootPaths {
      0 = Path/To/Your/Layouts/  
  }
  partialRootPaths {
      0 = Path/To/Your/Partials/  
  }
  templateRootPaths {
      0 = Path/To/Your/Templates/  
  }    
}

这意味着您正在使用 Default.html 模板

要使用不同的模板,还应该配置一些后端布局;假设您正在使用数据库来存储它们,之前的代码可能会变成:

page = PAGE
page.typeNum = 0
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

      default = TEXT 
      default.value = Default 
      //these are the IDs of the backend_layout records in DB  
      1 = TEXT
      1.value = Default

      2 = TEXT
      2.value = Home
      //add other values 

    }
ifEmpty = Error
}

  layoutRootPaths {
      0 = Path/To/Your/Layouts/  
  }
  partialRootPaths {
      0 = Path/To/Your/Partials/  
  }
  templateRootPaths {
      0 = Path/To/Your/Templates/  
  }    
}

另请参阅:https://docs.typo3.org/typo3cms/TyposcriptReference/ContentObjects/Fluidtemplate/Index.html

如果您需要进一步的帮助,我建议您加入 typo3 Slack 频道(在此处订阅:https://forger.typo3.com/slack)并加入 typo3-cms 频道和 fluidtypo3 频道.