[TYPO3-german] IMAGE Dateipfad in den Header

Stefan Padberg post at bergische-webschmiede.de
Wed Mar 16 08:02:14 CET 2016


Am 15.03.2016 um 12:47 schrieb Gerald Gräupner:
> Hallo Stefan,
> 
> ok, ich versuche mal, es genauer zu beschreiben:
> 
> Ich möchte im Header folgende Anweisung stehen haben (das drumrum hab
> ich mal weggelassen):
> 
> <head>
> ..
> "<style type="text/css">body #main > header {background-image:
> url(fileadmin/blablapfad/picture.jpg)}</style>"
> 
> </head>
> 
> Das benötige ich so, weil meine CSS das Hintergrundbild nach speziellen
> Vorgaben rendert. Tut aber hier nichts zur Sache. Das picture.jpg ist
> als content-Element vorhanden. Wenn ich es als Pfad in den value des
> Textobjektes statisch eintrage, wird das Bild mit dem folgenden Wrap
> dargestellt.
> 
> headerData {
>  12 = TEXT
>  12.value = fileadmin/blablapfad/picture.jpg
>  12.stdWrap.wrap = "<style type="text/css">body #main > header
> {background-image: url( | )}</style>"
> }
> 
> Jetzt möchte ich den Dateipfad nicht statisch im Template eintragen,
> sondern im Content. So denke ich, dass man mit einer Abfrage auf die
> tt_content Tabelle an den Pfad der Bilddatei herankommen muss. Wenn ich
> den Pfad habe, müsste dieser nur noch an StdWrap übergeben werden.
> Deswegen references und renderObj auf IMG_Resource.
> 
> Ich stelle aber auch gerade fest, dass meine stdWrap Anweisung hier im
> Beitrag nicht angezeigt wird, weil die Option HTML off eingestellt ist.
> Weisst Du, wie man das einschalten kann? Ansonsten kannst Du meinen
> stdWrap nicht sehen.
> 

Hi,

du hast zwei Möglichkeiten:

a) Du gibst das Hintergrundbild in den Seiteneigenschaften ein. Dann
kannst du die URL des Bildes folgendermaßen ermitteln:

lib.backgroundimage = FILES

lib.backgroundimage {

  references {

    table = pages

    fieldName = media

  }

  begin = 0

  maxItems = 1

  renderObj = TEXT

  renderObj {

    data = file:current:publicUrl

  }

}

b) Du gibst das Bild als Inhaltselement ein, weil du ein Backendlayout
hergestellt hast, in dem ein Eingabefeld für das Bild ist. (Die
colPos=13 ist nur ein Beispiel. Hier musst du natürlich die Zahl
eintragen, die du im Backendlayout vergeben hast.)

lib.backgroundimage < styles.content.get
lib.backgroundimage.select.where = colPos=13

lib.backgroundimage.renderObj = FILES
lib.backgroundimage.renderObj {
  references {
    table = tt_content
    fieldName = image
  }
  begin = 0
  maxItems = 1
  renderObj = IMG_RESOURCE
  renderObj {
    file.import.data = file:current:publicUrl
  }
}

So bekommst du die URL sauber raus. Dann baust du sie in page.headerdata
ein und wrappst sie anständig.

Beste Grüße
Stefan

-- 
Bergische Webschmiede
Dipl.-Ing. Stefan Padberg
TYPO3-Integrator und Webprogrammierer
:: Borner Str. 18 - 42349 Wuppertal
:: +49 202 97648355
:: +49 173 9219845
:: post at bergische-webschmiede.de
:: http://www.bergische-webschmiede.de


More information about the TYPO3-german mailing list