带有动态 uid 的 TYPO3 MenuProcessor

TYPO3 MenuProcessor with dynamic uid

我想在我的流体模板中使用 MenuProcessor 动态。 在 TypoScript 中配置,我想用 cObject ViewHelper 调用它并将页面的 uid 传递给它: {f:cObject(typoscriptObjectPath: 'lib.menuTest', data:{menuId:'28'})}

这是我试过的 - 它应该是一个 special = directoryspecial.value = XXXXXX 中给定的 uid。

lib {
    menuTest = FLUIDTEMPLATE
    menuTest {
        templateName = MenuTest
        templateRootPaths {
            10 = EXT:hatemplate/Resources/Private/Templates/
        }

        dataProcessing {
            10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
            10 {
                special = directory
                special.value = XXXXXX
                levels = 1
                as = menuItems
            }
        }
    }
}

如果我直接设置一个 uid 就可以了,但我不知道如何插入变量。有人有提示或可行的解决方案吗?

谢谢

我已经在一个对 TypoScript 更有经验的朋友的帮助下解决了。

我并没有我想的那么错。

这是 TypoScript 中的代码。我为将来添加了模板、布局和部分路径 copy/pasting :) :

lib {
    menuDirectory = FLUIDTEMPLATE
    menuDirectory {
        templateName = MenuDirectory
        layoutRootPaths {
            10 = EXT:hatemplate/Resources/Private/Layouts/
        }
        templateRootPaths {
            10 = EXT:hatemplate/Resources/Private/Templates/
        }
        partialRootPaths {
            10 = EXT:hatemplate/Resources/Private/Partials/
        }

        dataProcessing {
            10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
            10 {
                special = directory
                special.value.field = menuId
                levels = 1
                as = directory
            }
        }
    }
}

通过此配置,您可以像这样使用 f:cObject ViewHelper:

<f:cObject typoscriptObjectPath="lib.menuDirectory" data="{menuId:1}" />

或内联

{f:cObject(typoscriptObjectPath: 'lib.menuDirectory', data:{menuId:1})}

这会将项目渲染到流体模板中: