ОПЕЧАТКА3: вставленное жидкостью меню не содержит элементов

#templates #menu #typoscript #fluid #items

#шаблоны #меню #typoscript #жидкость #Товары

Вопрос:

Я пытаюсь лучше изучить и понять пакеты сайтов TYPO3 на основе жидкостей и примерно следовал этому руководству: TYPO3 Sitepackage Tutorial . Я отклонился от него в нескольких пунктах, хотя, чтобы упростить его (я опустил все, что связано с Jumbotron, и заменил его более простым меню моего собственного создания.

Это часть, которую я сгенерировал для меню:

 <div class="mainmenu">
*
<f:for each="{mainnavigation}" as="mainnavigationItem">
    <span class="nav-item {f:if(condition: mainnavigationItem.active, then: 'active')}">
        <a class="nav-link" 
           href="{mainnavigationItem.link}"
           target="{mainnavigationItem.target}"
           title="{mainnavigationItem.title}"
            >
            {mainnavigationItem.title}
        </a>
    </span>
</f:for>
*
</div>
  

Мой пакет сайта действительно работает в некоторой степени, и я мог бы сгенерировать с его помощью главную страницу и некоторые подстраницы. К сожалению, мои ссылки на пункты меню / вложенные страницы не отображаются. Они не добавляются в меню. Кажется, что объект MenuProcessor пуст. Я знаю, что соответствующая часть фактически отображается, потому что я вижу статические части, включенные в страницу, но ничего больше. Короче говоря: цикл for ничего не производит. Я предполагаю, что по какой-то причине не найдено «mainnavigationItems». Возможно, мне просто где-то не хватает простой настройки, которая не имеет ничего общего с Fluid или sitepackages.

Вот код для моего файла setup.typoscript:

 @import 'EXT:fluid_styled_content/Configuration/TypoScript/setup.typoscript'

page = PAGE
page {
   typeNum = 0

   10 = FLUIDTEMPLATE
   10 {
      templateName = TEXT
      templateName.stdWrap.cObject = CASE
      templateName.stdWrap.cObject {
         key.data = pagelayout

         pagets__site_package_default = TEXT
         pagets__site_package_default.value = Default

         default = TEXT
         default.value = Default
      }
      templateRootPaths {
         0 = EXT:site_package/Resources/Private/Templates/Page/
         1 = {$page.fluidtemplate.templateRootPath}
      }
      partialRootPaths {
         0 = EXT:site_package/Resources/Private/Partials/Page/
         1 = {$page.fluidtemplate.partialRootPath}
      }
      layoutRootPaths {
         0 = EXT:site_package/Resources/Private/Layouts/Page/
         1 = {$page.fluidtemplate.layoutRootPath}
      }
      
      dataProcessing {
        10 = TYPO3CMSFrontendDataProcessingMenuProcessor
        10 {
            levels = 1
            includeSpacer = 1
            as = mainnavigation     
        }
      }
      
   }

   includeCSS {
        website = EXT:site_package/Resources/Public/Css/look.css
   }

   includeJSFooter {
      website = EXT:site_package/Resources/Public/JavaScript/myscript.js
   }
}

config {
   absRefPrefix = auto
   cache_period = 86400
   debug = 0
   disablePrefixComment = 1
   doctype = html5
   extTarget =
   index_enable = 1
   index_externals = 1
   index_metatags = 1
   inlineStyle2TempFile = 1
   intTarget =
   linkVars = L
   metaCharset = utf-8
   no_cache = 0
   pageTitleFirst = 1
   prefixLocalAnchors = all
   removeDefaultJS = 0
   sendCacheHeaders = 1

   // Compression and concatenation of CSS and JS Files
   compressCss = 0
   compressJs = 0
   concatenateCss = 0
   concatenateJs = 0
}
  

У вас есть какие-либо идеи, почему в моем меню нет элементов? Спасибо за ваше время!

Ответ №1:

Я кое-что понял сам: кажется, я не могу поместить меню в частичное. Вместо этого я интегрировал эту часть в основной шаблон макета, и теперь пункты меню перечислены.

Я могу только предположить, что какая-то информация не передается автоматически туда, где это было бы необходимо, при визуализации частичного файла.

Ответ №2:

Я думаю, вам нужно добавить начальную точку или список страниц в ваш typoscript.

 dataProcessing {
10 = TYPO3CMSFrontendDataProcessingMenuProcessor
10 {
  levels = 1
  special = list
  special.value = 1,2,3,4
  # or
  special = directory
  special.value = 3
  includeSpacer = 1
  as = mainnavigation     
}
  

Комментарии:

1. Спасибо за ваш ответ, я больше не изучал проблему, так как нашел обходной путь, не помещая навигацию внутри partial. К настоящему времени я предполагаю, что проблемы возникли из-за нарушения соглашения об именовании для fluid-файлов. С тех пор я больше не изучал проблему.