Zum Inhalt springen

TemplaVoila geschachtelte DIV einzeln "ansprechen"

Erstellt am 27. August 2008 · 5 Antworten · letzte Antwort am 28. August 2008

Tags: Frage

harry7922 ·

Hallo zusammen,

ich fange gerade an mich in TV einzuarbeiten und bin auf ein Problem gestossen, für das ich bisher keine Lösung gefunden habe und auch recht ratlos bin.
Sollte ich zu dumm sein die Suchfunktion zu bedienen, möchte ich mich entschuldigen - habe nix passendes gefunden.

Das Problem:
Ich habe ein Template, was durch ein DIV-Element das Hintergrundbild dieses DIVs setzt (durch "style").
Innerhalb dieses DIVs wird durch andere DIVs ein Menü auf das Hintergrundbild gesetzt.

<div style="background-image:url(images/header1.jpg);background-repeat:no-repeat;height:170px;width:850px">
       <div id="header_menu"><a href="1.html">Home</a> - <a href="1.html">Impressum</a></div>
   </div>

Wenn ich nun in TV das erste DIV als "Element" auswähle und ein Mapping vornehme (egal ob als inner oder outer) komme ich nicht mehr an die inneren DIVs. Dort kommt dann immer ein gelbes Ausrufezeichen und der Text "No content found!".

Hoffe mir kann jemand meine Denkfehler aufzeigen!

Vielen Dank!!!

Grüße
Hardy

tobyte ·

Wenn du eien Tag Mapst ersetzt du alles was in dem Element steckt. Mit dem Inner oder Outer wählst du nur aus, ob dein Inhalt den Tag überschreibt (outer) oder ob er innerhalb des Tags erscheint (inner).

<div class="1">
Hallo Welt
<div class="2"> Hallo Mars </div
</div>

in dem Beispiel oben würde das bedeuten, sobald du den div.1 Mapst, kommst du an div.2 nicht mehr ran. Wenn es dir bei div.1 jetzt nur darum geht, dass er ein Hintergrundbild darstellen soll und du über div.2 einen Text darüber schreiben möchtest, dann reicht es wenn du div.2 mapst.

harry7922 ·

Hallo!

Vielen Dank für die schnelle Antwort!

Ich habe aber das Problem, dass ich das Hintergrundbild dynamisch von Typo3 setzen lassen möchte.
Also dass ich für jede Seite ein anderes Hintergrundbild definieren kann (mit vererbung, wenn in den Unterseiten kein anderes definiert ist).

Daher würde ich ja beide Tags zum mappen benötigen!??
Gibt es keine andere Lösung, wie bei der klassischen Templateerstellung, dass einfach Subparts definiert werden o.ä.?

DANKE!!

Hardy

tobyte ·

wie wäre es, wenn du auf unter seiten einfach eine andere css datei lädst um so quasie ein anderes hintergrundbild zu realisieren Bsp.:

Ebene1 Typoscript

page.headerData.80 = TEXT
page.headerData.80.value(
<link rel="stylesheet" href="fileadmin/template/css/template.css" type="text/css" />
)

template.css:
#header {background-image:url(pfad/grafik1.jpg);
------------------------------------------------------
Ebene2 Typoscript

page.headerData.81 = TEXT
page.headerData.81.value(
<link rel="stylesheet" href="fileadmin/template/css/template2.css" type="text/css" />
)

template2.css:
#header {background-image:url(pfad/grafik2.jpg);

dann würdest du entsprechend das hintergrundbild ändern können.

harry7922 ·

Nochmals vielen Dank für die Hilfe!

Das mit der "dynamischen" CSS versteh ich nicht ganz wie es realisierbar ist. Dann müsste ich je Seite die Möglichkeit habe eine andere CSS in den <head> zu schreiben.

Der zweite Vorschlag von saschae finde ich recht gut, allerdings stosse ich an die Granze, dass mir nicht ganz klar ist, wie ich diesen wrap dynamisch gestalten kann.

Bisher würde ich es so machen:

lib.headerGrafik  = IMG_RESOURCE
lib.headerGrafik.file.import = uploads/media/
lib.headerGrafik.file.import.data = levelmedia: -1, slide
lib.headerGrafik.file.import.listNum = 0
lib.headerGrafik.stdWrap = <div style="background-image:url(|);background-repeat:no-repeat;height:170px;width:850px">
lib.headerGrafik.stdWrap.required = 1

Wenn es durch ein Wrap möglich wäre müsste die Zeile ja etwa so aussehen?:

lib.headerMenu.allWrap = <div style="background-image:url(|)> | </div>

Allerdings ist es ja nicht möglich dass zwei dynamische Inhalte eingefügt werden ( | ).

Ich hoffe ich habe es verständlich ausgedrückt?

DANKE!

Hardy