TYPO3 更新到 8.7 模板不工作
TYPO3 Update to 8.7 Template not working
我尝试将 Typo3 安装从 6.1 更新到 8.7 LTS,但模板无法正常工作。
到目前为止我做了什么:
- 将核心更新到 6.2 -> 7.6 -> 8.7
- 尽可能更新所有扩展
旧安装使用 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 频道.
我尝试将 Typo3 安装从 6.1 更新到 8.7 LTS,但模板无法正常工作。 到目前为止我做了什么:
- 将核心更新到 6.2 -> 7.6 -> 8.7
- 尽可能更新所有扩展
旧安装使用 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 频道.