Hallo Community,
ich stehe auf dem Schlauch mit meinem LOAD_REGISTER / RESTORE_REGISTER Konstrukt.
Ich finde nicht die richtige Stelle für das RESTORE-REGISTER.
In der lib.regs werden diverse Register-Variablen gesetzt, im Codebeispiel beschränkt auf paddingTop, welches den Wert vom Feld spaceBefore holt.
Die lib.regs kopiere ich an den Anfang der tt_content Bausteine textpix, text u.s.w.
Das funktioniert soweit, allerdings nur solange das RESTORE_REGISTER auskommentiert ist.
Sobald das drin ist, werden mit die Variablen zu früh (vor der Ausgabe im tt_content.stdWrap.outerWrap) gekillt. Ich habe es auch schon an der Stelle tt_content.999 versucht, gleiches Ergebnis.
Verzichte ich auf ein RESTORE_REGISTER funktioniert alles, aber die Variablen bleiben logischerweise für das nächste Content-Element gesetzt und führen damit zu einem anderen Problem.
Gekürztes Beispiel:
lib.regs = LOAD_REGISTER
lib.regs {
paddingTop {
field = spaceBefore
if.isGreaterThan.field = spaceBefore
if.value = 0
wrap = padding-top: |px;
}
#diverse weitere definitionen
}
tt_content {
textpic.5 < lib.regs
text.5 < lib.regs
html.5 < lib.regs
}
tt_content {
textpic.999 = RESTORE_REGISTER
text.999 = RESTORE_REGISTER
html.999 = RESTORE_REGISTER
}
tt_content.stdWrap.outerWrap = <div style="border:1px solid red; {register:paddingTop}">DEBUG: {register:paddingTop} <br>|</div>
tt_content.stdWrap.outerWrap.insertData = 1
page = PAGE
page.10 < styles.content.get
Erstellt man nun ein CE text mit z.B. einem Abstand von 50, bleibt die Debug-Ausgabe leer. Kommentiert man den RESTORE_REGISTER Block aus, funktioniert es.
Wo muss das RESTORE_REGISTER hin?
Viele Grüße,
Matschek