hiroshi Posted March 5, 2013 Share Posted March 5, 2013 Bonjour, Voila je voudrai ajouté dans ma page d'inscription un select qui aura pour capacité de switcher entre un compte particulier et un compte entreprise. Pour l'instant j'ai fait la partie facile, c'est à dire que mon select fait du .show() et .hide() sur les éléments voulu. Mais maintenant il me faut faire la vérification des champs dans le traitement. C'est pour le cas ou l'on est une entreprise il faut une validation du siret obligatoire. Mais j'ai un peu cherché sans trouvé ou était implémenté la fonction pour l'enregistrement... Alors j'aimerai bien avoir une doc ou tout autre élément pour me précisé dans quel fichier trouvé se que je cherche et au cas ou un nom de fonction. Merci beaucoup d'avance et je mettrai comme d'hab à contribution tout le récapitulatif et un petit tuto une fois mon problème régler. Cordialement, Link to comment Share on other sites More sharing options...
hiroshi Posted March 6, 2013 Author Share Posted March 6, 2013 (edited) Donc j'ai réussi en parti et donc voila une ébauche de ce que j'ai fait. Tout d'abord, afin d'avoir un formulaire comme vous le souhaité, je vous conseil de le faire vous même mais pour les fainéants voici un exemple tiré de mon /theme/mon_theme/authentification.tpl : {* variable pour savoir si nous sommes dans une configuration B2B ou B2C *} {assign var=modeCompany value=false} {if isset($smarty.post.typeofcount) && $smarty.post.typeofcount=='society'}{assign var=modeCompany value=true}{/if} <script type="text/javascript"> {literal} /* fonction pour afficher ou caché les éléments souhaité, dans mon cas il s'agis du fieldset de la partie infos société et du champ société dans l'adresse */ function switchType(valeur) { if(valeur=='society'){ $('.field_company').show(); } else { $('.field_company').hide(); } } {/literal} </script> <p class="select required"> <span>{l s='You are'}</span> <select id="typeofcount" name="typeofcount" onchange="switchType(this.value);"> <option value="individual" {if isset($smarty.post.typeofcount) && $smarty.post.typeofcount=='individual'}selected="selected"{/if}>{l s='An individual'}</option> <option value="society" {if isset($smarty.post.typeofcount) && $smarty.post.typeofcount=='society'}selected="selected"{/if}>{l s='A society'}</option> </select> </p> Et j'ai donc ajouté une class "field_company" aux éléments fieldset des infos companie (ctrl+f sur "{l s='Your company information'}" et c'est la ligne du dessus) et sur le champ Société dans la partie de l'enregistrement de l'adresse (ctrl+f sur " $field_name eq "company"}" et c'est la ligne du dessous). Ensuite dans le fichier /override/controllers/front/AuthController.php vous allez créer un over-classage de la fonction qui permet la vérification des champs uniquement si le champ ajouté via le select est à la valeur souhaité. class AuthController extends AuthControllerCore { protected function processSubmitAccount() { if(isset($_POST['typeofcount']) && $_POST['typeofcount']=='society'){ Customer::$definition['fields']['siret']['required']=true; Customer::$definition['fields']['ape']['required']=true; Customer::$definition['fields']['company']['required']=true; /* Le groupe 4 étant mon groupe de type société */ Customer::$initGroupBox=4; } parent::processSubmitAccount(); } } Maintenant, le second problème pour ma part, c'est l'auto-assignation à un groupe dans la cas ou le SIRET est valide. Je n'ai pas trouvé d'ajout a un groupe. pour le moment. Merci d'avance et à bientôt. Cordialement, Edited March 6, 2013 by hiroshi (see edit history) Link to comment Share on other sites More sharing options...
hiroshi Posted March 6, 2013 Author Share Posted March 6, 2013 (edited) Voici mon dernier élément, pour l'ajout à un groupe automatique j'ai over-classer la classe Customer dans le fichier /override/classes/Customer.php : class Customer extends CustomerCore { public static $initGroupBox=-1; public function updateGroup($list) { $this->cleanGroups(); if(isset(self::$initGroupBox) && self::$initGroupBox>=0) { $this->addGroups(array(self::$initGroupBox)); } else { parent::updateGroup($list); } } } J'espère vous avoir un peu aidé. Cordialement. Edited March 6, 2013 by hiroshi (see edit history) Link to comment Share on other sites More sharing options...
bobijo13 Posted January 16, 2014 Share Posted January 16, 2014 bonjour pourriez vous me donner un coup de main pour l'intégrer sur un prestashop 1.5.3.1 je n ai pas compris ou et comment placer votre code dans /theme/mon_theme/authentication.tpl merci de votre aide 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