rickhard Posted July 13, 2009 Share Posted July 13, 2009 salut à tous,tout d'abord merci beaucoup aux auteurs pour ce soft e-commerce que je trouve trés intuitif et trés bien fait.Une demi journée d'installation et le truc commence déjà à rouler :-) Pour ma part j'avais besoin de rajouter un champ dans le profil des clients, un champ pseudo pour faire le lien entre un forum et le shop.En cherchant un peu je n'ai pas trouvé d'astuce toute faites, mais je vais quand même poster ma solution si toutefois cela peut intéresser du monde qui se trouve dans le même cas.Tout d'abord dans votre table customers, vous devez rajouter un champ pseudo à la fin de la table.ensuite les modifsouvrir themes/votre_thème/authentication.tplcherchez: {l s='E-mail'} <input type="text" class="text" id="email" name="email" value="{if isset($smarty.post.email)}{$smarty.post.email}{/if}" /> * aprés ajoutez: <!-- Rajout pour rendre le pseudo obligatoire --> {l s='Pseudo'} <input type="text" class="text" id="pseudo" name="pseudo" value="{if isset($smarty.post.pseudo)}{$smarty.post.pseudo}{/if}" /> * <!-- Rajout pour rendre le pseudo obligatoire --> Puis ouvrir classes/Customer.phpdans la class class Customer extends ObjectModel ajoutez: /** Rajout pour rendre le pseudo obligatoire */ /** @var string pseudo */ public $pseudo; /** FIN Rajout pour rendre le pseudo obligatoire */ puis rajoutez votre champ pseudo pour le rendre obligatoire dans la ligne: protected $fieldsRequired = array('lastname', 'passwd', 'firstname', 'email', 'pseudo'); puis on définie une longueur: protected $fieldsSize = array('lastname' => 32, 'passwd' => 32, 'firstname' => 32, 'email' => 128, 'pseudo' => 50); et la validation protected $fieldsValidate = array('secure_key' => 'isMd5', 'lastname' => 'isName', 'firstname' => 'isName', 'email' => 'isEmail', 'passwd' => 'isPasswd', 'id_gender' => 'isUnsignedId', 'birthday' => 'isBirthDate', 'newsletter' => 'isBool', 'optin' => 'isBool', 'active' => 'isBool', 'pseudo' => 'isGenericName'); puis aprés: $fields['newsletter'] = intval($this->newsletter); rajoutez: /** Rajout pour rendre le pseudo obligatoire */ $fields['pseudo'] = pSQL($this->pseudo); /** FIN Rajout pour rendre le pseudo obligatoire */ enfin nous allons le faire afficher dans le profil du client:ouvrir admin/tabs/AdminCustomers.phpcherchez: '.$this->l('Last visit:').' '.($customerStats['last_visit'] ? Tools::displayDate($customerStats['last_visit'], 1, true) : $this->l('never')).' remplacez par: '.$this->l('Last visit:').' '.($customerStats['last_visit'] ? Tools::displayDate($customerStats['last_visit'], 1, true) : $this->l('never')).' '.$this->l('Pseudo:').' '.sprintf($customer->pseudo).' et enfin on le rajoute dans l'édition/ajout d'un profil du panneau admin (volontairement je ne l'ai pas ajouté dans la partie client afin qu'il ne puisse pas le modifier sans notre accord, mais c'est un choix personnel qui est facilement modifiable)pour cela dans la fonction juste avant: '.$this->l('Birthday:').' '; rajoutez: '.$this->l('Pseudo :').' <input type="text" size="50" name="pseudo" value="'.htmlentities($this->getFieldValue($obj, 'pseudo'), ENT_COMPAT, 'UTF-8').'" /> * Voilà.je ne sais pas si cela sera utile ou bien si un tuto existe déjà mais si c'est le cas je ne l'ai pas trouvé, donc je donne l'astuce.Edit: correction d'un petit bug lors de la modification de la fiche client.j'ai un peu oublier de re-remplir la base en cas de modif. %-P Donc voici.ouvrir themes/votre_thème/identity.tplcherchez: <input type="checkbox" id="newsletter" name="newsletter" value="1" {if $smarty.post.newsletter == 1} checked="checked"{/if} /> {l s='Sign up for our newsletter'} avant ajoutez: {l s='Pseudo'} (Non modifiable) <input type="text" name="pseudo" id="pseudo" value="{$smarty.post.pseudo}" readonly/><br /> Pour toute modification, veuillez contacter le webmaster. Link to comment Share on other sites More sharing options...
Patric Posted July 13, 2009 Share Posted July 13, 2009 Il serait bon de mentionner la version de PS à laquelle ce code s'applique. Il ne sera peut-être pas compatible avec les futures versions. Link to comment Share on other sites More sharing options...
rickhard Posted July 13, 2009 Author Share Posted July 13, 2009 Il serait bon de mentionner la version de PS à laquelle ce code s'applique. Il ne sera peut-être pas compatible avec les futures versions. ah ok pas de soucis la version PS est la 1.1.0.5AU passage je ne l'ai pas fait en anglais mais si besoin est, demandez Link to comment Share on other sites More sharing options...
DrÿSs' Posted July 14, 2009 Share Posted July 14, 2009 Déplacé dans le forum Développement. Link to comment Share on other sites More sharing options...
Julien Breux Posted July 14, 2009 Share Posted July 14, 2009 Au nom de la communauté : MERCI Link to comment Share on other sites More sharing options...
rickhard Posted July 16, 2009 Author Share Posted July 16, 2009 Au nom de la communauté : MERCI avec plaisir, si ça peut aider Bon par contre j'ai modifié les modifs car il y avait un petit soucis, c'est à dire que le renvoi des infos si le client modifie son profil mettez à 0 le champ pseudo (ce qui est normal :-P )du coup je fais afficher le pseudo pour le client mais en non modifiable comme ça cela ne change rien pour le membre Link to comment Share on other sites More sharing options...
Gianfranco Posted July 28, 2009 Share Posted July 28, 2009 Many thanks for your job: is it possible to have the translation in English?I think is very demanded by the community to know how rendering required a already existing field, or to add a new required field in the new account creation.- Gianfranco Link to comment Share on other sites More sharing options...
rickhard Posted July 28, 2009 Author Share Posted July 28, 2009 Thank Gianfranco,Ok so let's go for the translation (Sorry for the future spelling mistake ) Hi everybody This trick add a required field during the registration, field that can be modify or not by the customers.For this exemple, it's a field "pseudo" to link my shop and a forum.First of all, you need to had a field "pseudo" at the end of the table "customers" with the same format of the other field.So now let's go to the modifications in the code.open themes/your_thème/authentication.tplFind: {l s='E-mail'} <input type="text" class="text" id="email" name="email" value="{if isset($smarty.post.email)}{$smarty.post.email}{/if}" /> * After add: <!-- Rajout pour rendre le pseudo obligatoire --> {l s='Pseudo'} <input type="text" class="text" id="pseudo" name="pseudo" value="{if isset($smarty.post.pseudo)}{$smarty.post.pseudo}{/if}" /> * <!-- Rajout pour rendre le pseudo obligatoire --> Open classes/Customer.phpIn class class Customer extends ObjectModel add: /** Rajout pour rendre le pseudo obligatoire */ /** @var string pseudo */ public $pseudo; /** FIN Rajout pour rendre le pseudo obligatoire */ then add you required filed "pseudo" in the following line, like this: protected $fieldsRequired = array('lastname', 'passwd', 'firstname', 'email', 'pseudo'); Now we defiine the length (I choose 50, it's enough for me) protected $fieldsSize = array('lastname' => 32, 'passwd' => 32, 'firstname' => 32, 'email' => 128, 'pseudo' => 50); And the validation test: protected $fieldsValidate = array('secure_key' => 'isMd5', 'lastname' => 'isName', 'firstname' => 'isName', 'email' => 'isEmail', 'passwd' => 'isPasswd', 'id_gender' => 'isUnsignedId', 'birthday' => 'isBirthDate', 'newsletter' => 'isBool', 'optin' => 'isBool', 'active' => 'isBool', 'pseudo' => 'isGenericName'); After this line: $fields['newsletter'] = intval($this->newsletter); add: /** Rajout pour rendre le pseudo obligatoire */ $fields['pseudo'] = pSQL($this->pseudo); /** FIN Rajout pour rendre le pseudo obligatoire */ Now we display the field in the admin panel (customers profil)open admin/tabs/AdminCustomers.phpfind: '.$this->l('Last visit:').' '.($customerStats['last_visit'] ? Tools::displayDate($customerStats['last_visit'], 1, true) : $this->l('never')).' replace with: '.$this->l('Last visit:').' '.($customerStats['last_visit'] ? Tools::displayDate($customerStats['last_visit'], 1, true) : $this->l('never')).' '.$this->l('Pseudo:').' '.sprintf($customer->pseudo).' and we also add the field in the add/edit part of the customers profil (sorry for the translation, I'm not really sure about the exact name of this part in the english shop)For this, just before: '.$this->l('Birthday:').' '; add: '.$this->l('Pseudo :').' <input type="text" size="50" name="pseudo" value="'.htmlentities($this->getFieldValue($obj, 'pseudo'), ENT_COMPAT, 'UTF-8').'" /> * And finaly, we need to had this filed in the customers profil, because if he want to modify some informations, the field must be fill. (Please note that the customers cannot change this field, but only the administrators in the admin board. If you don't want this, just remove the readonly parameters)open themes/your_thème/identity.tplfind : <input type="checkbox" id="newsletter" name="newsletter" value="1" {if $smarty.post.newsletter == 1} checked="checked"{/if} /> {l s='Sign up for our newsletter'} before add: {l s='Pseudo'} (Non modifiable) <input type="text" name="pseudo" id="pseudo" value="{$smarty.post.pseudo}" readonly/><br /> For any modification, please contact the adminisrtator. And that's all folks I hope it's comprehensible for everybody Link to comment Share on other sites More sharing options...
Fabrice Posted August 4, 2009 Share Posted August 4, 2009 Merci Rickhard ! sympa de partager cela. surtout en ce qui me concerne, vu que je suis (encore) une bille en php etc... Link to comment Share on other sites More sharing options...
syl Posted December 4, 2009 Share Posted December 4, 2009 Excellent très utile, c ce que je cherchais.Pour la version 1.1.5 ....J'ai pas encore testé, vous croyez que pour la version 1.2.5 c'est valable aussi ??l'équipe de développement de prestashop pourait penser à ajouter un module pour l'inscription (avec possibilité d'ajout de caractéristique et adhésion du client à un groupe au choix à l'inscription). (Peut-être ca existe déjà?)encore merci Link to comment Share on other sites More sharing options...
benscasi Posted December 18, 2009 Share Posted December 18, 2009 Bonjour,merci pour ce sujet qui m'a beaucoup aidé. Après avoir ajouter des champs, je souhaiterais pouvoir les visualiser dans l'admin quand la liste des clients est affichée. Je réussis à afficher les champs mais pas les resultats qui ne sont pas en dessous pour reason_social et committee. Je précise que les champs sont bien enregistrer dans la base de donnée.Merci à tous.v1.2.0.5. Link to comment Share on other sites More sharing options...
Leo6969 Posted October 2, 2010 Share Posted October 2, 2010 Bonjour à tous,Le module kiala coute cher je trouve (avis perso)Je pensais à ceci, lors de la finalisation de la commande, lorsque l’on vous demande l’adresse de livraison,n’est il pas possible de proposer à l’acheteur : un lien vers le site kiala et qu’il choisisse le point kiala où il veut etre livré ?Qu’il puisse choisir le transporteur, dans ce cas ce sera “kiala” et qu’il y aie une phrase d’info, disant :“pour une livraison kiala, rendez vous sur ce lien….(le lien kiala) et ajouter une nouvelle adresse de livraison”, (qui sera le point kiala)ou dans le profil du client ou lors de sa première inscription, créer un champ appelé “adresse Kiala” ou renommé le champ adresse (2) par “adresse Kiala) avec une petite phrase infos pour introduire une adresse kiala rendez vous sur le site…..et cette adresse kiala apparaitra sur le bon de commandemerci 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