richi1991 Posted September 17, 2013 Share Posted September 17, 2013 (edited) Hola amigos, resulta que estaba simulando una compra en mi tienda prestashop para ver si estaba ya configurado el método paypal, pero al ingresar el Numero de Identificación DNI que es el IFE/CURP cada uno es de 18 caracteres me dice que solo puedo ingresar 16, lo de menos por ahorita sería solo ingresar 16 caracteres pero si en mi país (México) son 18 cuando un cliente se registre tiene que ingresar lo real que son 18 porque es muy importante, donde puedo modificar este tamaño de caracteres a 18?? Gracias Edited October 1, 2013 by richi1991 (see edit history) Link to comment Share on other sites More sharing options...
Sergio Ruiz Posted September 17, 2013 Share Posted September 17, 2013 /classes/Validate.php public static function isDniLite($dni) { return empty($dni) || (bool)preg_match('/^[0-9A-Za-z-.]{1,16}$/U', $dni); } En donde dice "16" depende 16, pon un numero mayor. Pruebalo. Recuerdado que lo optimo es hacer un override de la clase, depende editar la clase original, pero vamos prueba primero y si va, pues ya hacemos el override. 1 Link to comment Share on other sites More sharing options...
richi1991 Posted September 17, 2013 Author Share Posted September 17, 2013 Amigo desaparecieron 2 errores pero aún queda uno =( ahora a donde le modifico?? ayuda please el error que me aparece es el siguiente dni es demaciado grande. Tamaño máximo: 16 Link to comment Share on other sites More sharing options...
richi1991 Posted September 17, 2013 Author Share Posted September 17, 2013 /classes/Validate.php public static function isDniLite($dni) { return empty($dni) || (bool)preg_match('/^[0-9A-Za-z-.]{1,16}$/U', $dni); } En donde dice "16" depende 16, pon un numero mayor. Pruebalo. Recuerdado que lo optimo es hacer un override de la clase, depende editar la clase original, pero vamos prueba primero y si va, pues ya hacemos el override. Amigo desaparecieron 2 errores pero aún queda uno =( ahora a donde le modifico?? ayuda please el error que me aparece es el siguiente dni es demaciado grande. Tamaño máximo: 16 Link to comment Share on other sites More sharing options...
Sergio Ruiz Posted September 17, 2013 Share Posted September 17, 2013 Pero has cambiado aquí: return empty($dni) || (bool)preg_match('/^[0-9A-Za-z-.]{1,16}$/U', $dni); el 16 por otro numero ?? Link to comment Share on other sites More sharing options...
richi1991 Posted September 17, 2013 Author Share Posted September 17, 2013 Pero has cambiado aquí: return empty($dni) || (bool)preg_match('/^[0-9A-Za-z-.]{1,16}$/U', $dni); el 16 por otro numero ?? Si amigo le puse 18 y nada :/ Link to comment Share on other sites More sharing options...
richi1991 Posted September 18, 2013 Author Share Posted September 18, 2013 Si amigo le puse 18 y nada :/ Aún no puedo =( Link to comment Share on other sites More sharing options...
Sergio Ruiz Posted September 18, 2013 Share Posted September 18, 2013 Aún no puedo =( Luego lo miro. Link to comment Share on other sites More sharing options...
richi1991 Posted September 18, 2013 Author Share Posted September 18, 2013 Luego lo miro. Si por favor :/ Gracias Link to comment Share on other sites More sharing options...
richi1991 Posted September 24, 2013 Author Share Posted September 24, 2013 Aún nada amigo? :/ #Sergio Ruiz? Link to comment Share on other sites More sharing options...
Sergio Ruiz Posted September 24, 2013 Share Posted September 24, 2013 ¿Que "dni" estas metiendo exactamente? Date cuenta, que de todos modos esto: return empty($dni) || (bool)preg_match('/^[0-9A-Za-z-.]{1,16}$/U', $dni); es una regla de validación. 1 Link to comment Share on other sites More sharing options...
richi1991 Posted September 24, 2013 Author Share Posted September 24, 2013 ¿Que "dni" estas metiendo exactamente? Date cuenta, que de todos modos esto: return empty($dni) || (bool)preg_match('/^[0-9A-Za-z-.]{1,16}$/U', $dni); es una regla de validación. Tengo esto mira amigo public static function isDniLite($dni) { return empty($dni) || (bool)preg_match('/^[0-9A-Za-z-.]{1,18}$/U', $dni); } Link to comment Share on other sites More sharing options...
Sergio Ruiz Posted September 28, 2013 Share Posted September 28, 2013 Te he preguntado cual es el dni de ejemplo que estas metiendo, no que me pegues la función de nuevo. xD Link to comment Share on other sites More sharing options...
Sergio Ruiz Posted September 28, 2013 Share Posted September 28, 2013 Te he preguntado cual es el dni de ejemplo que estas metiendo, no que me pegues la función de nuevo. xD Por ejemplo, yo he metido este dni de ejemplo: 15458569810F y si funciona. Necesito saber que formato estas metiendo, para adaptar la función de validación a lo que requieres. Link to comment Share on other sites More sharing options...
richi1991 Posted September 28, 2013 Author Share Posted September 28, 2013 Lo que pasa es que prestashop solo permite ingresar 16 caracteres y en méxico la curp consta de 18 caracteres variados entre numeros y letras por ejemplo esta: MECC020123HDFNRR04, lo que quiero hacer es que prestashop me acepte los 18 caracteres pues son obligatorios para la facturación etc. Ya aumente a 18 donde me dijiste y la cosa sigue igual, :/ help! Link to comment Share on other sites More sharing options...
Sergio Ruiz Posted September 28, 2013 Share Posted September 28, 2013 Lo que pasa es que prestashop solo permite ingresar 16 caracteres y en méxico la curp consta de 18 caracteres variados entre numeros y letras por ejemplo esta: MECC020123HDFNRR04, lo que quiero hacer es que prestashop me acepte los 18 caracteres pues son obligatorios para la facturación etc. Ya aumente a 18 donde me dijiste y la cosa sigue igual, :/ help! En el fichero: /classes/Address.php Tienes esto: 'dni' => array('type' => self::TYPE_STRING, 'validate' => 'isDniLite', 'size' => 16), Si cambias el 16 por otro numero (por ejemplo 18) ¿Que pasa? Link to comment Share on other sites More sharing options...
Sergio Ruiz Posted September 28, 2013 Share Posted September 28, 2013 (edited) En el fichero: /classes/Address.php Tienes esto: 'dni' => array('type' => self::TYPE_STRING, 'validate' => 'isDniLite', 'size' => 16), Si cambias el 16 por otro numero (por ejemplo 18) ¿Que pasa? Cambia tambien, en base de datos, en la tabla: ps_address el campo dni la longitud. Muestro Imagen Edited September 28, 2013 by Sergio Ruiz (see edit history) 1 Link to comment Share on other sites More sharing options...
Sergio Ruiz Posted September 28, 2013 Share Posted September 28, 2013 Hola, ¿Estas ahí? Link to comment Share on other sites More sharing options...
richi1991 Posted September 30, 2013 Author Share Posted September 30, 2013 Hola, ¿Estas ahí? Hola si aquí ando despues de mucho jaja, ya realicé los cambios que me dijiste amigo, probaré y en un momento te digo que paso va =) gracias! Link to comment Share on other sites More sharing options...
Sergio Ruiz Posted September 30, 2013 Share Posted September 30, 2013 Hola si aquí ando despues de mucho jaja, ya realicé los cambios que me dijiste amigo, probaré y en un momento te digo que paso va =) gracias! ¿Fue todo mal o todo bien? Link to comment Share on other sites More sharing options...
richi1991 Posted October 1, 2013 Author Share Posted October 1, 2013 ¿Fue todo mal o todo bien? Muchas gracias ya funcionó ahora si ya puedo agregar 18 caracteres, te lo agradezco mucho Sergio Ruiz!! =) Paso a cambiar como solucionado. Link to comment Share on other sites More sharing options...
Recommended Posts