如何查询父页面设置的后端布局?

时间:2015-10-23 11:55:12

标签: layout typoscript typo3-6.2.x

目前我正在使用以下条件TypoScript来检查设置了哪个后端布局:

[globalVar = TSFE:page|backend_layout = 2]
  // some typoscript
[global]

另外,我有一个像这样的站点树结构:

- rootPage1
    - page1
    - page2
    - page3
- rootPage2
    - page1
    - page2

现在我想为 rootPage2 和此页面的所有子项使用不同的后端布局。所以我按如下方式配置了这个页面:

enter image description here

这可以按预期工作,并为rootPage2及其所有孩子设置不同的后端布局,但条件语句不适用于他的孩子。只有当我手动设置所有这些子项的后端布局时,它才能正常工作:(。

我需要一个不同的条件语句吗?

1 个答案:

答案 0 :(得分:1)

是的,您需要使用不同的条件,特别是编写自己的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]

这是gist with comments

的链接