如何查询这是由父页面设置后端布局?(How do I query a backend layout

2019-11-04 02:27发布

目前我使用以下条件的TypoScript以检查其后端的布局设置:

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

另外我有一个网站树状结构是这样的:

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

现在我想使用rootPage2不同的后端布局和此页的所有孩子的。 所以我如下已经完成了这个页面:

这将按预期和rootPage2和他的孩子的设置不同的后端的布局,但条件语句不工作对他的孩子的。 只有当我设置这一切的后端的布局儿童的手动这是工作:(。

我需要为这个不同的条件语句?

Answer 1:

是的,你需要使用不同的条件,特别是写自己的userFunc条件

将这个代码到你的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]

而这里的链接要点与评论



文章来源: How do I query a backend layout which is set by parent page?