Witam,
weryfikację polskiego NIP trzeba wykonać w pliku \classes\Validate.php a konkretnie w funkcji isDni($dni).
rozwiązanie jest prowizorką - wykorzystuję fakt że hiszpański numer DNI ma długość 9 znaków, w tym 8 cyfr i jedną literę, a polski numer NIP ma 10 cyfr. Można więc w tej funkcji sprawdzać liczbę cyfr; jeżeli jest ich 10 to przyjmujemy że to jest NIP i sprawdzamy jego cyfrę kontrolną. Jeżeli cyfr nie jest 10 to pozwalamy funkcji badać czy to jest prawidłowy hiszpański DNI/NIF/CIF/NIE.
Poniżej treść wstawki kodu tuż poniżej komentarzy o Return code:
$NIP = '';
for($i=0;$i<strlen($dni);$i++)
if ( ($dni[$i]>='0') && ($dni[$i]<='9') )
$NIP = $NIP . $dni[$i];
if(strlen($NIP)==10)
{ $sum = 0;
for ( $i=0; $i< 9; ++$i )
$sum += $NIP{$i} * substr('657234567', $i, 1);
$CK = ($sum % 11) % 10;
if ( $CK == $NIP{9} )
return 1;
}
/* poniżej oryginalna instrukcja sprawdzająca czy wpisano coś w to pole */
if (!$dni)
return 1;
pozdrawiam
Romek
PS. Żeby to miało sens to polskie tłumaczenie w authentication.tpl trzeba poprawić.
Górny napis NIP powinien brzmieć: Numer identyfikacyjny
A zamiast napisu PESEL powinien być NIP,
a zamiast DNI/NIF/NIE można wstawić napis "10 cyfr"
Można też oczywiście dodać następną walidację numeru REGON, jeśli to komu potrzebne