Zum Inhalt springen

Anzahl der Bilder in einem Image Element bzw. Anzahl der Files.References

Erstellt am 21. Februar 2014 · 4 Antworten · letzte Antwort am 21. Februar 2014

Tags: Dateien & FAL, Bilder, TYPO3 6, Frage

aromedia ·

Hallo zusammen,

hab schon vieles durchsucht und gelesen, komme aber nicht weiter, wobei es eigentlich trivial sein müsste.

Mein Problem:
Ich habe einen Image-Slider (Markup wie Bootstrap3 Carousel) realisiert, der eine Gruppe von jeweils 3 (statt 1 wie bei Bootstrap) Bilder ausgibt.
Die Bilder werden einfach einem Contentelement hinzugefügt und über FILES ausgelesen.
Das klappt auch hervorragend, solange es sich jeweils um eine durch 3 teilbare Anzahl an Bildern im Content Element handelt.
Hat der Redakteur z.B. nur 5 Bilder gespeichert, werden benötigte </div></div> nicht ausgegeben, da ich mit mod3 immer nur nach 3 Bildern die Tags schließe.

Eine einfache Möglichkeit wäre, wenn ich die Anzahl der Bilder ermitteln und z.B. über LOAD_REGISTER speichern könnte. Hab aber schon vieles versucht, aber es klappt einfach nicht, das Register bleibt leer.

Hier mein letzter Versuch:

  30 = FILES
  30 {
    references {
      table = tt_content
      uid.data = field:uid
      fieldName = image
    }
    renderObj = COA
    renderObj {
			5 = LOAD_REGISTER
			5 {
				imgCounter.stdWrap.numRows.30
			}

Vielen Dank vorab, für jegliche Hinweise.

Gruß
Andy

zabinetta ·

Hallo Andy,
na zum einen ist da im Typoscript der Wurm drin.
zum andern geht numrows mit fal glaube ich nicht mehr
probier mal so:

...
5 = LOAD_REGISTER
5.imgCounter.stdWrap {
  cObject = TEXT 
  cObject {
    data = register:imgCounter
    wrap = |+1
  }
  prioriCalc = intval
}
aromedia ·

Vielen Dank für den Hinweis. Habe gerade gesehen, dass in der Template-Analyse ein Fehler ausgegeben wird.
Deinen Ansatz nutze ich bereits, um die anderen Zähler hoch zu zählen(um zu sehen, ob 3 Bilder in der Gruppe sind).
Nur benötige ich jetzt die Gesamtanzahl der Bilder in dem Contentelement.
Denn meine Idee war:

wenn Gesamtanzahl = Counter dann Ausgabe der schließenden Tags.
Bislang gebe ich die schließenden Tags nach jedem 3. Element aus, aber das funzt natürlich nicht, bei z.B. 5 Elementen.

Oder andersrum, nach Ausgabe des letzten Bildes sollen die schließenden Tags ausgegeben werden.

PS:In der TSRef steht bei Files, dass es stdWrap unterstützt, darum dachte ich, das numRows funktionieren sollte.

aromedia ·

Jetzt bin ich etwas weitergekommen. Die Anzahl der Bilder steht ja im Feld images in der tt_content.
Also habe ich mal zum Test versucht, dieses Feld auszulesen. Wenn ich bei 5.data die uid direkt eintrage, also

5.data = DB:tt_content:39:image

funktioniert es. Mit TSFE:id aber nicht. Wie kann ich hier die aktuelle ID erhalten/einfügen.

  30 = FILES
  30 {
    references {
      table = tt_content
      uid.data = field:uid
      fieldName = image
    }
    renderObj = COA
    renderObj {
	5 = TEXT
        5.data = DB:tt_content:TSFE:id:image
				
        5.wrap = <h3>|</h3>
				5.insertData = 1
aromedia · · Beste Antwort

Falls es jemand hilft, so bekommt man die Anzahl der Bilder. (Typoscript ist gut, aber leider nicht immer intuitiv, bei so einfachen Dingen)

        5 = TEXT
        5.dataWrap = DB:tt_content:{field:uid}:image
	5.wrap3 = <h3>{|}</h3>
	5.insertData = 1