condition im Listview macht Probleme

Fragen zum Erstellen von Templates für webEdition.
Luigii
Senior Member
Beiträge: 454
Registriert: Mi 20. Jul 2005, 17:18

condition im Listview macht Probleme

Beitragvon Luigii » Do 25. Okt 2018, 16:26

Bisher konnte ich mir mit folgender Condition einen Listview über Dokumente ausgeben lassen:

condition="!outoftime"

Damit wurden alle Dokumente berücksichtigt, die im Feld outoftime keinen Wert gespeichert hatten.
Eine sehr schöne, einfache Notation.
Nach dem Update auf 8.0.4 geht das nun leider nicht mehr. Mit dieser Notation findet keine Ausgabe mehr statt.
Im fehlerlog steht:
Detail: Unknown column 'outoftime' in 'where clause'

Ich habe dann folgendes versucht:

Code: Alles auswählen

<we:condition name="cond">
	<we:conditionAdd field="outoftime" value="" compare="=" />
</we:condition>
In den listview habe ich das dann so: condition="\$cond" und so condition="$cond" eingesetzt, beides ohne Erfolg.
Keine Ausgabe, keine Fehlermeldung.
Das ist doch aber nun die ausführliche Schreibweise. Was mache ich falsch?
Dinge von großer Bedeutung gehe man mit Leichtigkeit an, Dinge von geringer Bedeutung mit großem Ernst.

mokraemer
Senior Member
Beiträge: 3619
Registriert: So 8. Aug 2010, 01:23
Wohnort: Mainz

Re: condition im Listview macht Probleme

Beitragvon mokraemer » Fr 26. Okt 2018, 01:10

eine solche notation einer query ist mir nicht geläufig. wundert mich auch, wenn das mal geklappt haben sollte - dokumentiert ist diese Schreibweise nicht. Du solltest hier einfach eine normale Schreibweise nutzen.
webEdition-Kern-Entwickler

Luigii
Senior Member
Beiträge: 454
Registriert: Mi 20. Jul 2005, 17:18

Re: condition im Listview macht Probleme

Beitragvon Luigii » Fr 26. Okt 2018, 08:57

ja, danke, das wollte ich ja auch und dachte nun das

Code: Alles auswählen

<we:condition name="cond">
	<we:conditionAdd field="outoftime" value="" compare="=" />
</we:condition>
die normale Schreibweise wäre.
Diese funktioniert aber nicht und daher meine Frage, ob ich da irgendetwas falsch mache.
Also wie notiere ich die Bedingung, dass ein bestimmtes Feld leer sein soll?
Dinge von großer Bedeutung gehe man mit Leichtigkeit an, Dinge von geringer Bedeutung mit großem Ernst.

mokraemer
Senior Member
Beiträge: 3619
Registriert: So 8. Aug 2010, 01:23
Wohnort: Mainz

Re: condition im Listview macht Probleme

Beitragvon mokraemer » Fr 26. Okt 2018, 12:43

hmm. leer ist ein Problem.... denn die Datensätze sind in der DB nicht enthalten.
Zum Hintergrund: ursprünglich wurde die Condition für Objekte gebaut und da ist das auch Straight-Forward: jedes Objekt einer Klasse hat alle Felder etc. und jede Klasse ist eine Tabelle.
Bei den Dokumenten ist jedes Dokument anders, da die Vorlage unterschiedliche Felder definiert. Deshalb werden alle Felder in der tblContent gespeichert. Leere Felder eben nicht. Und da nun ein Dokument mit vielen Einträgen einer anderen Tabelle verknüpft ist, kann man auch die AND/OR Verknüpfungen nur ganz schwer abbilden.
Also auch deine Frage nach einem Feld das leer ist, ist eine Sonderbehandlung, denn es läuft darauf raus, das man in der Content-Tabelle schaut ob es das Feld nicht gibt und eben nicht ob es leer ist.
webEdition-Kern-Entwickler

Luigii
Senior Member
Beiträge: 454
Registriert: Mi 20. Jul 2005, 17:18

Re: condition im Listview macht Probleme

Beitragvon Luigii » Fr 26. Okt 2018, 13:16

Verstehe, aber innerhalb des Listview kann ich doch auch die Bedingung

Code: Alles auswählen

<we:ifFieldEmpty type="checkbox" match="outoftime">
stellen. Die Bedingung schaut doch dann auc, ob es das Feld nicht gibt. Wie funktioniert das denn da?
Dinge von großer Bedeutung gehe man mit Leichtigkeit an, Dinge von geringer Bedeutung mit großem Ernst.

mokraemer
Senior Member
Beiträge: 3619
Registriert: So 8. Aug 2010, 01:23
Wohnort: Mainz

Re: condition im Listview macht Probleme

Beitragvon mokraemer » Fr 26. Okt 2018, 18:19

... es ist ein Unterschied, ob du ein Dokument lädst, dann die Vorlage initialisiert wird und man dann schaut ob die Werte da sind, oder ob du eine Liste (listview) über alle Dokumente machst und hier auf bestimmte Kriterien geprüft wird.

Das funktioniert genauso wie du es auch machen würdest. Du hast eine Liste und zu jedem Eintrag mußt du einen Ordner aus dem Schrank holen und schauen ob es den Eintrag gibt. Und wie gesagt, leer ist für die DB nicht das gleiche wie nicht da. Die Condition ist aber formuliert als wäre das eine einzelne Liste, wir machen hier eh schon ne Menge Magie.

Mit dem Vergleich wird dann auch schnell klar, warum Oder/Und hier so aufwändig sind, denn den Finger zwischen die Akten stecken und erneut suchen ist auch genau das was die DB tun würde.
webEdition-Kern-Entwickler


Zurück zu „webEdition Templates erstellen (we:Tags)“

Wer ist online?

Mitglieder in diesem Forum: Ahrefs [Bot] und 12 Gäste