Zum Inhalt springen

Dynamische Headergrafik

Erstellt am 3. November 2008 · 6 Antworten · letzte Antwort am 3. November 2008

Tags: Frage

anders ·

Hallo zusammen,

sitze nun schon den ganzen Tag dran und versuche eine dynamische Headergrafik einzubinden. Dazu habe ich in meinem HTML-Template einen Bereich geschaffen der so aussieht:

<div id="HEADER"></div>

im Setup meines Templates habe ich eingetragen:

temp.header = TEXT
temp.header.data = levelmedia:-1, slide
temp.header.listNum = 0
temp.header.wrap = <img src="/uploads/media/|" alt="header" />

und

# Template content object:
temp.mainTemplate = TEMPLATE
temp.mainTemplate {
   template =< plugin.tx_automaketemplate_pi1
   workOnSubpart = DOCUMENT_BODY
   subparts {
      (...)
      HEADER < temp.header
  }
}

Auf der Startseite unter "Seiteneigenschaften"/"Ressourcen" habe ich eine passende Grafik eingefügt.

Kann mir bitte jemand helfen und erklären was ich falsch mache und warum ich keine Grafik angezeigt bekomme?

SLAng ·

Ich glaube du hast an allen Ecken nen Fehler

Ganz einfach...

In <div id="HEADER"></div> ist HEADER weder Subpart noch Marker.
Das müsste dann <div id="###HEADER###"></div> heißen

In deinem TS muss es dann antürlich auch nicht Subpart sondern Marks heißen also:

# Template content object:
temp.mainTemplate = TEMPLATE
temp.mainTemplate {
   template =< plugin.tx_automaketemplate_pi1
   workOnSubpart = DOCUMENT_BODY
   marks {
      (...)
      HEADER < temp.header
  }
}

Und dann baust du dann ja ein IMG rein... das ganze würde dann wohl so aussehen:

<div id="<img src="/uploads/media/Das_Bild.jpg" alt="header" />"></div>

Was natürlich auch Blödsinn ist. Wenn du in deinem HTML den marker in eine ID setzt, dann muss da nachher auch ne ID bei rauskommen und nicht ein Bild. So wie du das schreibst willst du doch ein Hintergrundbild haben.

Also definierst du dir das Hintergrundbild in deinem CSS in der entsprechenden Class. Die Class selbst kannst dann aus einem von dir definierten Feld in den Seiteneigenschaften auslesen...

Also zum Beispiel aus dem Description-Feld:

temp {
	header = TEXT
	header {
		field = description
		wrap = |
	}
}
anders ·

Hallo SLang,

vielen Dank erstmal für die schnelle Antwort. Ich will kein Hintergundbild per CSS einbinden. Eigentlich will ich eine dynamische Headergrafik, die sich über Seiteneigenschaften/Ressources pro Seite einbinden läßt... oder habe ich Dich jetzt falsch verstanden...?

SLAng ·

Ne du hast mich komplett richtig verstanden... ABer was du da machst, da kann nix bei rauskommen. Ich hab dir mit dem Beispiel ja auch erklärt warum.

Wenn du ein Bild einfügen willst, dann macht sowas wohl sinn:

<div id="header">###HEADER###</div>

Den Marks dann ansprechen wie ich es oben gezeigt habe.

Wenn dann ein Bild dabei herauskommen soll, dann musst du dir das eben auch als IMAGE und nicht als TEXT holen.

temp {
	header = IMAGE
	header {
		wrap = |
		file {
			import = uploads/media/
			import {
				listNum = 0
				override.field = media
			}
		}
	}
}

Du musst dann aber in dem Wrap nicht nochmal den img-Tag schreiben... Dabei kommt dann eh ein Bild bei raus

anders ·

Was ich jetzt allerdings noch nicht ganz verstanden habe ist:

Wenn ich das per Marker mache funktioniert es. Wenn ich es per subpart mache nicht. Warum? In meinem Template stehen doch auch Sachen wie:

<div id="leftMenu"></div>
<div id="content"></div>

Die kann ich ansprechen über

# Template content object:
temp.mainTemplate = TEMPLATE
temp.mainTemplate {
   template =< plugin.tx_automaketemplate_pi1
   workOnSubpart = DOCUMENT_BODY
   subparts {
      leftMenu < temp.navig
      content < styles.content.get
  }
}

Für mich wäre jetzt einleuchtend wenn ich den header auch als

<div id="header"></div>

in mein Template einbaue und im TS

# Template content object:
temp.mainTemplate = TEMPLATE
temp.mainTemplate {
   template =< plugin.tx_automaketemplate_pi1
   workOnSubpart = DOCUMENT_BODY
   subparts {
      leftMenu < temp.navig
      content < styles.content.get
      header < temp.header
  }
}

sowas mache? Für eine kleine Erklärung für mein Verständnis wäre ich noch sehr dankbar!