[Frage] Fluid: Auf Bilder einer anderen Seite (uid) zugreifen TYPO3-Version: -

  • chrickenh chrickenh
    Jedi-Ritter
    0 x
    137 Beiträge
    0 Hilfreiche Beiträge
    05. 05. 2016, 16:32

    Hallo, ich stehe mal wieder auf dem Schlauch.
    Hoffentlich kann ich meine Problematik einigermaßen verständlich erläutern.

    Im aktuellen Projekt sollen auf jeder Seite im Trailer mehrere Bilder stehen. Und meine Grafikerin will unbedingt, dass es auf jeder Seite die selben Bilder sind. Vom Kunden zu verlangen, auf jeder Seite die selben Bilder einzubauen ist keine Option.
    Also gilt, auf jeder Seite die Bilder der UID 1 auslesen.

    Ich arbeite unter Typo3 7.6.4 mit Fluid und Mask 1.1.4.

    Der entscheidende Teil des Fluid-Templates sieht zur Zeit so aus:

    1. <f:for each="{data.tx_mask_bilder_breit}" as="file" key="index">
    2. <div class="bild bildbreit bildbreit{index}">
    3. <f:image src="{file.uid}" alt="{file.alternative}" title="{file.title}" treatIdAsReference="1" width="200c" height="130c" />
    4. </div>
    5. </f:for>
    6.  
    7. <f:for each="{data.tx_mask_bilder_hoch}" as="file" key="index">
    8. <div class="bild bildhoch bildhoch{index}">
    9. <f:image src="{file.uid}" alt="{file.alternative}" title="{file.title}" treatIdAsReference="1" width="93c" height="130c" />
    10. </div>
    11. </f:for>

    data.tx_mask_bilder_breit bzw. data.tx_mask_bilder_hoch sind Mediaelemente, die mehrere Bilder enthalten können.

    Daraus ergibt sich der folgende HTML-Quellcode:

    1. <div class="bild bildbreit bildbreit0">
    2. <img src="fileadmin/_processed_/csm_P1020133_037d1d7688.jpg" width="200" height="130" alt="" />
    3. </div>
    4.  
    5. <div class="bild bildbreit bildbreit1">
    6. <img src="fileadmin/_processed_/csm_P1020133_037d1d7688.jpg" width="200" height="130" alt="" />
    7. </div>
    8.  
    9. <div class="bild bildbreit bildbreit2">
    10. <img src="fileadmin/_processed_/csm_tier3_f577b5a6bd.jpg" width="200" height="130" alt="" />
    11. </div>
    12.  
    13.  
    14.  
    15. <div class="bild bildhoch bildhoch0">
    16. <img src="fileadmin/_processed_/csm_P1020137_6044ebdb9b.jpg" width="93" height="130" alt="" />
    17. </div>
    18.  
    19. <div class="bild bildhoch bildhoch1">
    20. <img src="fileadmin/_processed_/csm_P1020134_5b1df296ec.jpg" width="93" height="130" alt="" />
    21. </div>
    22.  
    23. <div class="bild bildhoch bildhoch2">
    24. <img src="fileadmin/_processed_/csm_P1020129_6fd7473093.jpg" width="93" height="130" alt="" />
    25. </div>

    Was ich jetzt suche, ist eine Möglichkeit, entweder die Inhalte einer anderen Seite zu laden oder zu vererben, also die Medieninhalte der Eltern.Seite zu laden.
    Soweit ich es verstanden habe, bietet Fluid diese Möglichkeit nicht, deswegen habe ich mit cObject experimentiert, bin aber auch nicht wieter gekommen:

    1. <f:cObject typoscriptObjectPath="lib.trailerBilder" />

    1. # Text, der in das Fluid-Template injiziert wird.
    2. lib.trailerBilder = COA
    3. lib.trailerBilder {
    4. 10 = TEXT
    5. 10 {
    6. data = DB:pages:1:tx_mask_bilder_breit
    7. wrap (
    8. <div class="trailer_bild">
    9. |
    10. </div>
    11. )
    12. }
    13. }

    Das liefert eine 3, weil drei Bilder eingebunden sind.
    Das hilft mir aber auch nicht.

    Was mir fehlt ist ein gute Ideee, wie ich auf jeder Seite Medien einer bestimmten Seite oder vererbte Medien einbinden und per fluid darstellen kann.

    Lieben Gruß
    Christian


  • 1
  • chrickenh chrickenh
    Jedi-Ritter
    0 x
    137 Beiträge
    0 Hilfreiche Beiträge
    13. 05. 2016, 14:48

    Vielen Dank fürs Lesen.
    Das Problem hat sich erledigt, weil ich nun auf einer anderen Seite den gewünschten Trailer als FCE eingebunden habe und dann einfach den Inhalt jener Seite auf jeder anderen Seite einbinde:

    1. # Text, der in das Fluid-Template injiziert wird.
    2. lib.trailer = CONTENT
    3. lib.trailer {
    4.  
    5. table = tt_content
    6. pidInList = 1
    7. orderBy = sorting
    8. }
    9. }

  • 1