Zum Inhalt springen

Powermail_conditions Howto

Erstellt am 4. November 2011 · Noch keine Antworten

Tags: Powermail, Frage

bofh999 ·

Liebe Leidtragende,

Viele hier haben (genau wie ich) ihre liebe Not mit Powermail Conditions,
hier geb ich euch einige Lösungen die eigenartiger nicht sein können.
Das ist ein highlevel Dokument zum lösen komplexer Probleme - Basics bitte im Handbuch nachlesen.

Erstmal Grundsätzlich ist Powermail/und Conditions das einzige mir bekannte um derartige Dinge zu lösen - Trozdem mlcht ich erstmal etwas Kritik loswerden (sorry muss sein)

Powermail selbst ist mehr als fragil und extrem statisch Programmiert -
unverständlich wieso man nicht ganze templateteile ausblenden kann bei NULL wert sondern nur Marker und Werte selbst.
Auch unverständlich wieso es keinen (hidden) Feldnamen / Label unterscheidung gibt sondern nur Label

das macht die Sache bei 12 mal strasse im Form nicht unbedingt einfacher..
Nur 2 von Vielen beispielen - powermail ist unausgegohren und schlecht konstruiert - leider
Powermailconditions - da wirds erst richtig schlimm

und sorry unverständlich warum das addon "for jquery" einfach fehlende function hat die bis heute nicht behoben wurde obwohl sie im bugtracker gelöst wurden - testet denn niemand mehr seinen code vor dem upload ? manchmal kommts mir so vor

Nun denn sorry für den Schwall - aber die letzten tage waren mühsam - nun möcht ich eingen das ersparen also:

---------------------------------------------------
Begin Howto/Tricks
---------------------------------------------------

Punkt1
Checkboxen - verwendet sie nicht in Conditions - sie sind schlecht umgesetzt im js code und funktionieren einfach mit IE 7/8/9 und Chrome nur bedingt - teilweise gar nicht bzw sehr eingenarting

Punkt2
Cascading - tja hier wird der Hund in der Suppe verückt-

Beispiel
Es gibt ein Fieldset A1 (mit div optionen) und kann Fieldset B1 und B2 einblenden
B1 und B2 haben ebenfalls einen Schalter und kann C1 / C2 einblenden

Das funktioniert nicht - es sei denn -

A1 muss mit show/zeige arbeiten
B1/b2 muss mit hide/verbergen arbeiten

ALso anstelle
A1: if option a = 1 show B1
A1: if option a = 1 show B2
B1: if option b = 2 show C1
usw

muss man
A1: if option a = 1 show B1
A1: if option a = 1 show B2
B1: if option b IS NOT 2 HIDE C1

Klingt komisch - darf also in einer cascade niemals
hide/hide oder show/show in reihenfolge kommen
ob eine 3te in serie funktioniert weiß ich nicht da nun alles möglichst flach strukturiert ist um probleme zu vermeiden

Punkt3: Macht regeln einfacher
Je komplexer desto schlechter läufts -
am besten einund ausbleden gleich eines ganzen fieldsets nicht von 5 einzelnen feldern

hat sich gezeigt wenn zuviele felder betroffen sind bzw zuviele regeln exisiteren rennts seh eigenartig

Punk4: !!! WICHTIG !!!
Wie schon bei cascaden oben - seit immer vorsichtig wenn felder die von einer rule betroffen sind selbst zum schalter werden
das hat ungeahnte konsequenzen
vermeided auch required felder in auszublendenden feldern unbedingt

was noch schwieriger ist:
Nehmen wir an Field 1 und Field 2 sind jeweils ja nein selector box /radiobuttons

Field O kann nun von beiden ausgeblended werden -
Also
wenn Field 1 = JA dann o ausblenden
wenn Field 2 = JA dann o ausblenden

erstmal müst ihr den konflikt zwischen 1 und 2 auflösen
also jeweil eine 2te Regel mit "UND/and" verketten
sowas wie
wenn Field 1 = 1 AND Field 2 = ...dann o ausblenden

auch schaded es meistens nicht wie oben bei cascade wieder verderht zu arbeiten

also Field 1 hat if not JA then show
Field 2 hat if JA then hide regel

wenn ihr effkte habt wie das eine regel euch etwas ein oder ausblended was gar nciht dort definiert wurde ist es wahrscheinlich das cascading - passieren die merkwürdigstens effekte

Noch ein Tip:
Wenn ihr Zb

Fieldset B - ist ausgeblendet hat aber radiobuttons die Fieldset C einblenden können
Fieldset B hat 3 Optionen aber nur wenn option 2 oder 3 aktiv sind wird C eingeblendet

dann vorsicht - hier jetzt eine rule if set zu setzen kann eben manchmal nicht funktionierne (siehe cascading)
natürlich könnte man nun sagen: show c if option 1 not true
ABER - wert ist immer null solange nichts ausgewählt wurde
in dem fall einfach eine zweite rule mit AND verketten -
IF Fieldset B is set AND option 1 not true then show

So ich hoffe dem ein oder anderen einen Hinweis gegeben zu haben warums nicht klappt

Übrigens funktioneirt nun das kleine Monster auch in IE
Es hat 150 Felder und etwa 25 conditions
wers mal sehen will pm an mich (will hier nicht linkwerbung spammen)