Проблема в следующем.Я создал аккордеон в качестве элемента контента, который имеет три таблицы
Первой является таблица tt_content , которая имеет отношение 1-1 к таблице accordionsettings .
Таблица accordionsettings имеет отношение 1-n к accordioncontent .
аккордеонное содержание
Это результат моего бэкенда:
Покатак хорошо все работает отлично.Проблема возникает, когда я пытаюсь сделать несколько элементов на одной странице.Что я подразумеваю под этим:
CASE : у меня есть элемент аккордеонного контента вверху веб-сайта и один внизу.Это означает, что я создал два разных элемента содержимого.
Мои данные обрабатываются на моем
ext_name / Configuration / Setup / tt_content.typoscript
ext_accordion < lib.contentElement
ext_accordion {
templateRootPaths.30 = {$ExtPrivate}Templates/
partialRootPaths.30 = {$ExtPrivate}Partials/
templateName = Accordion.html
dataProcessing {
30 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
30 {
table = accordionsettings
as = accordionsettings
dataProcessing {
50 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
50 {
if.isTrue.field = accordion_content_relation
table = accordioncontent
pidInList = this
where.field = uid
where.intval = 1
where.dataWrap = accordionsettings = |
as = accordionContents
dataProcessing {
70 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
70 {
references.fieldName = files
as = images
}
}
}
}
}
}
}
Что я получаю во внешнем интерфейсе при отладке, это следующее:
Проблема: Я хотел бы сделать оба на сайте, но, как вы можете видеть, он вернул мне результаты в виде массива.Это означает, что если я хочу объявить переменную в жидкости для чтения информации, мне нужно будет включить числа 0 и 1. Если бы у меня было три аккордеонных элемента, то мне пришлось бы также включить 2.Это не динамично и не вариант.На данный момент переменными являются следующие:
- accordionsettings.0.data.accordion_speed
- accordionsettings.0.accordionContents
Вопрос: Как я могу получить переменные, подобные этой, и при этом получить оба аккордеона?
- accordionsettings.data.accordion_speed
- accordionsettings.accordionContents
Нужно ли перестраиватьвсе по-другому?Я сейчас в тупике.
РЕДАКТИРОВАТЬ для @Claus Due
Я попытался создать цикл, и это выглядело так:
<f:for each="{accordionsettings}" as="settings" key="key">
<div class="grid-container">
<div class="grid-x">
<div class="cell">
<f:alias map="{
speed: settings.data.accordion_speed,
multiexpand:settings.data.accordion_multiexpand,
allClosed:settings.data.accordion_all_closed,
disabled:settings.data.accordion_disabled,
accordionContents:settings.accordionContents
}">
<f:debug>{settings}</f:debug>
<f:render partial="Accordion/Accordion" arguments="{speed: speed, multiexpand: multiexpand, allClosed: allClosed, disabled: disabled, accordionContents: accordionContents}"/>
</f:alias>
</div>
</div>
</div>
</f:for>
Но в интерфейсе я получаю следующее:
Рендеринг всех элементов аккордеона для каждого созданного элемента.