Also das mit den l10n-Dingern ist echt irre. Hab jetzt erste mal ein paar Variablen in die Register geschrieben, damit mein Script nicht explodiert.
Mit "language" hole ich mit die aktuelle Sprache...allerdings musste ich da ein if reinbasteln, weil sonst wird mit einer leeren Variablen weiter gearbeitet...also ab auf 0 damit, wenn leer.
Mit "productParent" hole ich mir bei z.B. einem deutschen Datensatz den englischen Elterndatensatz. Ich brauche dieses Parent, wenn ich von Deutsch auf Polnisch wechseln will. Probleme hatte ich bei Deutsch -> Englisch, da EN ja gar keinen l10n_parent hat, also musste auch hier wieder eine Weiche rein.
Mit "productUid" hole ich mit nun an Hand des productParent die Uid des gewünschten Datensatzes. Auch hier wieder eine Abfrage, denn im Englischen gibt es keinen l10n-Eintrag, also muss, wenn leer, der productParent genommen werden.
Hier also nur das Script, um diese Variablen zu setzen:
page.10 = LOAD_REGISTER
page.10 {
language.cObject = COA
language.cObject {
10 = TEXT
10.value = 0
10.if.isFalse.data = GPvar:L
20 = TEXT
20.data = GPvar:L
20.if.isTrue.data = GPvar:L
}
productParent.cObject = CONTENT
productParent.cObject {
table = tx_ebsprod_product
select {
pidInList = 72
andWhere.cObject = COA
andWhere.cObject {
10 = TEXT
10.data = register:language
10.intval = 1
10.noTrimWrap = |(sys_language_uid=| |
20 = TEXT
20.data = GPvar:tx_ebsprod_pi1|uid
20.intval = 1
20.wrap = AND l10n_parent=|)
30 = TEXT
30.data = GPvar:tx_ebsprod_pi1|uid
30.intval = 1
30.noTrimWrap = | OR (uid=|)|
}
selectFields = l10n_parent
}
renderObj = TEXT
renderObj {
wrap = |
required = 1
field = l10n_parent
}
}
productUid.cObject = COA
productUid.cObject {
10 = TEXT
10.ifEmpty.data = register:productParent
10.cObject = CONTENT
10.cObject {
table = tx_ebsprod_product
select {
pidInList = 72
andWhere.cObject = COA
andWhere.cObject {
10 = TEXT
10.data = register:language
10.intval = 1
10.noTrimWrap = |(sys_language_uid=| |
20 = TEXT
20.data = register:productParent
20.intval = 1
20.wrap = AND l10n_parent=|)
}
selectFields = uid
}
renderObj = TEXT
renderObj {
wrap = |
field = uid
}
}
}
}
Jetzt wo die Uid dank diesen Script-Wirrwarr da oben endlich IMMER richtig ist, brauche ich in meinen Scripten weiter unten nur noch folgenden Code:
lib.productDescription = CONTENT
lib.productDescription {
table = tx_ebsprod_product
select {
pidInList = 72
andWhere.data = register:productUid
andWhere.intval = 1
andWhere.wrap = uid=|
selectFields = description
}
renderObj = COA
renderObj {
10 = TEXT
10.field = description
10.wrap = |
}
}
Wie schon einmal gesagt: Sollte es jemanden geben, der l10n_parent besser kennt als ich und optimierte Varianten im Petto hat, dann immer her damit.
Danke Euch
Stefan