Jump to content

Override une fonction déjà existante


Recommended Posts

Bonjour,

Je viens de découvrir l'override et j'ai choisi de fonctionner comme cela plutôt que de toucher au cœur de prestashop.
Malheureusement je n'arrive pas à faire fonctionner mon override et je ne comprends pas pourquoi.


L'override en question me sert à rajouter un champ e-mail et mot de passe dans le formulaire d'inscription afin de faire une vérification.
Je souhaite donc modifier les fonctions :

- getFormat() de la class CustomerFormatterCore :
Voilà ce que je compte rajouter

if ($this->ask_for_password) {
        	$format['email2'] = (new FormField())
	            ->setName('email2')
	            ->setType('email')
	            ->setLabel(
	                $this->translator->trans(
	                    'Confirmation e-mail', [], 'Shop.Forms.Labels'
	                )
	            )
	            ->setRequired(true)
	        ;

            $format['password2'] = (new FormField())
                ->setName('password2')
                ->setType('password')
                ->setLabel(
                    $this->translator->trans(
                        'Confirmation mot de passe', [], 'Shop.Forms.Labels'
                    )
                )
                ->setRequired($this->password_is_required)
            ;

  - validate() de la class CustomerFormCore :

Ici, j'ajoute la vérification.

if ($this->passwordRequired) {
            $emailField2 = $this->getField('email2');
            $emailValue2 = $emailField2->getValue();
            $mdpField = $this->getField('password');
            $mdpField2 = $this->getField('password2');
            $mdpValue = $mdpField->getValue();
            $mdpValue2 = $mdpField2->getValue();
            if ($emailValue != $emailValue2) {
                $emailField2->addError($this->translator->trans(
                    'Les adresses mail ne sont pas conforme', array(), 'Shop.Notifications.Error'
                ));
            }

            if ($mdpValue != $mdpValue2) {
                $mdpField2->addError($this->translator->trans(
                    'Les mots de passe ne sont pas conforme', array(), 'Shop.Notifications.Error'
                ));
            }
        }

 

 

Bien sûr, quand je mets ces bouts de codes dans les class au cœur de prestashop, les fonctionnalités fonctionnent.
Du moment où je mets ces ajouts dans des fichiers (Placer dans : \override\classes\form ) quand je vais sur la page de création de compte, j'ai juste une page blanche.

Je tourne en rond sur mes recherches et je ne trouve pas la solution ...
Merci à ceux qui prendrons la peine de lire et de répondre !

Ps : j'ai mis mes fichier override en "pièce jointe."

CustomerForm.php

CustomerFormatter.php

Link to comment
Share on other sites

  • 2 weeks later...

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...