[Frage] Menü Unterseiten (fluid_styled_content): Seitentitel von übergeordneter Seite in Element auf Übersichtsseite ausgeben TYPO3-Version: 9.5.9

  • siegman siegman
    T3PO
    0 x
    8 Beiträge
    0 Hilfreiche Beiträge
    11. 10. 2019, 11:19

    Hallo zusammen,

    ich bin gerade dabei das Fluid-Template von MenuSubpages.html (fluid_styled_content) ein wenig anzupassen und komme hierbei nicht weiter.

    SOLL-Zustand:
    Auf einer Übersichtsseite ist das Element MenuSubpages eingebunden. Es wurden mehrere Seiten mit Unterseiten als Ausgangspunkt ("Ausgewählte Seiten") definiert. Nun soll in der Ausgabe bei jeder Seite der Seitentitel der übergeordneten Seite angezeigt werden.

    IST-Zustand:
    Ich habe versucht das Ganze über einen ViewHelper mit einem lib-Element (lib.parentPagetitle) zu lösen, leider holt er sich hierbei logischerweise den Seitentitel der übergeordneten Seite von der Übersichtsseite, weil hier das MenuSubpages-Element integriert ist, und nicht von der angezeigten Unterseite.

    Fluid-Template MenuSubpages.html
    [code]<f:if condition="{menu}">
    <div class="row teaser">
    <f:for each="{menu}" as="page">
    <section class="teaser__item teaser__item--familie col-12 col-sm-6 col-lg-4 mb-4">
    <f:cObject typoscriptObjectPath="lib.categories" />
    <a href="{page.link}"{f:if(condition: page.target, then: ' target="{page.target}"')} title="{page.title}">
    <div class="teaser__wrap">
    <div class="teaser__head">
    <div class="teaser__subcategory"><f:cObject typoscriptObjectPath="lib.parentPagetitle"/></div>
    <div class="teaser__category--aus-dem-leben">
    <span class="sr-only"><f:cObject typoscriptObjectPath="lib.folgePagetitle"/></span>
    </div>
    </div>
    <div class="teaser__image image mb-4">
    <f:for each="{page.files}" as="thisimage" iteration="iterator">
    <f:if condition="{iterator.isFirst}">
    <f:image src="fileadmin/{page.files.0.originalFile.identifier}" />
    <span class="image__credits">copyright</span>
    </f:if>
    </f:for>
    </div>
    <h4 class="teaser__title">{page.title}</h4>
    <div class="teaser__text">
    <p>{page.data.abstract}</p>
    </div>
    <span class="teaser__read-more btn btn-outline-primary">mehr</span>
    </div>
    </a>
    </section>
    </f:for>
    </div>
    </f:if>
    [/code]

    TypoScript lib-Element
    [code]parentPagetitle = TEXT
    parentPagetitle.data = leveltitle: -2
    [/code]

    Habt ihr eine Idee wie ich den richtigen Seitentitel ausgegeben bekomme?

    Danke!


  • 1
  • 0 x
    3155 Beiträge
    140 Hilfreiche Beiträge
    11. 10. 2019, 14:02

    Du kannst den cObject auch Daten übergeben - z.B. die PID:
    https://stichwort.org/typo3/fluid/mehrere-variablen-an-fluid-cobject-viewhelper-uebergeben/

  • siegman siegman
    T3PO
    0 x
    8 Beiträge
    0 Hilfreiche Beiträge
    14. 10. 2019, 09:09

    Danke für dein Hilfe!

    Leider bringt es mir nichts die PID auszulesen. Ich möchte an dieser Stelle keinen statische Text vorgeben, sondern den Seitentitel der übergeordneten Seite dynamisch ausgeben lassen.

    EDIT:
    Folgende Anpassungen am cObject führt auch nicht zum gewünschten Ergebnis
    [code]<f:cObject typoscriptObjectPath="lib.parentPagetitle" data="{uid:'{page.data.uid}'}" />[/code]

    Wenn man den Wert "{page.data.uid}" einfach im Quellcode setzt wird zumindest die ID der entsprechenden Seite ausgegeben.

  • 0 x
    3155 Beiträge
    140 Hilfreiche Beiträge
    14. 10. 2019, 10:47

    Naja, Du müsstest das cObject auch noch umbauen. Mittels TypoScript kannst Du Dir ja den Seitenmtitel einer bestimmten Seite auslesen. Und diese "bestimmte Seite" übergibst Du Dir ja aus Fluid heraus (wenn Du statt der UID, die PID nimmst).

    Lesetipp, der hilfreich sein könnte:
    https://blog.marit.ag/2009/12/15/datenbankfelder-stdwrap-data/

  • 1