Jump to content

Recommended Posts

Bonjour,

 

J'aimerais ajouter des champs "simples" dans le formulaire d'inscription mais je n'ai aucune idée de comment faire. Les champs sont relatifs à l'adresse, par ex maison ou appartement, ascenseur oui ou non, ...

 

Egalement, est-il possible de rendre obligatoire la date de naissance lors de l'inscription ?

 

Merci d'avance

 

F

Share this post


Link to post
Share on other sites

Tu peux puiser de l'inspiration dans ce post:

http://www.prestashop.com/forums/topic/26530-tutorial-ajouter-un-champ-tva-intracommunautaire-obligatoire/

 

edit: Attention cependant, le post date un peu, certains fichiers ont bougé (mais le principe y est)

 

Par ailleurs, pour éviter de toucher au core de prestashop, tu peux utiliser un thème personnalisé dans lequel tu modifierai les templates address / addresses / authentication

Ajouter des champs implique les créer en base, et éventuellement overrider l'objectmodel associé.

 

Voici aussi un copier/coller d'un aide-mémoire perso, à transposer à ton usage. Par ailleurs, attention

si c'est ton premier override à effacer le fichier : cache/class_index.php à chaque ajout ou suppression d'une classe override.

 

 

Le but de ce document est de décrire comment ajouter un champ client dans prestashop.

En l'occurence, il s'agira du numéro de TVA, qui sera demandé à la création du compte client.

 

En fait, il existe un tuto, mais qui me semble incomplet:

http://blog.ikonenn.com/2012/08/07/prestashop-1-5-methode-doverride-exemple-ajout-dun-champ/

 

plutôt reagarder ça:

http://www.zaibatsu.fr/articles/modifier-un-modele-sur-prestashop-1-5

 

L'ajout du champ nécessite:

Côté bdd:

-Altération de la table customer (ou création d'une autre table ayant pour clé primaire id_customer).

ALTER TABLE `prestashopdev`.`ps_customer` ADD COLUMN `no_tva` VARCHAR(15) NULL AFTER `date_upd` ;
 

Côté modèle:

-override de la classe Customer

-ou peut être dans le cas de la table supplémentaire, créer le modèle qui va avec. (non retenu)

 

Côté vue:

-ou utilisation d'un display hook pour ajouter des champs après le formulaire d'origine? (non retenu)

-ou personnalisation du thème, modification des templates des formulaires d'édition des clients, en l'occurence:

 

Côté contrôleur:

-override du contrôleur AuthController? Hé non, pas besoin.

 

process de création client en front office:

authentication.tpl

->SubmitCreate permet l'accès à la page de création de compte

->SubmitLogin permet de se logger

->SubmitGuestAccount (ne m'intéresse pas, guest désactivé)

->SubmitAccount pour créer le compte.

 

En pratique:

-Modification de authentication.tpl . Rien de bien original. On s'inspire du reste du template original.

 

-Override de Customer, pour étendre la définition des champs:

 

<?php

/*Customer class override for eurocelp module

* -ajout d'un champ no_tva

* */

 

Customer::$definition['fields']['no_tva'] = array ('type' => ObjectModel::TYPE_STRING, 'validate' => 'isString');

 

class Customer extends CustomerCore

{

public $no_tva;

}//end Customer class

Edited by spacm (see edit history)

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More