Zum Inhalt springen

Erstes Bild vom Content Element "Text und Bilder"

Erstellt am 26. Januar 2015 · 5 Antworten · letzte Antwort am 27. Januar 2015

Tags: Inhaltselemente, Bilder, TYPO3 6.x, Frage

fmtaxi ·

Hallo,

ich versuche mit den TypoScript den Inhalt von Content-Elementen des Typs "Text und Bilder" auszulesen. An die Überschrift und den Inhalt bin ich herangekommen, aber bei dem Zugriff auf das erste Bild komme ich nicht weiter. Mein TypoScript sieht bis jetzt wie folgt aus:

page = PAGE
page.typeNum = 0
 
# Gibt die Spalte "normal" (colPos = 0) aus
page.10 < styles.content.get
page.10.renderObj = COA
page.10.renderObj {
   # Jedes Content Element wrappen
   stdWrap.wrap = <div>|</div>

   # Im Feld tt_content.header steht die Überschrift.
   10 = TEXT
   10.field = header
   10.wrap =<h1>|</h1>

   # Im Feld tt_content.bodytext steht der Text.
   20 = TEXT
   20.field = bodytext
   20.wrap =<p>|</p>
}

Wie schaffe ich es nun, dass nach dem Inhalt in dem <p>-Tag ein <img>-Tag erzeugt wird, in dem das erste Bild des jeweiligen Content-Elements enthalten ist?

Viele Grüße

Chrissli ·

Indem dein
20=TEXT
ein COA wird.
Dieses beinhaltet 2 Teile, einmal den Text, wie bisher, der Zweite Teil ist vom Typ FILES. FILES hat ähnlich wie CONTENT ein renderObj mit dem du definieren kannst, wie z.b. die Bilder eines CE gerendert werden. Ebenso kannst du dort festlegen, wieviele Bilder und mittels welchen Referenz-Feldes du nach den Bildern suchst ( media-Feld der Seite oder images-Feld des CEs ).
Schau einfach mal in der TSREF nach bzw. gibt es diverse Anwendungsbeispiele für die Verwendung von FILES.
Du solltest auch bedenken, dass dein Bodytext per parseFunc gerendet werden sollte, damit die Links usw. auch entsprechend dargestellt werden. Das könnte beim Wrap mit <P> ggf. ein Problem geben da dieses je nach Inhalt bereits vorhanden sein könnte.

fmtaxi ·

Hallo, vielen Dank für deine Antwort!

Leider komme ich immer noch nicht so richtig weiter. Die Verknüpfung vom Content-Element zum Bild klappt nicht so richtig:

page = PAGE
page.typeNum = 0
 
# Gibt die Spalte "normal" (colPos = 0) aus
page.10 < styles.content.get
page.10.renderObj = COA
page.10.renderObj {
   # Jedes Content Element wrappen
   stdWrap.wrap = <div>|</div>
 
   # Im Feld tt_content.header steht die Überschrift.
   10 = TEXT
   10.field = header
   10.wrap =<h1>|</h1>
 
   # COA beinhaltet 2 Teile, einmal den Text, wie bisher, der Zweite Teil ist vom Typ FILES
   20 = COA
   20 {

      # Im Feld tt_content.bodytext steht der Text.
      10 = TEXT
      10.field = bodytext
      10.wrap =<p>|</p>

      #Bild auslesen
      20 = FILES
      20 {
         references {
            table = tt_content
            uid.data = field:uid
            fieldName = image
         }

         renderObj = IMAGE
         renderObj.file.import.data = file:current:uid
      }
   }
}

Irgendwie wird einfach kein Bild angezeigt..

Chrissli ·

Nada Problem. Einfach noch den Thread als gelöst markieren -> Unterm Benutzer des LÖsungsbeitrags auf den Schraubenschlüssel und "ist Lösung" anklicken.