PS 1.7. zrobilem validacje podczas rejestracji pola daty (>18 lat) i ok, pod tym wzgledem dziala jak najbardziej poprawnie. tutaj nie mam zadnych pytan. ale znalazlem jednego buga presta. sprawdzalem i to samo jest na wielu innych stronach z validacja (w sumie jeszcze nie znalezlem strony na 1.7 zeby dziaialo to poprawnie)
w czym dokladnie rzecz. powiedzmy w jezyku format ustawiony jest na d.m.Y i jak wpisze sie jakis niepoprawny format np. d/m/Y to ok, format zostaje z informacja "error", ze format niepoprawny. ale jak wpiszemy poprawny format tyle, ze z data ponizej 18 lat to zmienia format daty na Y-m-d. tak jakby to bylo gdzies na sztywno zapisane...
znalazlem w ./classes/form/CustomerForm.php fukcje validate() a w niej
$birthdayField = $this->getField('birthday');
if (!empty($birthdayField)) {
$birthdayValue = $birthdayField->getValue();
if (!empty($birthdayValue)) {
$dateBuilt = DateTime::createFromFormat(Context::getContext()->language->date_format_lite, $birthdayValue);
if (!empty($dateBuilt)) {
$birthdayField->setValue($dateBuilt->format('Y-m-d'));
}
}
}
jednak nawet jak zmienie tutaj format z ostatniej linijki to nic sie nie zmienia. zawsze Y-m-d i tyle. gdzie to dziadostwo jeszcze moze siedziec?
Question
design4VIP
PS 1.7. zrobilem validacje podczas rejestracji pola daty (>18 lat) i ok, pod tym wzgledem dziala jak najbardziej poprawnie. tutaj nie mam zadnych pytan. ale znalazlem jednego buga presta. sprawdzalem i to samo jest na wielu innych stronach z validacja (w sumie jeszcze nie znalezlem strony na 1.7 zeby dziaialo to poprawnie)
w czym dokladnie rzecz. powiedzmy w jezyku format ustawiony jest na d.m.Y i jak wpisze sie jakis niepoprawny format np. d/m/Y to ok, format zostaje z informacja "error", ze format niepoprawny. ale jak wpiszemy poprawny format tyle, ze z data ponizej 18 lat to zmienia format daty na Y-m-d. tak jakby to bylo gdzies na sztywno zapisane...
znalazlem w ./classes/form/CustomerForm.php fukcje validate() a w niej
$birthdayField = $this->getField('birthday'); if (!empty($birthdayField)) { $birthdayValue = $birthdayField->getValue(); if (!empty($birthdayValue)) { $dateBuilt = DateTime::createFromFormat(Context::getContext()->language->date_format_lite, $birthdayValue); if (!empty($dateBuilt)) { $birthdayField->setValue($dateBuilt->format('Y-m-d')); } } }
jednak nawet jak zmienie tutaj format z ostatniej linijki to nic sie nie zmienia. zawsze Y-m-d i tyle. gdzie to dziadostwo jeszcze moze siedziec?
dla przykladu demo jednego z analogicznych modulow z addons: https://ps17.technoflock.com/techno10/en/login?create_account=1
wpisujac poprawny format daty ale spoza przedzialu zmienia format, np. 05/31/2018
jakies pomysly gdzie tego jeszcze mozna szukac i w jaki sposob zamienic na 'date_format_lite' pobierany z jezyka ?
z gory dzieki za wszelkie podopowiedzi i sugestie
Edited by design4VIP (see edit history)Link to comment
Share on other sites
3 answers to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now