#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-файлов. С тех пор я больше не изучал проблему.