如何查询由 parent 页面设置的后端布局?
How do I query a backend layout which is set by parent page?
目前我正在使用以下条件 TypoScript 来检查设置了哪个后端布局:
[globalVar = TSFE:page|backend_layout = 2]
// some typoscript
[global]
此外我还有一个这样的站点树结构:
- rootPage1
- page1
- page2
- page3
- rootPage2
- page1
- page2
现在我想为 rootPage2 和该页面的所有子页面使用不同的后端布局。所以我将这个页面配置如下:
这按预期工作并为 rootPage2 及其所有子项设置了不同的后端布局,但条件语句不适用于他的子项。只有当我手动为所有这些孩子设置后端布局时它才有效:(.
为此我需要不同的条件语句吗?
是的,你需要使用不同的条件,具体写你自己的userFunc condition
将此代码放入您的 typo3conf/AdditionalConfiguration.php
(就在这个地方,必要时创建文件):
function user_beLayout($layout) {
if (TYPO3_MODE!='FE') return false;
if($GLOBALS["TSFE"]->page["backend_layout"] > 0)
return $GLOBALS["TSFE"]->page["backend_layout"] == $layout;
foreach ($GLOBALS["TSFE"]->rootLine as $page)
if($page["backend_layout_next_level"] > 0)
return ($page["backend_layout_next_level"] == $layout);
return false;
}
因此您可以在您的 TS 中使用它,例如:
[userFunc = user_beLayout(2)]
// some typoscript
[end]
这是 link 到 gist with comments
目前我正在使用以下条件 TypoScript 来检查设置了哪个后端布局:
[globalVar = TSFE:page|backend_layout = 2]
// some typoscript
[global]
此外我还有一个这样的站点树结构:
- rootPage1
- page1
- page2
- page3
- rootPage2
- page1
- page2
现在我想为 rootPage2 和该页面的所有子页面使用不同的后端布局。所以我将这个页面配置如下:
这按预期工作并为 rootPage2 及其所有子项设置了不同的后端布局,但条件语句不适用于他的子项。只有当我手动为所有这些孩子设置后端布局时它才有效:(.
为此我需要不同的条件语句吗?
是的,你需要使用不同的条件,具体写你自己的userFunc condition
将此代码放入您的 typo3conf/AdditionalConfiguration.php
(就在这个地方,必要时创建文件):
function user_beLayout($layout) {
if (TYPO3_MODE!='FE') return false;
if($GLOBALS["TSFE"]->page["backend_layout"] > 0)
return $GLOBALS["TSFE"]->page["backend_layout"] == $layout;
foreach ($GLOBALS["TSFE"]->rootLine as $page)
if($page["backend_layout_next_level"] > 0)
return ($page["backend_layout_next_level"] == $layout);
return false;
}
因此您可以在您的 TS 中使用它,例如:
[userFunc = user_beLayout(2)]
// some typoscript
[end]
这是 link 到 gist with comments