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)