Zum Inhalt springen

Submenü mit Image aus Unterseiten

Erstellt am 5. August 2019 · 6 Antworten · letzte Antwort am 27. August 2019

Tags: Fluid, Bilder, TYPO3 9, Frage

thowe ·

Hallo liebe Foristit

im folgenden Fluid-Template rendere ich die Unterseiten als "Menü" im Bootstrap-Card Design. Ich würde gerne das jeweilige Bild, das als Refernz unter Seiteneigenschaften/Ressourcen hochgeladen wird im jeweiligen Card-Element anzeigenlassen. Wie geht das, wer kann mir hier helfen. Schon vielen Dank vorab.

<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<f:layout name="Default" />
<f:section name="Main">

	<f:if condition="{menu}">
		<f:if condition="{data.layout}==3">			
					<f:for each="{menu}" as="page" iteration="iterator">
							<f:if condition="{iterator.isFirst}">
								<div class="row">
							</f:if>
							<f:if condition="{iterator.cycle} % 3">
								<div class="col-md-4 mb-3">
									<div class="card h-100 mb-2">
										<!-- Card Image -->
										<div class="headerimage">
											<!-- hier soll Bild aus Seiteneigenschaft Unterseite gerendert werden -->
										</div>											
										<!-- Card Header -->
										<f:if condition="{data.header}">
											<h4 class="card-header">{page.title}</h4>            
										</f:if>
										<!-- Card Body -->
										<div class="card-body">
											{page.data.description}
										</div>
										<!-- Card Footer -->
											<div class="card-footer">
												<a class="btn btn-primary" href="{page.link}">{page.title}</a>
											</div>
									</div>
								</div>
							</f:if>
							<f:if condition="{iterator.isLast}">
								</div class="row">
							</f:if>
					</f:for>
		</f:if>
		<f:if condition="{data.layout}==0">
			<f:then>
				<ul>
					<f:for each="{menu}" as="page">
						<li class="submenu-ledagentur">
							<a href="{page.link}"{f:if(condition: page.target, then: ' target="{page.target}"')} title="{page.title}">
								<span>{page.title}</span>
							</a>
						</li>
					</f:for>
				</ul>
			</f:then>
		</f:if>
	</f:if>

</f:section>
</html>
Teisinger ·

Wie generierst du das mit MenuProcessor?

10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
10 {
    special = list
    special.value.field = pages
    levels = 7
    as = MenuMain
    expandAll = 1
    includeSpacer = 0
    titleField = nav_title // title
    dataProcessing {
        10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
        10 {
            references.fieldName = media
        }
    }
}
thowe ·

Hallo Teisinger,
danke für die rasche Antwort

ich verwende kein eigenes dataProcessing für dieses Menü.
Ich verwende das Standard Submenü von TYPO3 (out of the box).
Das heißt für dieses Menü gibt es kein:

# CType: menu_subpages
 
 tt_content.menu_subpages =< lib.contentElement
 tt_content.menu_subpages {
     templateName = MenuSubpages
    dataProcessing {
        10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
         10 {
            special = directory
            special.value.field = pages
             dataProcessing {
                 10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
                 10 {
                     references.fieldName = media
                }
             }
         }
    }
     stdWrap {
         editIcons = tt_content: header [header_layout], pages
        editIcons {
            iconTitle.data = LLL:EXT:fluid_styled_content/Resources/Private/Language/FrontendEditing.xlf:editIcon.menu
         }
     }
 }
thowe ·

Hallo Teisinger,

um alle korrekt darzustellen. Ich verwende unter meinen eigenen Templates (Templateextension) die Datei:
MenuSubpages.html aus der sysext:fluid_Styled_content. Darin ist in diesem Fluid-Template unter anderem:

...

f:for each="{menu}" as="page">

....
</f:for>

nur wo holt TYPO3 das {menu}?

Teisinger ·

"{menu}" ist der Defaultwert im "MenuProcessor".

Theoretisch müsstest du entweder den entsprechenden Teil von mir oben hier noch ergänzen bzw. halt überschreiben:
tt_content.menu_subpages

oder es könnte auch funktionieren (weiß ich jetzt aber nicht):
du müsstest dir mal die Variablen ausgeben lassen "<f:debug>{_all}</f:debug>" - dann sollte es unter pages denke ich ein files geben oder so - mit etwas glück reicht dir das Feld schon für ne schleife drüber und:
<f:image src="{file}" treatIdAsReference="1" alt="alt text" />

thowe ·

... also liebe Foristi

ich komme hier nicht weiter ...

es kann doch nicht sein, das ein "Feature" das in einigen CMS die ich kenne mit "KlickiKlacki" einefügt wird, hier bei dem "TYPO3" solche unlösbare Probleme generiert.

... und ich bin nicht der einzige, damit. Lösung scheint es, und gibt es nicht. unglaublich...

ich BITTEeeeee wirklich um Hilfe...
DANKE

Teisinger ·

TYPOSCRIPT
typo3_src-9.5.8\typo3\sysext\fluid_styled_content\Configuration\TypoScript\ContentElement\MenuSubpages.typoscript

Zusammengebaut wird es hier (default value ist menu)
typo3_src-9.5.8\typo3\sysext\frontend\Classes\DataProcessing\MenuProcessor.php

Und dann das machen was ich oben geschrieben hab... dann sollte das auch klappen.