[TYPO3-german] Formhandler Datums-Validierung

Johannes C. Schulz - EnzephaloN IT-Solutions info at enzephalon.de
Fri May 3 06:59:53 CEST 2013


Guten morgen typo3-Freunde

Wie ich soeben herausgefunden habe funktioniert die Validierung des "bdate"
eigentlich. Was nicht funktioniert ist das Zusammenspiel zwischen
bdate.errorCheck und dem AJAX-Validator. Wie ich schon vermutete, kommt im
Falle des AJAX-Validators der Inhalt des Feldes "adate" nicht vor (das
Formular wurde ja noch nicht abgeschickt). Der AJAX-Validator schickt
anscheinend nur das aktuelle Feld ab und das reicht nicht für den Vergleich
im typoscript. 

Sehr schade, denn so muß ich um einen guten Datums-Validator zu haben, auf
den AJAX-Validator und dessen "fancy stuff" verzichten.

Johannes


-----Ursprüngliche Nachricht-----
Von: typo3-german-bounces at lists.typo3.org
[mailto:typo3-german-bounces at lists.typo3.org] Im Auftrag von Johannes C.
Schulz - EnzephaloN IT-Solutions
Gesendet: Donnerstag, 2. Mai 2013 15:59
An: typo3-german at lists.typo3.org
Betreff: [TYPO3-german] Formhandler Datums-Validierung

Hallo typo3-Gemeinde

 

Ich bastele immernoch an einem Formhandler-Formular in dem zwei Daten
einzugeben sind. Das zweite Datum darf nicht kleiner als das erste Datum
sein. Dazu fand ich im Netz folgenden Code:

 

adate.errorCheck{

              1 = required

              2 = date

              2.pattern = d.m.Y

              3 = dateRange

              3.pattern < .2.pattern

              3.min = TEXT

              3.min{

                setCurrent.data = date:U

                setCurrent.wrap = (7*86400) + |

                current = 1

                prioriCalc = 1

                strftime = %d.%m.%Y

              }

              3.max = TEXT

              3.max {

               setCurrent.data = date:U

               setCurrent.wrap = (365*86400) + |

               current = 1

               prioriCalc = 1

                strftime = %d.%m.%Y

              }

            }

            bdate.errorCheck{

              1 = required

              2 = date

              2.pattern = d.m.Y

              3 = dateRange

              3.pattern < .2.pattern

              3.min = TEXT

              3.min{

                setCurrent.data = GP : formhandler | adate

                setCurrent.preUserFunc = user_strtotime->main

                setCurrent.wrap = 86400 + |

                current = 1

                prioriCalc = 1

                strftime = %d.%m.%Y

              }

              3.max = TEXT

              3.max {

                setCurrent.data = GP : formhandler | adate

                setCurrent.preUserFunc = user_strtotime->main

                setCurrent.wrap = (30*86400) + |

                current = 1

                prioriCalc = 1

                strftime = %d.%m.%Y

              }

            }

 

Die userFunc user_strtotime.php habe ich für meine Zwecke neu geschrieben:

 

<?php

class user_strtotime {

        var $cObj; // The backReference to the mother cObj object set at
call time

 

        /*

        * Call it from a USER cObject with 'userFunc = user_strtotime->main'

        */

  function main($content, $conf){

    $timestamp = null;

    $datum = array();

    $datum = explode('.',$content);

    $ob = mktime(0,0,0,$datum[2],$datum[1],$datum[3]);

    return $ob;

  }

        

}

?>

 

Allerdings kommt in der userFunx in der Variablen $content nichts an.
Anscheinend kommt aus dem TS an der Stelle setCurrent.data =
GP:formhandler|adate nichts heraus. 

 

Es handelt sich um ein 1-Step-Formular – geht da das überhaupt auf ein
anderen Eingabefeld mit GP:formhandler zuzugreifen??

Wenn nicht – wie greife ich dann darauf zu um die zwei Werte gegeneinander
abzugleichen?

 

 

Viele Grüße

Johannes

_______________________________________________
TYPO3-german mailing list
TYPO3-german at lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german




More information about the TYPO3-german mailing list