Zum Inhalt springen

Platzhalter mit TypoScript ansprechen unter TemplaVoila...

Erstellt am 5. Dezember 2007 · 4 Antworten · letzte Antwort am 4. September 2010

Tags: Frage

flummi ·

Hallo zusammen,

ohne TemplaVoila spreche ich ja Platzhalter (###PLATZHALTER1###) mit TS:

page = PAGE
page.10 = TEMPLATE
page.10.marks.PLATZHALTER1 = ...

an. Nun habe ich TemplaVoila und damit ändert sich die 2te Zeile von oben zu:

page.10 = USER
page.10.userFunc = tx_templavoila_pi1->main_page

Wie kann ich nun auf die '.marks' zugreifen, page.10 ist ja jetzt ein USER object. Mit page.10.marks.PLATZHALTER1 = ... hat es bei mir nicht funktioniert. Ich suche hier schon seit 2 Stunden im Forum und habe immer wieder diese Schreibweise gefunden:

lib.PLATZHALTER = ...

So habe ich ein Test-Beispiel gemacht mit

lib.PLATZHALTER1 = TEXT
lib.PLATZHALTER1.value = Bitte ersetze mir das, bitte, bitte!!

und im Template den Platzhalter ###PLATZHALTER1### eingetragen. Mapping von TV aktualisiert, Cache gelöscht, angeschaut - geht nicht!!! Der Platzhalter wird unersetzt ausgegeben. Was mache ich falsch??

Please help! #angry#

flummi ·

Hallo friction48,

danke für die Antwort. Schade, dass die Marker damit nicht mehr funktionieren.

Hier eine kleine Anleitung, wie ich mein Problem gelöst habe: Das Problem war, ich wollte das style-Attribut eines div-Tags ersetzen, um einen Hintergrund dynamisch mit TS zu erzeugen. Das Hintergrundbild sollte dann über die Seiteneigenschaften wählbar sein:

<div style="background: url(...">

Hier die Anleitung dazu:
Als erstes sollte man den kompletten TV-Wizzard durchgegangen sein, bzw. schon über ein TV-Mapping verfügen. Dann auf TV klicken, "Update Mapping" des Templates wählen, "Modify TS / DO" klicken, die Warnung mit "OK" bestätigen. In diesem Dialog hat man nun die Möglichkeit zusätzliche TV-Mappings zu erstellen. Also bei "Enter new fieldname" einen beliebigen Namen wählen, auf "Add" klicken. Als "Mapping Type" habe ich nun Attribut gewählt, siehe Problem oben. Die nächsten 3 Felder beliebig ausfüllen, Editing Type dann auf "TypoScript Object Path" setzen und dann erst mal "Add" klicken. Es erscheint ein neues Feld "Object Path", in das ihr z.B. "lib.MEINFELD" einträgt. Dann "Update" klicken und ein Mapping für die neue Variable erstellen (in der oberen Tabelle "Map" klicken, in der HTML-Ansicht das entsprechende div-Tag wählen und ganz rechts dann das Attribut wählen (das Attribut sollte im Template bereits leer definiert sein, damit es in der Auswahl erscheint, also "<div style="">). Jetzt nur noch speichern - da nur der Button "save as" einfach unter "Update existing Data Structure" das Template auswählen und Update klicken.

So, das wäre die TV-Seite, als nächsten müsst Ihr noch den TS-Code erstellen. Also links "Template" klicken, das Template "modifien" und zum zum Testen mal folgendes ins SETUP einfügen:

lib.MEINFELD = TEXT
lib.MEINFELD.value = backgroud: url(...)

Evtl. den Cache leeren und im Frontend anschauen, da sollte nun der style-Tag ensprechend ersetzt sein. In meinem Beispiel habe ich folgenden Code:

# Dynamisches Hintergrundbild
lib.MEINFELD = TEXT
lib.MEINFELD.data = levelmedia:1, slide
lib.MEINFELD.wrap = background-image:url(fileadmin/templates/images/|)

Damit lade ich das Bild aus den Datei-Eigenschaften der Seite. Hierzu unter Web->Seite->Seiteneigenschaften den Typ "Erweitert" wählen und bei Dateien dann ein Hintergrundbild auswählen.

Viel Spaß!

tHaHooL ·

Danke für das Tutorial!

Ich bräuchte das ganze nicht für ein Hintergrundbild, sondern für einen Header in einer Tabelle, aber das sollte ja fast genau so funktionieren. Leider hab ich noch irgendwo einen Wurm drin.
Ich habe das mapping schon wie oben beschrieben durchgeführt.

Mein TS sieht so aus:

lib.header = TEXT
lib.header.data = levelmedia:1, slide
lib.header.wrap = img src="fileadmin/templates/images/|

Bild hab ich bei den Seiteneigenschaften ausgewählt, im Quelltext der Seite steht auch folgendes drin:

<tr>
<td td="img src="fileadmin/templates/images/index_05.jpg"> </td>
</tr>
<tr>

Also der Bildpfad ist korrekt übermittelt worden, aber vor dem "img" habe ich noch ein Anführungszeichen, das da wohl nicht hin soll - ich habe das aber gar nicht gesetzt, wie bekomme ich das weg?

Danke für die Hilfe!

8-)

stevee ·

Hallo tHaHooL

Weiss nicht, obs noch relevant ist, aber ich denke, Du musst bei Deinem TS auch kein Anführungszeichen machen bei src="file...
Denn der Wert wird eben nicht einfach so als Plain-Text eingefügt, sondern Typo3 setzt dort irgendwie nur die Werte in die Eigenschaften oder so ähnlich.

Probiers mal, wenns nicht schon geschehen ist (ist ja schon lange her -> hatte eben grad dieselbe Problemstellung)

Gruss, Stevee