alextn Posted April 20, 2019 Share Posted April 20, 2019 Ciao a tutti, Prestashop 1.7. Ho bisogno di modificare per ragioni che non sto spiegando la funzione isEan13 in modo che nel campo EAN 13 lettere e numeri possono essere inseriti senza alcun limite e controllo(al limite solo quello sul numero di caratteri). Ho aperto il file classes / validate / validate.php e modificato la funzione isEan13 in questo modo: funzione pubblica statica isEan13 ($ ean13) { return is_string ($ ean13); } Inserendo numeri tutto ok, inserendo lettere di testo, ottengo sempre l'errore "Questo valore non è valido". Qualche aiuto per favore? PS Cash svuotatata. Link to comment Share on other sites More sharing options...
simone93 Posted April 24, 2019 Share Posted April 24, 2019 (edited) prova a modificare l'espressione regolare in /classes/validate.php se hai dubbi se funziona ho meno la tua nuova espressione regolare usa questo sito (https://regex101.com/) Simone Edited April 24, 2019 by simone93 (see edit history) Link to comment Share on other sites More sharing options...
alextn Posted April 24, 2019 Author Share Posted April 24, 2019 Soluzione: ////////////////////////////////////////////////////////////////////// FILE: classes/Validate.php public static function isEan13($ean13) { return !$ean13 || preg_match('/^[0-9]{0,13}$/', $ean13); } MODIFICA IN public static function isEan13($ean13) { return !$ean13 || preg_match('/^[a-zA-Z0-9]{0,13}$/', $ean13); } ////////////////////////////////////////////////////////////////////// FILE: src\PrestaShopBundle\Form\Admin\Product/ProductOptions.php ->add('ean13', FormType\TextType::class, [ 'required' => false, 'error_bubbling' => true, 'label' => $this->translator->trans('EAN-13 or JAN barcode', [], 'Admin.Catalog.Feature'), 'constraints' => [ new Assert\Regex('/^[0-9]{0,13}$/'), ], 'empty_data' => '', ]) MODIFICA IN ->add('ean13', FormType\TextType::class, [ 'required' => false, 'error_bubbling' => true, 'label' => $this->translator->trans('EAN-13 or JAN barcode', [], 'Admin.Catalog.Feature'), 'constraints' => [ new Assert\Regex('/^[a-zA-Z0-9]{0,13}$/'), ], 'empty_data' => '', ]) ////////////////////////////////////////////////////////////////////// Link to comment Share on other sites More sharing options...
Netorà webagency Posted March 9, 2020 Share Posted March 9, 2020 On 5/4/2019 at 11:11 PM, hardware-store said: ciao. Scusa ma L'ean 13 e uno standard che non può avere lettere, ne di essere di meno di 13 o maggiore di 13 numeri semplicemente per una questione di standard e di fattori di ricerca. Se avessi spiegato i motivi di avere nei codici a barre anche lettere forse era meglio. Potresti trovarti con dei problemi non da poco nell'interscambio di dati tra i vari maketplace, plug-in ecc ecc. Per la tua esigenza potresti invece prendere in considerazione il Code-128 composto da lettere enumeri basato su codice a barre ABC-abc-1234 Una ricerca mi ha portato inoltre a questo articolo che potrebbe interessarti Salve, attualmente utilizziamo codici a barre di questo tipo: "P138122600600" (dunque 13 caratteri con 1 lettera iniziale) e dunque penso che il Code128 possa tornarci utile perché gli altri 3 campi in prestashop non accettano questo tipo di codice a barre quando l'andiamo ad inserire/scannerizzare. Mi saprebbe dire come posso abilitare il campo Code128? La ringrazio. Link to comment Share on other sites More sharing options...
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