Zum Inhalt springen

wenn ifEmpty, dann auch kein prepend.

Erstellt am 20. September 2010 · 3 Antworten · letzte Antwort am 8. Oktober 2010

Tags: Frage

MasterYin ·

Hallo zusammen,
habe folgendes Snippet:

temp.liste = COA
temp.liste.10 < plugin.meineListe
temp.liste.10{
stdWrap {
prepend = TEXT
prepend {
value = Dieser Beitrag ist den folgenden Themengruppen zugeordnet
lang.en = This article is assigned to the following groups
wrap = |

}
ifEmpty = Dieser Beitrag ist in keinen Gruppen.
ifEmpty.lang.en = This article is not assigned to any group.
wrap = <p>|</p>

}

Das ifEmpty wird mir im Falle eines leeren Rückgabewerts aus der Extension anstatt der erwarteten liste ausgegeben, allerdings wird trotzdem das prepend mit ausgegeben, was aber sinnfrei ist, wie kann ich verhindern, dass im falle eines leeren rückgabewerts das Prepend ausgegeben wird?

Danke für jede Hilfe
Robert

Unbekannter Benutzer ·

Hi,

ich denke das Entscheidende bei der Sache ist die Reihenfolge.
"prepend" wird nach "ifEmpty" ausgeführt.

Du müsstest also innerhalb des "prepend" mit "if" oder "override" arbeiten.

Beste Grüße
tom 🙂

MasterYin ·

Hättest du dafür mal nen ansatz für mich wie ich im prepend noch abfragen kann ob der rückgabewert der extension nicht leer ist und es nur dann wirken lasse?
Gruß robert

udowald ·

Hallo MasterYin,

hier ist ein Ansatz der soweit funktioniert. Ich denke es gibt noch bessere Lösungen, bin aber nicht drauf gekommen.

temp.test = TEXT
temp.test.value = 3455

lib.liste = COA
lib.liste {
    10 = LOAD_REGISTER
    10.datelist.cObject = TEXT
    10.datelist.cObject < temp.test
    20 = COA
    20 {
      10 = TEXT
      10.value = Daten vorhanden und zwar:&nbsp;
      20 = TEXT
      20.value  = {register:datelist}
      20.insertData = 1
      }
    20.if.isTrue.data = register:datelist
    30 = TEXT
    30.value = keine Daten vorhanden
    30.if.isFalse.data = register:datelist
    }

Du kannst ja mal lib.liste auf einen Marker setzten und selbst ausprobieren mit temp.test.value = oder temp.test.value = 502511.

Das temp.test object habe ich nur zum Testen gebraucht. Schreibst einfach 10.datelist.cObject < plugin.meineListe anstatt 10.datelist.cObject < temp.test.
Ich denke das ist selbsterklärend.

Gruß udowald