Zum Inhalt springen

DATA und cObject

Erstellt am 28. September 2010 · 11 Antworten · letzte Antwort am 21. Februar 2012

Tags: Frage

Ei-Dotter ·

Hallo,

ich möchte gerne auf einer locallang.xml etwas auslesen, und zwar in Anhängigkeit eines Parameters in der URL.

Das "zusammenbauen" des Befehls klappt gut, also folgender Code gibt mir den Befehl richtig mit dem Parameter am Ende aus:

page.headerData.45 = TEXT
page.headerData.45.cObject = TEXT
page.headerData.45.cObject.data = GPVar:m
page.headerData.45.cObject.wrap = lll:EXT:abc/locallang.xml:pi_monat|

nur wenn ich ihn jetzt aufrufen will, dann geht das nicht, weiss einer was an meinem Aufruf falsch ist?

page.headerData.55 = TEXT
page.headerData.55.data.cObject = TEXT
page.headerData.55.data.cObject.data = GPVar:m
page.headerData.55.data.cObject.wrap = lll:EXT:abc/locallang.xml:pi_monat|
igorshmigor ·

Du lässt dir dein lll:EXT:abc/locallang.xml:pi_monat ... doch nur als Text ausgeben. Da ist weder ein data noch ein insertData. Daher wird er dir daraus auch keinen dynamischen Wert auslesen, sondern nur die Konstruktion als String zurückgeben.

Versuch mal

page.headerData.45.insertData=1
Ei-Dotter ·

Doch, das stand dadrunter, war falsch formatiert:

page.headerData.55 = TEXT
page.headerData.55.data.cObject = TEXT
page.headerData.55.data.cObject.data = GPVar:m
page.headerData.55.data.cObject.wrap = lll:EXT:abc/locallang.xml:pi_monat|

Habe es mit insertData=1 versucht, leider ohne Erfolg. Hast Du noch eine Idee?

igorshmigor ·

Hast du denn schon mal versucht, die Konstruktion erst einmal ohne dynamische Werte zu testen?
Also beispielsweise

page.headerData.55.data=lll:EXT:abc/locallang.xml:pi_monat1
igorshmigor ·

Fehlt vielleicht noch ein underscore vor dem Monat? Also dass die Lables in der Form pi_monat_1, pi_monat_2, ... in der locallang stehen?
Ansonsten weiß ich auch nicht. Sieht alles gut aus. Viel Glück bei der Bug-Suche!

Ei-Dotter ·

Ich habe es mal auf den Kern reduziert:

Diese Zeile geht perfekt - der Monat September wird in der jeweiligen Sprache angezeigt:

page.headerData.55.data = lll:EXT:abc/locallang.xml:pi_monat9

Die nächsten Zeilen geben mir nur den Text (lll:EXT:abc/locallang.xml:pi_monat9) aus, aber nicht den Monatsnamen aus:

page.headerData.55.data = GPVar:m
page.headerData.55.wrap = lll:EXT:abc/locallang.xml:pi_monat|
page.headerData.55.insertData = 1

Seltsam - oder?

Ei-Dotter ·

Ich weiss jetzt warum es nicht geht.

insertData und dataWrap ersetzen bloss Dinge in {}-Klammer, der rest bleibt.

Man muss das vorher in ein Register laden und dann dataWrap machen.

Ich schaue gerade mal wie sowas geht...

igorshmigor ·

Richtig, für insertData muss das Ganze in geschweiften Klammern stehen. Ich verstehe jedoch nicht, warum die Konstruktion mit data.cObject nicht funktioniert hat.
Wozu willst du jetzt mit register arbeiten?
Mach doch folgendes:

page.headerData.55.wrap = {lll:EXT:abc/locallang.xml:pi_monat|}

Dann hast du deine geschweiften Klammern.