Zum Inhalt springen

Bild aus Mediafield mehrfachverwenden

Erstellt am 12. Dezember 2006 · 11 Antworten · letzte Antwort am 8. Januar 2007

Tags: Bilder, Frage

johanness ·

Hallo,

mit folgendem TS-Code lese ich aus dem Mediafield ein Bild aus und lasse es als Headerbild generieren:

temp.headerbild = TEXT
temp.headerbild.value = fileadmin/media/_header/alternativ.jpg
temp.headerbild.override {
  required = 1
  data = levelmedia: 2, slide
  wrap = fileadmin/media/_header/|
  }

Mein Problem: Wenn ich auf verschiedenen Seiten das gleiche Bild im Seitenheader angebe, klappt es nicht, weil Typo3 automatisch "_01" an den Dateinamen anfügt.

Wie löse ich das?
Danke!

just2b ·

machs so:

	temp.image = IMAGE
	temp.image{
        	file.maxH = 200
        	file.maxW = 760
		file.import=uploads/media/	
		file.import.data = levelmedia: -1,slide
		file.import.listNum = 0
		file.import.override.field = media
	}

georg

johanness ·

Hallo Georg,
ich lasse das Bild folgendermaßen einlesen:

<td styles="background-image: url(###MARKER###);">

Deshalb der Ansatz mit:

temp.headerbild = TEXT

Grund ist, dass ich als HTML-Tag innerhalb der Tabelle ein transparantes gif-bild darüberlege als eine Art Maske. Ich wollte es nicht it dem Gif-Builder lösen, da bei diesem Projekt viel Wert auf die Bilder gelegt wird und ich beim Gif-Builder die Qualität nur sehr schlecht einstellen kann. Deshalb will ich die Bilder eins zu eins, wie in ImageReady abgespeichert online haben.

Bei deinem Ansatz, der allerdings nicht kompatibel ist zu meinem, hätte man das Problem mit der harten Verlinkung auf ein so nicht existierendes temporäres Typo3-Bild umgangen.

Was machen wir da? Ich hoffe, du verstehst meine Problemstellung.

just2b ·

du könntest noch mit IMG_RESOURCE statt mit IMAGE arbeiten und bekommst nur den Pfad zurück

oder nur mit Text und den pfad zum bild aus einem input feld holen.

das ist das mir einfällt..

georg

johanness ·
just2b schrieb

du könntest noch mit IMG_RESOURCE statt mit IMAGE arbeiten und bekommst nur den Pfad zurück

oder nur mit Text und den pfad zum bild aus einem input feld holen.

das ist das mir einfällt..

georg

Mit IMG_RESOURCE hatte ich es auch erst versucht. Das wäre der logisch beste Weg. Aber das habe ich nicht auf die Reihe bekommen. Evtl. hast du da ein TS-Snippet zur Hand?

just2b ·
temp.image = COA
temp.image {
	# HTML-Objekt
	5 = HTML
	5.value = style="background:url(
	
	# Bild
	10 = IMG_RESOURCE
	10 {
        	file.maxH = 200
        	file.maxW = 760
		file.import=uploads/media/	
		file.import.data = levelmedia: -1,slide
		file.import.listNum = 0
		file.import.override.field = media
	}
	
	# HTML-Objekt
	15 = HTML
	15.value = ) 50% no-repeat;"
 }

und im Template

div id="header" ###MARKER###

georg

johanness ·

Grundsätzlich läuft das Ding. ;-)

Aber es besteht genau das gleiche Problem: Bei Mehrfachverwendung eines Bildes fügt Typo3 ein _01 mit an. Dieses steht auch bei der Verwendung von IMG_RESOURCE im Quellcode. Das Bild existiert aber dann nicht!

karlchen ·

du brauchst das Bild nicht auf jeder einzelnen Seite ins Mediafeld legen,

es reicht wenn du das in deinem Root machst,
durch

file.import.data = levelmedia: -1,slide

wird bei nicht vorhandenem Bild eine ebene höher "geslidet" um zu schauen ob dort ein bild hinterlegt ist.

Somit kannst du ein Bild auf allen Unterseiten verwenden.

Karlchen

johanness ·
karlchen schrieb

du brauchst das Bild nicht auf jeder einzelnen Seite ins Mediafeld legen,

es reicht wenn du das in deinem Root machst.
[... ]wird bei nicht vorhandenem Bild eine ebene höher "geslidet" um zu schauen ob dort ein bild hinterlegt ist.

Somit kannst du ein Bild auf allen Unterseiten verwenden.

Karlchen

Das ist mir schon klar. Wenn ich aber eine komplexe Seitenstruktur habe, dann will ich auf einzelnen Unterseiten verschiedener Seiten die gleichen Bilder anfügen. Deshalb mus sich auf mehreren Seiten im Mediafield die gleichen Bilder anhängen. Und Typo3 macht dann ein _01 an den Dateinamen.

steffenk ·

für Mehrfachverwendung von Bildern empfiehlt es sich, diese als Ressource zum Template zu laden. Ansprechen kann man es dann so:

file = seitenbild*.gif
johanness ·
steffenk schrieb

für Mehrfachverwendung von Bildern empfiehlt es sich, diese als Ressource zum Template zu laden. Ansprechen kann man es dann so:

file = seitenbild*.gif

Das klingt gut. Aber hast du etwas mehr code, damit ich den Zusammenhang verstehe?

Danke!
Nochmal zur Info: Ich habe viele verschiedene Bilder mit ganz unterschiedlichen Namen, die alle irgendwo auf der Seite eingebunden werden.

johanness ·
temp.image = IMAGE
        temp.image{
                file.maxH = 200
                file.maxW = 760
                file.import=uploads/media/     
                file.import.data = levelmedia: -1,slide
                file.import.listNum = 0
                file.import.override.field = media
        }

Ich habe jetzt übrigens rausgefunden, warum es bei mir nie ging. Ich hatte immer den Pfad babgeändert, weil meine Headerbilder wo anders liegen, als in obigem Pfad. Aber das ist natürlich der temoräre Pfad, wesshalb man den nicht ändern darf. ;-)
Also es geht schon so! Genau so! Danke an alle!!