Abfrage-Logik Teil 1 (von Sidec)

Aus DreamRobot Wiki
Wechseln zu: Navigation, Suche


Beginnen möchte ich mal ganz einfach:


Etwas soll auf eine bestimmte Sache geprüft werden und
dann soll ein bestimmter Text erscheinen,
Sonst, also wenn alles andere ausser dem zu prüfenden Teil zutrifft,
soll ein Alternativ-Text aufscheinen
und anschließend muss jede Abfrage grundsätzlich beendet werden mit
Ende


Ich überlege mir zunächst, was ich sagen will, z.B.

Wenn Käufer von eBay -> Bitte gehen Sie zu unserer Kaufabwicklung
alle anderen Käufer -> Bitte überweisen Sie den Betrag auf das untenstehende Konto
Ende dieser Durchsage.

Nun übersetzt man den Text in die Abfrage:

Wenn = if, was = Portal eBay:
<#if(#portal_name#|=|Ebay)#> ---> Wenn das Portal = eBay ist, dann kommt dieser Text:
Bitte gehen Sie zu unserer Kaufabwicklung

<#else#> ---> Sonst (meint alles andere außer eBay)
Bitte überweisen Sie den Betrag auf das untenstehende Konto

<#endif#> ---> Ende der Abfrage

Das ist das grundlegende Schema für alle Abfragen und kann je nach
Wunsch erweitert werden.
Habe ich nur den eBay-Kunden was zu sagen und sonst niemandem, wird
das Schema abgekürzt und statt dem else kommt gleich das endif, fertig.
Soviel als Einstieg.

-------------------------------------------------------

Alles baut also nur auf 3 kleinen Worten in immer dieser Reihenfolge auf:
<#if#>
<#else#>
<#endif#>

Während else und endif keine weitere Aussage machen, muss
if immer erweitert werden, d.h. an dieser Stelle muss dem if gesagt,
werden, wozu es da ist oder was es machen soll. Diese Aussage wird
immer in Klammern eingesetzt:
<#if(hier kommt die eigentliche Abfrage rein)#>

Das Abfrageschema für if ist immer gleich:
Wert1 , wie soll Wert 1 zu Wert 2 stehen , Wert 2

Der Mittelteil, nämlich wie soll Wert 1 zu Wert 2 stehen wird mit diesen
Zeichen gebildet:
=......................(ist gleich)
<>....................(ist ungleich)
<......................(ist kleiner als)
<=....................(ist kleiner, gleich als)
>......................(ist größer als)
>=....................(ist größer, gleich)
contains...........(enthält, ist im Wort enthalten)


Wert 2 kann weggelassen werden um auf "Nichts" zu prüfen.
z.B. <#if(#buyer_tax_id#|<>|)#> zum Prüfen, ob Ust-Id des Käufers im Auftrag eingetragen ist.


Somit kann ich nun
auf alle Portale abfragen -> eBay, Amazon, Mallux usw.
wobei die Namen genau den Namen in der eigenen Kaufabwicklung ent-
sprechen müssen, da der Abgleich sonst nicht klappen kann
(Vorkasse ist nicht gleich Überweisung!)

    auf alle Bezahlarten
    auf Lieferländer
    auf abweichende Lieferanschrift
    auf bestimmte Artikel aus dem eigenen Sortiment u.v.a.m.
<#if(#portal_name#|=|Amazon-Shop)#>
<#if(#payment#|=|überweisung)#>
<#if(#payment_date#|=|00.00.0000)#>
<#if(#buyers_email#|contains|aol)#>
<#if(#product_list#|contains|Zahlungsartprozente)#>
usw.


Möchte ich auf die Zahlarten abfragen und habe aber mehr als 2 Zahlarten
zur Auswahl, klappt es mit dem Grundschema so nicht mehr. Aber kein
Problem, dann frage ich eben nacheinander ab:
1. <#if(#payment#|=|überweisung)#>Unsere Bankverbindung<#endif#>
2. <#if(#payment#|=|Lastschrift)#>Der Betrag wird von dem genannten Konto eingezogen<#endif#>
3. <#if(#payment#|=|PayPal)#>Vielen Dank für die zügige Abwicklung<#endif#>
usw. usf.


Bei solchen Hintereinanderabfragen müssen die einzelnen Codes ohne
Zeilenumbruch oder Leerzeichen hintereinander geschrieben werden, denn
es trifft ja jeweils nur eine Aussage zu, anderenfalls wird pro Abfrage
auch eine Leerzeile eingefügt und die Mail bekommt klaffende Löcher
im Text.

Innerhalb einer Vorlage darf nur ein Trennzeichen für die Operatoren verwendet werden, also entweder | (Pipe) oder Kommazeichen.

Beim Einfügen einer Abfragelogik in den Quelltext einer Datei, muss darauf geachtet werden, dass die HTML-Syntax korrekt ist.

Ich denke, das reicht erst mal zum Einsteigen und Lernen.
Fortsetzung wird folgen.
Viele Grüße
Sigrid


- Anleitungen
- Abfrage-Logik Teil 2, Datum und Rechenoperationen (von Sidec)