[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