Dans Thelia 2, la notion "d'override" n'existe pas. On enrichit une fonctionnalité de base en écrivant un module qui va intercepter les évènements (cf. http://doc.thelia.net/en/documentation/ … index.html - liste pas forcément à jour) qui circulent dans le core.
Par exemple, pour ajouter un champ à la forme d'inscription, tu pourrais créer un module qui déclare une forme qui étends la classe CustomerCreateForm, en y ajoutant les champs nécessaire.
Dans le fichier config.xml de ton module, tu déclares cette form comme étant la form à utiliser pour créer un client :
<forms>
<form name="thelia.front.customer.create" class="<nom complet de ta classe form>"/>
</forms>
Enfin, pour traiter les champs supplémentaires, tu va créer une action (cf. http://doc.thelia.net/en/documentation/ … ions.html), qui interceptera l'event CUSTOMER_CREATEACCOUNT, en se plaçant après le code de Thelia :
public static function getSubscribedEvents()
{
return array(
TheliaEvents::CUSTOMER_CREATEACCOUNT => array('nom_de_ta_methode', 150),
);
}
Pour stocker les infos supplémentaires en base de données, tu devra sans doute créer une table spécifique, qui utilisera un foreign key vers la table customer.
Tu peux t'inspirer d'un des modules existants : https://github.com/thelia-modules