Zum Inhalt springen

Abfrage ob Bild in Seiteneigenschaften

Erstellt am 30. September 2008 · 5 Antworten · letzte Antwort am 10. Oktober 2008

Tags: Bilder, Frage

gumer ·

Ich habe einen Marker "IMAGEHEADER" der durch eine Bild ersetzt wird. Dieses Bild wird über den GIFBUILDER gerechnet und besteht aus drei Teilen. Zum einen aus einem Hintergrund-GIF sowie einem Bild, das in den Seiteneigenschaften hinterlegt wird, und einer Maske.

Das Bild wird auch richtig gerechnet und platziert.

Nun kann es aber vorkommen, das auf diversen Seiten kein Bild in den Seiteneigenschaften hinterlegt wird. In diesem Fall möchte ich den Marker natürlich ungefüllt lassen. Momentan wird nämlich in diesem Fall das Hintergrund-GIF ohne Bildinhalt angezeigt.

Kann ich in Typoscript abfragen, ob in den Seiteneigenschaften ein Bild ist, und gegebenenfalls den Marker leer lasen.

Hier noch mein Code im Setup:

subparts.IMAGEHEADER = IMAGE
subparts.IMAGEHEADER {
  file = GIFBUILDER
  file {
       XY = 400,200

       #der Hintergrundrahmen
       5 = IMAGE
       5.file=fileadmin/templates/images/image_back.gif

       #das eigentliche Motiv aus den Seiteneigenschaften
       10 = IMAGE
       10 {
         offset = 5,5
         file.width = 390
         file.height = 187
         file.import=uploads/media/      
         file.import.listNum = 0
         file.import.override.field = media
         mask = fileadmin/templates/images/image_maske.jpg
      }
    }
  }
einpraegsam.​net ·

Du kannst ifEmpty nutzen - hier ein schnelles Beispiel:

temp.headimg = TEXT
temp.headimg {
	data = levelmedia: -1,slide
	field.listNum = 0
	ifEmpty = head.jpg
	wrap = url(uploads/media/|)
}
gumer ·

Vielen Dank für deine schnelle Nachricht

Ich glaube das ist aber der falsche Ansatz. Bei deinem Beispiel nimmt er ein Standardbild, sobald kein Bild in den Seiteneigenschaften vorhanden ist.
Ich wollte aber, dass der komplette Marker "subparts.IMAGEHEADER = IMAGE" entfernt wird.

Vielleicht kannst du mir nochmals einen Tipp geben.

einpraegsam.​net ·
gumer schrieb

Vielen Dank für deine schnelle Nachricht

Ich glaube das ist aber der falsche Ansatz. Bei deinem Beispiel nimmt er ein Standardbild, sobald kein Bild in den Seiteneigenschaften vorhanden ist.
Ich wollte aber, dass der komplette Marker "subparts.IMAGEHEADER = IMAGE" entfernt wird.

Vielleicht kannst du mir nochmals einen Tipp geben.

Das war ein Beispiel!
Du kannst ifFalse verwenden und den Marker oder Subpart leer machen...

gumer ·

Nochmals Danke für deine Tipps. Ich komme immer näher an die Lösung.
Bin nun soweit, dass ich mit ifEmpty prüfen kann ob ein Bild in den Seiteneigenschaften liegt.

Habe es auch geschafft den Inhalt in diesem Fall mit einem anderen Bild zu füllen (nur um die Funktion zu testen, möchte ich ja eigentlich nicht). Jetzt ist mein Problem, wie ich das übergeordnete cObject entfernen kann.

Ich prüfe ja ob das cobject "subparts.IMAGEHEADER.file.10" leer ist, möchte aber das übergeordnete cobject "subparts.IMAGEHEADER" entfernen.

Hier nochmals mein erweitertes Script:

subparts.IMAGEHEADER = IMAGE
subparts.IMAGEHEADER {
  file = GIFBUILDER
  file {
       XY = 400,200
       #der Hintergrundrahmen
       5 = IMAGE
       5.file=fileadmin/templates/images/image_back.gif
       #das eigentliche Motiv
       10 = IMAGE
       10 {
         offset = 5,5
         file.width = 390
         file.height = 187
         file.import = uploads/media/
         file.import.data = levelmedia: -1
         file.import.listNum = 0
       }
  }
}
#subparts.IMAGEHEADER.file.10.stdWrap.ifEmpty.cObject >
subparts.IMAGEHEADER.file.10.stdWrap.ifEmpty.cObject = IMAGE
subparts.IMAGEHEADER.file.10.stdWrap.ifEmpty.cObject {
  file = fileadmin/images/blindbild.jpg
}
gumer ·

Habs endlich gelöst. Vielen Dank für die Hilfestellungen. Habe trotzdem noch eine Ewigkeit gebraucht, bis ich das ganze in meinen Kopf bekommen habe.

Nur kurz hier noch die Lösung. Musste nur eine Zeile einfügen mit if.isTrue.

subparts.IMAGEHEADER = IMAGE
subparts.IMAGEHEADER {
  #diese Zeile habe ich eingefügt
  stdWrap.if.isTrue.field = media
  file = GIFBUILDER
  file {
       format=jpg
       quality=100
       XY = 400,200
       #der Hintergrundrahmen
       5 = IMAGE
       5.file=fileadmin/templates/images/image_back.gif
       #das eigentliche Motiv
       10 = IMAGE
       10 {
         offset = 5,5
         file.width = 390
         file.height = 187
         file.import = uploads/media/
         file.import.data = levelmedia: -1
         file.import.listNum = 0
         mask = fileadmin/templates/images/image_maske.jpg
       }
  }
}