TYPO3 MenuProcessor с динамическим идентификатором - PullRequest
0 голосов
/ 13 июня 2019

Я хочу использовать динамику MenuProcessor в моей жидкостной шаблоне. Настроенный в TypoScript, я хочу вызвать его с помощью cObject ViewHelper и передать ему uid страницы: {f:cObject(typoscriptObjectPath: 'lib.menuTest', data:{menuId:'28'})}

Это то, что я пробовал - это должно быть special = directory с указанным идентификатором в special.value = XXXXXX.

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 напрямую, это работает, но я не знаю, как вставить переменную. У кого-нибудь есть подсказка или рабочее решение?

Спасибо

1 Ответ

0 голосов
/ 13 июня 2019

Я решил эту проблему с помощью друга, который обладает большим опытом работы с TypoScript.

Я не был так неправ, как я думал.

Это код в TypoScript.Я добавил шаблон, макет и частичные пути для будущего копирования / вставки :):

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}" />

Илиinline

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

Это переводит элементы в шаблон жидкости:

enter image description here

...