newbie1 Posted August 26, 2012 Share Posted August 26, 2012 Bonjour, J'ai besoin de connaitre des détails supplémentaires concernant l'identité de mes clients: combien d'enfants ont ils et les prénoms, dates de naissance et sexe de ces enfants. Pour cela, j'ai ajouté une table lk_child dans la base de données dont la structure est la suivante: id_child : clé primaire id_parent: = id_customer pour associer l'entrée au client concerné gender firstname birthday Après je sèche ... Quels fichiers modifier? J'ai bien modifé identity.tpl pour le moment, mais où et comment faire les insertions et appels à la base de données pour avoir les informations? Dans l'idéal (mais j'en suis loin), l'utilisateur se verrait demander: enceinte? oui / non si oui, alors demande du prénom de l'enfant, de son sexe et de sa date de naissance prévue enfants: possibilité d'ajouter des enfants en cliquant sur un bouton ajout avec pour chacun d'eux le prénom, la date de naissance et le sexe. Si cela est trop compliqué à mettre en place alors, une version simplifiée, 5 lignes enfant1, enfant2, ... enfant5 avec sur chaque ligne un champ prenom, date de naissance et sexe. Voici mon site: http://www.lekoutchoulou.com Merci beaucoup pour votre aide!! Link to comment Share on other sites More sharing options...
franckm1000 Posted August 26, 2012 Share Posted August 26, 2012 (edited) Pour ajouter un champs, il faut ajouter... une variable. IL ne faut pas rajouter une table mais un champs dans une table. En l'occurrence ici il faudra rajouter un champs dans la table ps_customer. (bien sûr, il suffit de rajouter autant de champs qu'il y aura de champs dans le formulaire genre un champs prenom_enfant, un champs sexe_enfant et un champs date_naissance par exemple). Ensuite, il va falloir travailler sur la classe customer. Cette classe est contenue dans le fichier classes/customer.php Tu vois au début du fichier des déclarations de variable. Il va falloir déclarer tes variables: public $prenom_enfant; public $sexe_enfant; public $date_naissance; Ensuite, il va falloir insérer les variables dans le tableau $fieldsValidate. Dans le tableau: $fieldsValidate = array('secure_key' => 'isMd5', 'lastname' => 'isName',... Tu insères à la fin: 'prenom_enfant' => 'isCleanHtml','date_naissance' => 'isCleanHtml', 'sexe_enfant' => 'isCleanHtml' Enfin dans ce même fichier, on va faire la relation avec la base dans la fonction getFields en rajoutant avant le return $fields: $fields['prenom_enfant'] = pSQL($this->prenom_enfant); $fields['date_naissance'] = pSQL($this->date_naissance); $fields['sexe_enfant'] = pSQL($this->sexe_enfant); Ensuite dans le fichier TPL, on va rajouter les champs input: <input type="text" name="prenom_enfant" /><br /> <input type="text" name="sexe_enfant" /><br /> <input type="text" name="date_naissance" /><br /> Et voilà, quand tu valideras les champs, normalement les champs supplémentaires seront remplis également. Il nous reste à afficher les informations supplémentaires dans la fiche client depuis le BO. Cela se passe dans le fichier AdminAdresses.php du répertoire admin/tabs/AdminAdresses.php Là, par exemple après: echo ' <label>'.$this->l('Other').'</label> <div class="margin-form"> <textarea name="other" cols="36" rows="4">'.htmlentities($this->getFieldValue($obj, 'other'), ENT_COMPAT, 'UTF-8').'</textarea> <span class="hint" name="help_box">'.$this->l('Forbidden characters:').' <>;=#{}<span class="hint-pointer"> </span></span> </div>'; Tu ajoutes: echo ' <label>'.$this->l('prénom enfant').'</label> <div class="margin-form"> <input type="text" size="33" name="phone_mobile" value="'.htmlentities($this->getFieldValue($obj, 'prenom_enfant'), ENT_COMPAT, 'UTF-8').'" /> </div>'; echo ' <label>'.$this->l('sexe enfant').'</label> <div class="margin-form"> <input type="text" size="33" name="phone_mobile" value="'.htmlentities($this->getFieldValue($obj, 'sexe_enfant'), ENT_COMPAT, 'UTF-8').'" /> </div>'; echo ' <label>'.$this->l('date naissance').'</label> <div class="margin-form"> <input type="text" size="33" name="phone_mobile" value="'.htmlentities($this->getFieldValue($obj, 'date_naissance'), ENT_COMPAT, 'UTF-8').'" /> </div>'; Voilà ça doit être tout bon. Je l'ai pas testé mais je pense pas avoir oublié quelque chose. Si ça marche pas, fais moi signe que je regarde si j'ai pas omis quelque chose. Bien sûr, il faudrait l'améliorer pour inclure des champs différents (garçon/fille pour sexe, format date pour la naissance...) Voilà, 30 minutes pil-poil pour l'écrire, alors j'espère que ça servira Edited August 26, 2012 by franckm1000 (see edit history) 1 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