Zum Inhalt springen

Geschweifte Klammer im Wrap ausgeben?

Erstellt am 29. November 2006 · 5 Antworten · letzte Antwort am 29. November 2006

Tags: Frage

Crono ·

Hallo Forum,

ich erstelle gerade das Typoscript für ein Javascript basierendes Menü (Milonic). Dieses Menü erwartet seine Daten als pures Javascript in einer bestimmten Reihenfolge. Diese Reihenfolge hab ich nach einigem Tricksen ganz gut hinbekommen. Allerdings hab ich jetzt folgenes Problem:

temp.milonic.level1 = HMENU 
temp.milonic.level1 {
  1 = TMENU 
  1 { 
    subst_elementUid = 1
    expAll = 1  
    noBlur = 1 

    NO = 1
    NO.subst_elementUid =1 
    NO.allStdWrap.insertData = 1
    NO.doNotLinkIt = 1 
    NO.allWrap (
    with(milonic=new menuname("MENU{field:pid}")){
      aI('text=|;url=index.php?id={elementUid};');
   |*| 
   aI('text=|;url=index.php?id={elementUid};'); 
   |*| 
   aI('text=|;url=index.php?id={elementUid};'); }
  )
  }
}

Das Problem ist beim NO.allWrap - hier soll das erste Element den "with" Block aufmachen, die anderen sollen dann den Content schreiben und der Letzte soll den with Block wieder schließen. Soweit sogut. Funktioniert alles Wunderbar, ABER die öffnende geschweifte Klammer bei

 with(milonic=new menuname("MENU{field:pid}")){ <-- diese

wird nicht ausgegeben. Damit ist das JS natürlich fehlerhaft. Wie bekomme ich diese { an die Stelle? Kann man im Wrap Zeichen irgendwie escapen oder sowas in der Art?

vielen Dank schonmal...

Andreas

Crono ·

Gute Idee, aber das wird dann leider 1 zu 1 ins File geschrieben 🙁

    with(milonic=new menuname("MENU10"))&#123;
...
einpraegsam.​net ·
Crono schrieb

Gute Idee, aber das wird dann leider 1 zu 1 ins File geschrieben 🙁

    with(milonic=new menuname("MENU10"))&#123;
...

Wie geht das überhaupt?

NO.allWrap (
    with(milonic=new menuname("MENU{field:pid}")){
      aI('text=|;url=index.php?id={elementUid};');

Nach No.allWrap machst du die erste runde Klammer auf und schließt die runde Klammer nach :pid}" wieder - da müsste für TYPO3 eigentlich die Anweisung zu ende sein!?

Crono ·

ja, das wäre logisch - hat mich auch gewundert das es funktioniert. Man kann ja bei allen Wraps den Text auch Mehrzeilig eingeben, also zum Beispiel:

NO.allWrap ( Das
             ist 
             ein
             wrap
             |
            )

Das ist das gleiche wie

NO.allWrap = Das ist einwrap |

das er bei der anzahl der Klammern es trotzdem richtig macht hat mich auch gewundert... 🙂

/edit: er nimmt die { aber auch raus wenn es in einer Zeile steht

Crono ·

Ich hab zumindest rausgefunden, dass

NO.allStdWrap.insertData = 1

dafür verantworlich ist...
Hat jemand eine Idee wie ich an das {field:pid} komme und in den String

with(milonic=new menuname("MENU{field:pid}"))

einbaue, ohne insert Data generell einzuschalten?