Ho installato il modulo Phone (CCk) (http://drupal.org/project/phone).
Ho creato un field "Telefono" in un tipo di contenuto mio. Il tipo è "Italian Phone Numbers".
Ma quando vado a creare contenuto e inserisco un numero di telefono (il mio, quindi sicuro che esiste) mi dà l'errore:
"is not a valid Italian phone number
Italian phone numbers should only ..."
Altri hanno riscontrato questo problema?
È bypassabile?
mi sono imbattuto in questa discussione
http://drupal.org/node/342195
magari può esserti utile
Ho provato ad aggiungere un
include_once('./'. drupal_get_path('module', 'phone') .'/phone.it.inc');
Quel commento è del 2008 mentre l'ultima versione del modulo è di 2 mesi fa, mi sembra strano che non siano stati inseriti nelle ultime versioni gli include con le funzioni per validare i numeri per le varie nazioni. Cmq ho risposto nel thread, vediamo cosa succede...
Ciao,
penso che chi abbia sviluppato il modulo non l'abbia completato, almeno per la parte in italiano.
Fai così e dovrebbe funzionare:
nella function valid_it_phone_number aggiungi
$regex = "/^(\+39\s){0,1}(0[1-9]{1,3}|3[0-9]{2,})\s[0-9]{5,9}$/";
function format_it_phone_number($phonenumber, $field) {
$phonenumber = trim($phonenumber);
$first_space = strpos($phonenumber, ' ');
$prefix = substr($phonenumber, 0, $first_space);
$prefix = trim($prefix);
// do some formatting on the phone number
$phonenumber = str_replace("[ -]", "", $phonenumber);
if ($field['phone_country_code']) {
if ($prefix != "+39") {
$phonenumber = "+39" . " " . $phonenumber;
}
}
return $phonenumber;
}
Così dovrebbe funzionare
Gabriele
Grazie mille della risposta!
Ho modificato l'espressione regolare con un paio di asterischi dopo le s, così gli spazi possono esserci ma anche no.
"/^(\+39\s*){0,1}(0[1-9]{1,3}|3[0-9]{2,})\s*[0-9]{5,9}$/";
La seconda funzione non l'ho modificata perché non credo di averne bisogno.
edit: tolti i commenti fatti mentre provavo a mettere in pratica il suggerimento di correzione...