Orb Service Posted February 27, 2017 Share Posted February 27, 2017 Salut la communauté, Je suis tout nouveau sur prestashop 1.6. Je suis en train d'installer ma eboutique à Madagascar et j'ai dois un peu adapter la config française. J'ai bien compris comment changer certains champs comme SIRET et APE dans les traductions que j'ai remplacé par NIF et STAT. Lors d'une nouvelle inscription les champs s'affichent correctement pas de souci, mais quand je rentre le code NIF (ancien SIRET) d'une société j'ai une erreur probablement due au format du nombre différent de SIRET et idem pour mon STAT à la place de APE. le NIF a ce format : 0000000000 le STAT a ce format : 00000 00 0000 0 00 000 J'ai fait pas mal de recherche mais je tourne en rond !! Si quelqu'un peut m'aider ça serait sympa ! Merci d'avance, Olivier Link to comment Share on other sites More sharing options...
Hubert E-connecteur Posted February 28, 2017 Share Posted February 28, 2017 Bonjour, Vous allez être obligé de mettre un peu les mains dans le code pour faire cela. Si vous avez un accès FTP et que ça vous parle, vous trouverez le fichier concerné dans "classes/Validate.php". Il y a dedans une fonction qui s'appelle isSiret qui détermine ce qu'est un numéro de SIRET ou non, pareil pour la fonction isApe. Le mieux, pour éviter de toucher au code en soit-même est de créer une surchage du code, un override, vous trouverez les informations ici : http://doc.prestashop.com/display/PS16/Overriding+default+behaviors. Dans le fichier override que vous allez créer, il va falloir redéfinir les 2 fonctions, pour le NIF c'est assez simple : public static function isSiret($siret) { // test if siret / NIF contains 10 letters if (Tools::strlen($siret) != 10) { return false; } return true; } Pour le STAT, c'est un peu plus complexe, commencez par tester ça et on verra pour la suite. 1 Link to comment Share on other sites More sharing options...
Orb Service Posted February 28, 2017 Author Share Posted February 28, 2017 Bonjour Hubert, Je te remercie de bien vouloir m'aider et de t'intéresser à mon sujet ! Oui j'ai un accès à mes fichiers pas de souci ! Oui j'ai trouvé "classes/Validate.php" et la fonction isSiret qui détermine ce qu'est un numéro de SIRET ou non, pareil pour la fonction isApe. J'ai regarder le lien pour les fichiers override et j'ai à peu près compris qu'il fallait que je créer ce fichier dans /override/classes. Maintenant je suis pas du tout développeur mais je sais faire un copier/coller de code dans un fichier avec vraiment quelques notions ! Du coup : comment dois-je nommer mon nouveau fichier ? je suppose que si je colle les lignes que tu m'as envoyé ça ne va pas suffire ? Peut-être dois-je ajouter les balises php ? une fois le fichier créer, je test pour vérifier si presta sur le front office accepte mon NIF ? Les espaces entre les chiffres ne sont pas très importants pour le STAT si c'est ça qui est compliqué, déjà c'est très bien si on vérifier le nombre de chiffre ! Je pourrais même dire que dans un premier temps on est pas obligé de vérifier le nombre de chiffre, l'essentiel est de pouvoir entrer un numéro d'identification pour le NIF et le STAT et pouvoir valider l'inscription !! (le client pourra toujours venir modifier ses numéros ou moi même) Je te remercie bien, Olivier Link to comment Share on other sites More sharing options...
Hubert E-connecteur Posted February 28, 2017 Share Posted February 28, 2017 (edited) Le fichier doit s'appeler Validate.php, à placer dans : /override/classes. Le fichier doit être celui-ci : <?php /* * @override Validate.php file */ class Validate extends ValidateCore { public static function isSiret($siret) { // test if siret / NIF contains 10 letters if (Tools::strlen($siret) != 10) { return false; } return true; } } Testez déjà ce bout de code pour le champ NIF voir si tout est ok. Edited February 28, 2017 by Hubert E-connecteur (see edit history) 1 Link to comment Share on other sites More sharing options...
Orb Service Posted February 28, 2017 Author Share Posted February 28, 2017 Je viens de tester et j'ai toujours "NIF invalide" quand j'essai de valider l'inscription. Vu que j'ai pas mis le NIF obligatoire pour la création de compte, en mettant rien j'ai validé puis j'ai essayé de modifier 'mes info personnelles" mais pareil dès que j'entre les 10 chiffres de mon NIF il me marque "NIF invalide" ! Link to comment Share on other sites More sharing options...
Orb Service Posted February 28, 2017 Author Share Posted February 28, 2017 (edited) Bonne nouvelle ça fonctionne impect ce code Hubert !! Voilà pourquoi ça n'a pas marché dans un 1er temps : Supprimez le fichier /www/cache/class_index.php. C’est un fichier qui liste les chemins de toutes les classes utilisées par Prestashop. Si le fichier n’est pas supprimé, la surcharge (override) de la classe ne fonctionnera pas. Du coup je vais essayé de faire pareil avec Ape/STAT avec 17 chiffres et je reviens Edited February 28, 2017 by Orb Service (see edit history) Link to comment Share on other sites More sharing options...
Orb Service Posted February 28, 2017 Author Share Posted February 28, 2017 Nikel avec ce code pour NIF et STAT <?php /* * @override Validate.php file */ class Validate extends ValidateCore { public static function isSiret($siret) { // test if siret / NIF contains 10 letters if (Tools::strlen($siret) != 10) { return false; } return true; } public static function isApe($ape) { // test if Ape / STAT contains 17 letters if (Tools::strlen($ape) != 17) { return false; } return true; } } Evidemment si je met les espaces dans le stat il ne valide pas ! Mais déjà c'est très bien Merci encore. Je marque le topic comme résolu ! Link to comment Share on other sites More sharing options...
Hubert E-connecteur Posted February 28, 2017 Share Posted February 28, 2017 Content de le savoir ! Si vous voulez, vous pouvez rajouter un mask au champ APE (donc STAT). Par exemple : https://igorescobar.github.io/jQuery-Mask-Plugin/ Vous pouvez ajouter le bout de code dans le fichier du thème : authentification.tpl, vers la fin du fichier : <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.mask/1.14.10/jquery.mask.min.js"></script> <script> $(function() { $('#ape').mask('00000 00 0000 0 00 000'); }); </script> Link to comment Share on other sites More sharing options...
Orb Service Posted February 28, 2017 Author Share Posted February 28, 2017 Merci pour l'info c'est vrai que sur l'exemple c'est pas mal du tout ! J'ai ajouter le code à la fin du fichier authentification.tpl après une dernière balise {/strip} (le fichier dans themes/montheme/) Mais j'ai eu une erreur 500 quand je suis entré dans mes informations personnels donc pour le moment j'ai remis mon bakup authentification ! Peut être je n'ai pas mis les lignes au bon endroit ? Link to comment Share on other sites More sharing options...
Hubert E-connecteur Posted February 28, 2017 Share Posted February 28, 2017 En effet, il faut mettre le script dans des balises {literal} : http://doc.prestashop.com/display/PS16/Theme+templates+and+Smarty#ThemetemplatesandSmarty-Literals Link to comment Share on other sites More sharing options...
Orb Service Posted February 28, 2017 Author Share Posted February 28, 2017 J'ai essayé avec ça : {literal} <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.mask/1.14.10/jquery.mask.min.js"></script> <script> $(function() { $('#ape').mask('00000 00 0000 0 00 000'); }); </script> {/literal} Mais toujours pareil j'ai une erreur 500 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