displayCond Verhalten in Flexforms bei Erstaufruf
| Autor | Nachricht |
|---|---|
|
Verfasst am: 15. 12. 2008 [15:42]
|
|
|
FazzyX
Themenersteller
Dabei seit: 07.09.2005
Beiträge: 47
|
Hallo, ich verwende bei einer Extension Flexforms zwecks Backend Konfiguration. Da zwischen den Optionen Abhängigkeiten bestehen bediene ich mich dem displayCond Parameter. Dies funktioniert bedingt. HTML <autosetup> <tceforms> <label>LLL:EXT:cfa_mooflow/locallang_db.xml:cfa_mooflow.pi_flexform.autoSetup</label> <onchange>reload</onchange> <config> <type>check</type> <default>0</default> <maxitems>1</maxitems> <size>1</size> </config> </tceforms> </autosetup> <linkmethod> <tceforms> <label>LLL:EXT:cfa_mooflow/locallang_db.xml:cfa_mooflow.pi_flexform.linkMethod</label> <displaycond>FIELD:autoSetup:=:0</displaycond> <config> <type>select</type> <items type="array"> <numindex index="0" type="array"> <numindex index="0">ReMooz</numindex> <numindex index="1">remooz</numindex> </numindex> <numindex index="1" type="array"> <numindex index="0">Link</numindex> <numindex index="1">link</numindex> </numindex> </items> <maxitems>1</maxitems> <size>1</size> </config> </tceforms> </linkmethod> Nach einem ersten Aufruf wird mir nur die CheckBox autoSetup angezeigt ohne das diese aktiviert ist. Aktiviere ich diese und deaktivere sie nach dem Speichern gleich wieder, funktioniert displayCond wunderbar. Meine Vermutung ist, trotz gesetztem default Parameter, dass der Zustand der CheckBox von autoSetup nicht 0 ist. Möglicherweise undefined oder -1. Kann dies jemand bestätigen ? Wenn das zutrifft, wie kann man darauf reagieren ? Ich habe es auch mal mit der Abfrage HTML <displaycond>FIELD:autoSetup:<=:0</displaycond> versucht, was aber zu einer Fehlermeldung führt. (Data Structure ERROR: Line 251: XML_ERR_NAME_REQUIRED) Laut Core Api sollte es aber gehen. > / < / >= / <= : Evaluates if the field value is greater than, less than the value in "Part 3" Oder ist an diesem Verhalten möglicherweise ein ganz andere Prozess beteiligt ? Viele Grüße Extensions:
cfa_mooflow cfa_globalweatherws perl -e 'print pack(c5,(41*2),sqrt(7056),(unpack(c,H)-2),oct(115),10);' |
|
Verfasst am: 15. 12. 2008 [18:26]
|
|
|
ThBodi
Dabei seit: 02.05.2006
Beiträge: 98
|
So sollte es funktionieren: HTML <displayCond>FIELD:autosetup:IN:0,</displayCond> Die Fehlermeldung kommt daher, dass die Dokumentation für PHP-Code gedacht war, in XML muss das '<' als < geschrieben werden. (Ich hab jetzt nicht getestet, ob das dann funktioniert, aber '<' ist als Knoten-Inhalt auf jeden Fall nicht erlaubt) |
|
Verfasst am: 16. 12. 2008 [14:39]
|
|
|
FazzyX
Themenersteller
Dabei seit: 07.09.2005
Beiträge: 47
|
Hallo, ein HTML <displayCond>FIELD:autoSetup:'<'=:0</displayCond> führt zur gleichen Fehlermeldung. Aber Deine Erklärung ist nachvollziehbar, da es in xml ja ein geöffnetes Tag Kennzeichnet. Dies war aber auch nur Versuch von dem ich nicht wirklich geglaubt habe das er zum Erfolg führt. Auch ein HTML <displayCond>FIELD:autoSetup:IN:0,</displayCond> ändert nichts. Ich bin allerdings jetzt darauf gestoßen das nach dem Einfügen des Plugins in ein Content Element erstmal ein Speichern folgen muss, damit auch displayCond funktioniert. Gehört das evtl. so ? Mir ist der Zustand der Felder ohne das Abspeichern allerdings nicht transparent, denn diese scheinen irgendwie zustandslos zu sein, da alle Felder mit einen displayCond nicht angezeigt werden, bzw. das displayCond kein true bekommt. Muss möglicherweise von Seiten PHP der Extension eingegriffen werden um eine Art init auf die Flexform auszulösen ? Oder dem Methodenaufruf $this->pi_initPIflexForm(); ein Parameter mitgegeben werden ? Randnotiz : Falls es jemanden auffallen sollte, in meinem ersten Post haben es die Großbuchstaben nicht korrekt aus dem xml in die Codebox geschafft. Im xml ist es aber korrekt, also autoSetup, linkMethod, displayCond usw. Viele Grüße Extensions:
cfa_mooflow cfa_globalweatherws perl -e 'print pack(c5,(41*2),sqrt(7056),(unpack(c,H)-2),oct(115),10);' |
|
Verfasst am: 16. 12. 2008 [21:50]
|
|
|
ThBodi
Dabei seit: 02.05.2006
Beiträge: 98
|
Ich habe mich gerade gefragt, warum Du falsches noch falscher gemacht hast. Gemeint war natürlich & l t ; (ohne Leerzeichen) und nicht <. Aber Du kannst noch was probieren: HTML <displayCond>FIELD:autoSetup:REQ:false</displayCond> |
|
Verfasst am: 17. 12. 2008 [00:04]
|
|
|
FazzyX
Themenersteller
Dabei seit: 07.09.2005
Beiträge: 47
|
Ich glaube der Dialog ging auf Kosten der Formatierung hier <displayCond>FIELD:autoSetup:& l t ;=:0</displayCond> (mit Leerzeichen versehen um es sichtbar zu machen) Zwar gibt es keine Fehlermeldung mehr, aber es ändert auch nichts an dem Ergebnis. Letzendlich ist diese Frage aber auch eher nebensächlich, da nicht geklärt ist ob der Zustand z.B. -1 betragen kann, oder gar beträgt. Interessant wäre der Wert den die Checkbox vor dem Speichern hat nachdem das Plugin eingehängt wurde. Mit REQ true respektive false hatte ich auch schon experimentiert, leider ohne Erfolg. Vielen Dank und Grüße Extensions:
cfa_mooflow cfa_globalweatherws perl -e 'print pack(c5,(41*2),sqrt(7056),(unpack(c,H)-2),oct(115),10);' |
|
Verfasst am: 20. 11. 2009 [22:39]
|
|
|
Mahavishnu
Dabei seit: 20.11.2009
Beiträge: 2
|
Gibt es hierzu neue Erfahrungen? Ich stehe vor dem selben Problem, und muss leider feststellen, dass displayCond bei meiner Flexform leider nicht zufriedenstellend funktioniert, da die entsprechenden Felder erst nach einmaligem Speichern angezeigt werden und NICHT nach Erstaufruf. |
|
Verfasst am: 20. 11. 2009 [23:53]
|
|
|
FazzyX
Themenersteller
Dabei seit: 07.09.2005
Beiträge: 47
|
Hallo Mahavishnu schrieb: Gibt es hierzu neue Erfahrungen? Aus meiner Sicht nicht. Ich halte das Verhalten mittlerweile allerdings für normal. Das Flexform XML wird m.E. erst nach dem Abspeichern in die DB geschrieben. Somit ist der Zustand beim setzen des Plugins erstmal "flüchtig". In diesem Zustand wird displayCond aber scheinbar noch gar nicht ausgewertet, bzw. löst es keine Aktion aus und somit wird alles angezeigt was definiert ist. Erst nachdem eine Aktion ausgeführt wurde die ein "reload" nach sich zieht funktioniert es wie gewünscht, gleichzusetzen mit dem Abspeichern. Ich habe das aber auch bei diversen Extensions beobachtet, dass je nach Konfigurations Optionen erst ein Abspeichern nötig war um die Funktion zu gewährleisten. HTH Extensions:
cfa_mooflow cfa_globalweatherws perl -e 'print pack(c5,(41*2),sqrt(7056),(unpack(c,H)-2),oct(115),10);' |
|
Verfasst am: 09. 12. 2009 [19:20]
|
|
|
Mahavishnu
Dabei seit: 20.11.2009
Beiträge: 2
|
Hallo, vielen Dank für die Antwort! "normal" würde ich das Verhalten aber eher nicht bezeichnen. Aus Usability-Sicht ist es eine ziemliche Katastrophe. |
|
Verfasst am: 04. 01. 2010 [15:04]
|
|
|
steffenk
Moderator
Dabei seit: 22.09.2005
Beiträge: 4839
|
XML-Regel: wird <> benötigt muss der Inhalt in CDATA Beispiel: HTML <displayCond><![CDATA[FIELD:autoSetup:<=:0]]></displayCond> Ausserdem richtige Schreibweise beachten: onChange, displayCond |
|
Verfasst am: 12. 01. 2011 [18:02]
|
|
|
chrisk
Dabei seit: 02.02.2010
Beiträge: 10
|
steffenk schrieb: XML-Regel: wird <> benötigt muss der Inhalt in CDATA Beispiel: HTML <displayCond><![CDATA[FIELD:autoSetup:<=:0]]></displayCond> Ausserdem richtige Schreibweise beachten: onChange, displayCond Servus, gibts denn die Möglichkeit zwei Bedienungen in die Regel einzubauen? Versucher derzeit ein Element zweimal in eine Auswahlliste bei TemplaVoila zu verknüpfen. Sprich irgendwie sowas wie: HTML <TCEforms type="array"> <label>Box Titel</label> <displayCond><![CDATA[FIELD:field_type:<=:2 && FIELD:field_type:>:0]]></displayCond> <config type="array"> <type>input</type> <size>48</size> <eval>trim</eval> </config> </TCEforms> Vielen Dank und schönen Abend. Grüße Chris |



