[TYPO3-german] [GELÖST] Formhandler Validator bzw prioriCalc Problem

Raphael Weber mailinglisten at screensolutions.de
Wed Nov 9 15:44:48 CET 2011


Ich schon wieder - ich liebe Monologe ;)

Hier meine Lösung, evtl kann´s ja jemand gebrauchen:

> trotz der Anpassung habe ich immer noch Probleme mit dem Auslesen der
> Postvariable 'startdate', denn folgendes ts bringt immer noch nicht das
> gewünschte Ergebnis:
>
> enddate.errorCheck {
> 2 = date
> 2.pattern = d.m.Y
> 3 = dateRange
> 3.pattern < .2.pattern
> 3.min = TEXT
> 3.min.data = GP : formhandler | startdate
> 3.min.strftime = %d.%m.%Y

Kann ja auch nicht funktionieren, da über die POST-Variable bereits ein 
Wert im Format '%d.%m.%Y' übergeben wird. Damit lässt sich natürlich 
kein UNIX-Timestamp vergleichen und schon gar nicht rechnen.

Leider habe ich in der TSref keine stdWrap-Funktion gefunden (gibts das 
tatsächlich nicht?), die strtotime entspricht, was man in diesem Fall 
aber braucht.

Daher habe ich mir eine kleine User-Function gebastelt, die den Job 
übernimmt:

[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) {
		$content = trim($content);
		$op = strtotime($content);
		return $op;
	}
	
}
[/PHP]

Diese User-Func muss natürlich noch eingebunden werden, z.B.:

[TS]
includeLibs.user_strtotime = fileadmin/user_func/user_strtotime.php
[/TS]

Dann klappts auch mit folgendem TypoScript:

[TS]
           startdate.errorCheck {
             1 = required
             2 = date
             2.pattern = d.m.Y
             3 = dateRange
             3.pattern < .2.pattern
             3.min = TEXT
             3.min.data = date : U
             3.min.strftime = %d.%m.%Y
             3.max = TEXT
             3.max {
               setCurrent.data = date : U
               setCurrent.wrap = (60 * 60 * 24 * 365) + |
               current = 1
               prioriCalc = 1
               strftime = %d.%m.%Y
             }


           }
           enddate.errorCheck {
             2 = date
             2.pattern = d.m.Y
             3 = dateRange
             3.pattern < .2.pattern
             3.min = TEXT
             3.min.data = GP : formhandler | startdate
             3.min.preUserFunc = user_strtotime->main
             3.min.strftime = %d.%m.%Y
             3.max = TEXT
             3.max {
               setCurrent.data = GP : formhandler | startdate
               setCurrent.preUserFunc = user_strtotime->main
               setCurrent.wrap = 60 * 60 * 24 * 14 + |
               current = 1
               prioriCalc = 1
               strftime = %d.%m.%Y
             }
           }

[/TS]

Grüße,
	raphael


More information about the TYPO3-german mailing list