Использование процессора данных из TYPO3 8

Я пытаюсь использовать процессор данных из TYPO3 8, чтобы сделать свое меню.

У меня есть этот код в моем скрипте TypoScript:

page = PAGE
page{
  10 = FLUIDTEMPLATE
  10 {
      file = fileadmin/abis/templates/BootstrapTmpl.html
      partialRootPath = fileadmin/abis/Partials/
      layoutRootPath =  fileadmin/abis/Layouts/
  }
  dataProcessing {
    10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
    10 {
      entryLevel= 0
      excludeUidList = 27,30,31
      levels = 5
      #includeSpacer = 1
      titleField = nav_title // title
      as = huhu
    }
  }
  ...
}

А этот в разделе:

<f:section name="myMenu" >
    <f:debug title="title">{huhu}</f:debug>
    <f:cObject typoscriptObjectPath="obj.logo" />
    <ul class="nav navbar-nav navbar-left">
        <f:for each="{huhu}" as="menuItem">
             <li>
                {menuItem.text}
                <f:if condition="menuItem.subItems">
                    <f:render section="myMenu" arguments="{myMenu: menuItem.subItems}" />
                </f:if>
            </li>
        </f:for>
    </ul>
</f:section>

Мой вывод HTML пуст. Переменная {huhu} пуста. И я не знаю, почему. У кого-нибудь есть идея?


person User__42    schedule 27.09.2017    source источник
comment
Зачем кому-то называть свой скриптовый язык TypoScript?   -  person Peter Mortensen    schedule 27.09.2017


Ответы (3)


Попробуйте поместить свою обработку данных в page.10:

page = PAGE
page {
    10 = FLUIDTEMPLATE
    10 {
        file = fileadmin/abis/templates/BootstrapTmpl.html
        partialRootPath = fileadmin/abis/Partials/
        layoutRootPath =  fileadmin/abis/Layouts/

        dataProcessing {
            10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
            10 {
                entryLevel= 0
                excludeUidList = 27,30,31
                levels = 5
                #includeSpacer = 1
                titleField = nav_title // title
                as = huhu
            }
        }
    }
}
person Thomas Löffler    schedule 27.09.2017
comment
Спасибо, Томас. - person User__42; 27.09.2017

Во-первых, «обработка данных» должна быть выполнена на странице 10. И во-вторых, вы должны передать свои аргументы в свой раздел в теге «f: render». Не знаю, делаете ли вы это, потому что эта часть отсутствует в вашем примере кода.

person tobi    schedule 27.09.2017
comment
Ich использовал аргументы с {all} и спросил себя, почему он не запускается. Но пунктом на странице 10 были мои проблемы. Спасибо за помощь :-) - person User__42; 27.09.2017

У меня была похожая проблема, и мой код typoscript был правильным. Однако забыл добавить

arguments="{_all}"

при звонке

<f:render partial="header" arguments="{_all}" />

в моем макете. Вы также можете использовать <f:debug>{huhu}</f:debug> в своем партиале, если huhu равно null, возможно, вы забыли о arguments="{_all}".

person Daniel pühringer    schedule 23.03.2020