Platzhalter mit TypoScript ansprechen unter TemplaVoila... [Gelöst]

  • flummi flummi
    T3PO
    0 x
    25 Beiträge
    0 Hilfreiche Beiträge
    05. 12. 2007, 16:51

    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#


  • 1

  • 0 x
    05. 12. 2007, 20:03

    Hi,

    TemplaVoila arbeitet nicht mit Markern oder Subparts. Bei TV läuft alles über das Mapping.

    Hier ein Link zu einem Tutorial:
    [url]http://typo3.org/documentation/document-library/tutorials/doc_tut_ftb1/1.0.1/view/[/url]

    :D

  • flummi flummi
    T3PO
    0 x
    25 Beiträge
    0 Hilfreiche Beiträge
    06. 12. 2007, 11:37

    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 tHaHooL
    R2-D2
    0 x
    105 Beiträge
    0 Hilfreiche Beiträge
    14. 12. 2007, 13:02

    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:
    [TS]lib.header = TEXT
    lib.header.data = levelmedia:1, slide
    lib.header.wrap = img src="fileadmin/templates/images/|
    [/TS]

    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 stevee
    R2-D2
    0 x
    107 Beiträge
    0 Hilfreiche Beiträge
    04. 09. 2010, 17:50

    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

  • 1