Jump to content
Alex--77

[PS 1.6] Changer le nom de l'erreur dans la création de compte

Recommended Posts

Bonjour,

 

J'ai ajouté une case à cocher dans le formulaire de création de compte.
En fait c'est une boutique qui vend de l'alcool et du coup obligation d'une checkbox "Je certifie avoir plus de 18 ans" pour créer un compte (et donc acheter).

 

J'ai donc fait un override de Customer.php dans /override/class :

class Customer extends CustomerCore
{
    public $majeur;

     /**
     * @see ObjectModel::$definition
     */
    public static $definition = array(
        'table' => 'customer',
        'primary' => 'id_customer',
        'fields' => array(
            'secure_key' =>                array('type' => self::TYPE_STRING, 'validate' => 'isMd5', 'copy_post' => false),
            'lastname' =>                    array('type' => self::TYPE_STRING, 'validate' => 'isName', 'required' => true, 'size' => 32),
            'firstname' =>                    array('type' => self::TYPE_STRING, 'validate' => 'isName', 'required' => true, 'size' => 32),
            'email' =>                        array('type' => self::TYPE_STRING, 'validate' => 'isEmail', 'required' => true, 'size' => 128),
            'passwd' =>                    array('type' => self::TYPE_STRING, 'validate' => 'isPasswd', 'required' => true, 'size' => 32),
            'last_passwd_gen' =>            array('type' => self::TYPE_STRING, 'copy_post' => false),
            'id_gender' =>                    array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId'),
            'birthday' =>                    array('type' => self::TYPE_DATE, 'validate' => 'isBirthDate'),
            'newsletter' =>                array('type' => self::TYPE_BOOL, 'validate' => 'isBool'),
            'newsletter_date_add' =>        array('type' => self::TYPE_DATE,'copy_post' => false),
            'ip_registration_newsletter' =>    array('type' => self::TYPE_STRING, 'copy_post' => false),
            'optin' =>                        array('type' => self::TYPE_BOOL, 'validate' => 'isBool'),
            'majeur' =>                        array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'required' => true), //mon champs obligatoire
            'website' =>                    array('type' => self::TYPE_STRING, 'validate' => 'isUrl'),
            'company' =>                    array('type' => self::TYPE_STRING, 'validate' => 'isGenericName'),
            'siret' =>                        array('type' => self::TYPE_STRING, 'validate' => 'isSiret'),
            'ape' =>                        array('type' => self::TYPE_STRING, 'validate' => 'isApe'),
            'outstanding_allow_amount' =>    array('type' => self::TYPE_FLOAT, 'validate' => 'isFloat', 'copy_post' => false),
            'show_public_prices' =>            array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'copy_post' => false),
            'id_risk' =>                    array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt', 'copy_post' => false),
            'max_payment_days' =>            array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt', 'copy_post' => false),
            'active' =>                    array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'copy_post' => false),
            'deleted' =>                    array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'copy_post' => false),
            'note' =>                        array('type' => self::TYPE_HTML, 'validate' => 'isCleanHtml', 'size' => 65000, 'copy_post' => false),
            'is_guest' =>                    array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'copy_post' => false),
            'id_shop' =>                    array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'copy_post' => false),
            'id_shop_group' =>                array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'copy_post' => false),
            'id_default_group' =>            array('type' => self::TYPE_INT, 'copy_post' => false),
            'id_lang' =>                    array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'copy_post' => false),
            'date_add' =>                    array('type' => self::TYPE_DATE, 'validate' => 'isDate', 'copy_post' => false),
            'date_upd' =>                    array('type' => self::TYPE_DATE, 'validate' => 'isDate', 'copy_post' => false),
        ),
    );
}

Ensuite j'ajoute la checkbox dans le form du tpl (/themes/mon_theme/authentification.tpl) :

<div class="checkbox form-group full-width txt-left required">
	<input class="float-left is_required validate form-control" type="checkbox" name="majeur" id="majeur" value="1" /><span class="checkbox float-left"></span>
	<label class="float-left checkbox-label" for="majeur">{l s='Je certifie avoir plus de 18 ans'}<sup>*</sup></label>
</div>

J'ai également ajouté dans la BDD, dans la table ps_customer, un champ majeur. J'ai plus ou moins recopier les moins config que pour les optins.

 

Tout fonctionne, si la case n'est pas cochée, l'inscription ne se fait pas et vise versa.
 

Par contre, quand on ne coche pas cette case il y a une message d'erreur de Prestashop "Il y a une erreur, majeur requis".

 

Je souhaite remplacer "majeur" par "majorité", je ne voies pas ou faire cette modifications ?

 

J'ai essayé de changer le name et l'id dans le html mais ça ne marche pas. 

Share this post


Link to post
Share on other sites

Merci pour ton retour.

 

Je n'ai rien fait côté controller, tu fais allusion au controller AuthController.php ?

Share this post


Link to post
Share on other sites
Je n'ai rien fait côté controller, tu fais allusion au controller AuthController.php ?

 

Oui, comment tu recupères le input "majeur" si tu ne fais rien dans le controller ?

 

Peut tu donner le code html de ton form qu'on regarde ca ?

 

cdt

Edited by Alexandre Carette (see edit history)

Share this post


Link to post
Share on other sites

Voici le html du form :
 

<form action="http://my-shop.net/connexion" method="post" id="account-creation_form" class="std box authentication-form ">

	<h3 class="full-width txt-left txt-uppercase century-bold txt-uppercase txt-pink">Vos informations personnelles</h3>
	<hr class="background-pink">
					
	<div class="two-cols float-left">
		<div class="form-group full-width txt-left">
			<label class="float-left">Titre</label>
			<ul class="no-style txt-right gender">
				<li class="float-left">
					<input name="id_gender" id="id_gender1" value="1" checked="checked" class="float-left" type="radio"><span class="radio float-left"></span>
					<label for="id_gender1" class="top float-left radio-label">M</label>
				</li>
				<li class="float-left">
					<input name="id_gender" id="id_gender2" value="2" class="float-left" type="radio"><span class="radio float-left"></span>
					<label for="id_gender2" class="top float-left radio-label">Mme</label>
					</li>
			</ul>
		</div>
		<div class="required form-group full-width txt-left form-error">
			<input onkeyup="$('#firstname').val(this.value);" class="is_required validate form-control" data-validate="isName" id="customer_firstname" name="customer_firstname" value="" placeholder="Prénom *" type="text">
		</div>
		<div class="required form-group full-width txt-left">
			<input onkeyup="$('#lastname').val(this.value);" class="is_required validate form-control" data-validate="isName" id="customer_lastname" name="customer_lastname" value="" placeholder="Nom *" type="text">
		</div>
		<div class="required form-group full-width txt-left form-ok">
			<input class="is_required validate form-control" data-validate="isEmail" id="email" name="email" value="test@mail.fr" placehilder="E-mail *" type="email">
		</div>
		<div class="required password form-group full-width txt-left">
			<input class="is_required validate form-control" data-validate="isPasswd" name="passwd" id="passwd" placeholder="Mot de passe *" type="password">
			<span class="form_info">(5 caractères min.)</span>
		</div>
		<div class="form-group full-width txt-left">
			<label class="float-left">Date de naissance</label>
			<div class="float-left select-wrap">
				<select id="days" name="days" class="form-control">
					<option value="">-</option>
					<option value="1">1  </option>
				</select>
				<i class="fa fa-chevron-down txt-dark-grey txt-hover-white background-hover-pink"></i>
			</div>
			<div class="float-left select-wrap">
				<select id="months" name="months" class="form-control">
					<option value="">-</option>
					<option value="1">Janvier </option>
				</select>
				<i class="fa fa-chevron-down txt-dark-grey txt-hover-white background-hover-pink"></i>
			</div>
			<div class="float-left select-wrap">
				<select id="years" name="years" class="form-control">
					<option value="">-</option>
					<option value="2017">2017  </option>

				</select>
				<i class="fa fa-chevron-down txt-dark-grey txt-hover-white background-hover-pink"></i>
			</div>
		</div>
		<div class="checkbox form-group full-width txt-left">
			<input class="float-left" name="newsletter" id="newsletter" value="1" type="checkbox"><span class="checkbox float-left"></span>
			<label class="float-left checkbox-label" for="newsletter">S'inscrire à la newsletter</label>
		</div>
		<div class="checkbox form-group full-width txt-left">
				<input class="float-left" name="optin" id="optin" value="1" type="checkbox"><span class="checkbox float-left"></span>
				<label class="float-left checkbox-label" for="optin">Recevez les offres spéciales de nos partenaires</label>
		</div>
	</div>
	<!-- ajout de la checkbox "Majorité" -->
	<div class="checkbox form-group full-width txt-left required form-error">
		<input class="float-left is_required validate form-control" name="majeur" id="majeur" value="1" type="checkbox"><span class="checkbox float-left"></span>
		<label class="float-left checkbox-label" for="majeur">Je certifie avoir plus de 18 ans<sup>*</sup></label>
	</div>
	<!-- END : ajout de la checkbox "Majorité" -->
						
						
	<div class="submit full-width txt-right">
		<input name="email_create" value="1" type="hidden">
		<input name="is_new_customer" value="1" type="hidden">
		<input class="hidden" name="back" value="my-account" type="hidden">
		<button type="submit" name="submitAccount" id="submitAccount" class="button background-dark-grey txt-white txt-uppercase txt-light-grey background-hover-pink float-right">
			S'inscrire
		</button>
		<span class="form_info float-left txt-left">*Champ requis</span>
	</div>
</form>

Tout ce que j'ai fait est dans mon 1er post, j'ai ensuite testé mon formulaire et ça a marché.
Je penses qu'il doit avoir un controller ou un EventListener qui surveille les champs requis de la class Customer.php.

Share this post


Link to post
Share on other sites

ok donc on est sur le submitAccount avec:         

<button type="submit" name="submitAccount" id="submitAccount" class="button background-dark-grey txt-white txt-uppercase txt-light-grey background-hover-pink float-right">

dans le AuthController.php on a

/**
     * Start forms process
     * @see FrontController::postProcess()
     */
    public function postProcess()
    {
        if (Tools::isSubmit('SubmitCreate')) {
            $this->processSubmitCreate();
        }

        if (Tools::isSubmit('submitAccount') || Tools::isSubmit('submitGuestAccount')) {
            $this->processSubmitAccount();
        }

        if (Tools::isSubmit('SubmitLogin')) {
            $this->processSubmitLogin();
        }
    }

donc on va aller regarder dans processSubmitAccount()...

/**
     * Process submit on an account
     */
    protected function processSubmitAccount()
    {
        Hook::exec('actionBeforeSubmitAccount');
        $this->create_account = true;
        if (Tools::isSubmit('submitAccount')) {
            $this->context->smarty->assign('email_create', 1);
        }
        // New Guest customer
        if (!Tools::getValue('is_new_customer', 1) && !Configuration::get('PS_GUEST_CHECKOUT_ENABLED')) {
            $this->errors[] = Tools::displayError('You cannot create a guest account.');
        }
        if (!Tools::getValue('is_new_customer', 1)) {
            $_POST['passwd'] = md5(time()._COOKIE_KEY_);
        }
        if ($guest_email = Tools::getValue('guest_email')) {
            $_POST['email'] = $guest_email;
        }
        // Checked the user address in case he changed his email address
        if (Validate::isEmail($email = Tools::getValue('email')) && !empty($email)) {
            if (Customer::customerExists($email)) {
                $this->errors[] = Tools::displayError('An account using this email address has already been registered.', false);
            }
        }
        // Preparing customer
        $customer = new Customer();
        $lastnameAddress = Tools::getValue('lastname');
        $firstnameAddress = Tools::getValue('firstname');
        $_POST['lastname'] = Tools::getValue('customer_lastname', $lastnameAddress);
        $_POST['firstname'] = Tools::getValue('customer_firstname', $firstnameAddress);
        $addresses_types = array('address');
        if (!Configuration::get('PS_ORDER_PROCESS_TYPE') && Configuration::get('PS_GUEST_CHECKOUT_ENABLED') && Tools::getValue('invoice_address')) {
            $addresses_types[] = 'address_invoice';
        }

        $error_phone = false;
        if (Configuration::get('PS_ONE_PHONE_AT_LEAST')) {
            if (Tools::isSubmit('submitGuestAccount') || !Tools::getValue('is_new_customer')) {
                if (!Tools::getValue('phone') && !Tools::getValue('phone_mobile')) {
                    $error_phone = true;
                }
            } elseif (((Configuration::get('PS_REGISTRATION_PROCESS_TYPE') && Configuration::get('PS_ORDER_PROCESS_TYPE'))
                    || (Configuration::get('PS_ORDER_PROCESS_TYPE') && !Tools::getValue('email_create'))
                    || (Configuration::get('PS_REGISTRATION_PROCESS_TYPE') && Tools::getValue('email_create')))
                    && (!Tools::getValue('phone') && !Tools::getValue('phone_mobile'))) {
                $error_phone = true;
            }
        }

        if ($error_phone) {
            $this->errors[] = Tools::displayError('You must register at least one phone number.');
        }

        $this->errors = array_unique(array_merge($this->errors, $customer->validateController()));

        // Check the requires fields which are settings in the BO
        $this->errors = $this->errors + $customer->validateFieldsRequiredDatabase();

        if (!Configuration::get('PS_REGISTRATION_PROCESS_TYPE') && !$this->ajax && !Tools::isSubmit('submitGuestAccount')) {
            if (!count($this->errors)) {

                $this->processCustomerNewsletter($customer);

                $customer->firstname = Tools::ucwords($customer->firstname);
                $customer->birthday = (empty($_POST['years']) ? '' : (int)Tools::getValue('years').'-'.(int)Tools::getValue('months').'-'.(int)Tools::getValue('days'));
                if (!Validate::isBirthDate($customer->birthday)) {
                    $this->errors[] = Tools::displayError('Invalid date of birth.');
                }

                // New Guest customer
                $customer->is_guest = (Tools::isSubmit('is_new_customer') ? !Tools::getValue('is_new_customer', 1) : 0);
                $customer->active = 1;

                if (!count($this->errors)) {
                    if ($customer->add()) {
                        if (!$customer->is_guest) {
                            if (!$this->sendConfirmationMail($customer)) {
                                $this->errors[] = Tools::displayError('The email cannot be sent.');
                            }
                        }

                        $this->updateContext($customer);

                        $this->context->cart->update();
                        Hook::exec('actionCustomerAccountAdd', array(
                                '_POST' => $_POST,
                                'newCustomer' => $customer
                            ));
                        if ($this->ajax) {
                            $return = array(
                                'hasError' => !empty($this->errors),
                                'errors' => $this->errors,
                                'isSaved' => true,
                                'id_customer' => (int)$this->context->cookie->id_customer,
                                'id_address_delivery' => $this->context->cart->id_address_delivery,
                                'id_address_invoice' => $this->context->cart->id_address_invoice,
                                'token' => Tools::getToken(false)
                            );
                            $this->ajaxDie(Tools::jsonEncode($return));
                        }

                        if (($back = Tools::getValue('back')) && $back == Tools::secureReferrer($back)) {
                            Tools::redirect(html_entity_decode($back));
                        }

                        // redirection: if cart is not empty : redirection to the cart
                        if (count($this->context->cart->getProducts(true)) > 0) {
                            $multi = (int)Tools::getValue('multi-shipping');
                            Tools::redirect('index.php?controller=order'.($multi ? '&multi-shipping='.$multi : ''));
                        }
                        // else : redirection to the account
                        else {
                            Tools::redirect('index.php?controller='.(($this->authRedirection !== false) ? urlencode($this->authRedirection) : 'my-account'));
                        }
                    } else {
                        $this->errors[] = Tools::displayError('An error occurred while creating your account.');
                    }
                }
            }
        } else {
            // if registration type is in one step, we save the address

            $_POST['lastname'] = $lastnameAddress;
            $_POST['firstname'] = $firstnameAddress;
            $post_back = $_POST;
            // Preparing addresses
            foreach ($addresses_types as $addresses_type) {
                $$addresses_type = new Address();
                $$addresses_type->id_customer = 1;

                if ($addresses_type == 'address_invoice') {
                    foreach ($_POST as $key => &$post) {
                        if ($tmp = Tools::getValue($key.'_invoice')) {
                            $post = $tmp;
                        }
                    }
                }

                $this->errors = array_unique(array_merge($this->errors, $$addresses_type->validateController()));
                if ($addresses_type == 'address_invoice') {
                    $_POST = $post_back;
                }

                if (!($country = new Country($$addresses_type->id_country)) || !Validate::isLoadedObject($country)) {
                    $this->errors[] = Tools::displayError('Country cannot be loaded with address->id_country');
                }

                if (!$country->active) {
                    $this->errors[] = Tools::displayError('This country is not active.');
                }

                $postcode = $$addresses_type->postcode;
                /* Check zip code format */
                if ($country->zip_code_format && !$country->checkZipCode($postcode)) {
                    $this->errors[] = sprintf(Tools::displayError('The Zip/Postal code you\'ve entered is invalid. It must follow this format: %s'), str_replace('C', $country->iso_code, str_replace('N', '0', str_replace('L', 'A', $country->zip_code_format))));
                } elseif (empty($postcode) && $country->need_zip_code) {
                    $this->errors[] = Tools::displayError('A Zip / Postal code is required.');
                } elseif ($postcode && !Validate::isPostCode($postcode)) {
                    $this->errors[] = Tools::displayError('The Zip / Postal code is invalid.');
                }

                if ($country->need_identification_number && (!Tools::getValue('dni') || !Validate::isDniLite(Tools::getValue('dni')))) {
                    $this->errors[] = Tools::displayError('The identification number is incorrect or has already been used.');
                } elseif (!$country->need_identification_number) {
                    $$addresses_type->dni = null;
                }

                if (Tools::isSubmit('submitAccount') || Tools::isSubmit('submitGuestAccount')) {
                    if (!($country = new Country($$addresses_type->id_country, Configuration::get('PS_LANG_DEFAULT'))) || !Validate::isLoadedObject($country)) {
                        $this->errors[] = Tools::displayError('Country is invalid');
                    }
                }
                $contains_state = isset($country) && is_object($country) ? (int)$country->contains_states: 0;
                $id_state = isset($$addresses_type) && is_object($$addresses_type) ? (int)$$addresses_type->id_state: 0;
                if ((Tools::isSubmit('submitAccount') || Tools::isSubmit('submitGuestAccount')) && $contains_state && !$id_state) {
                    $this->errors[] = Tools::displayError('This country requires you to choose a State.');
                }
            }
        }

        if (!@checkdate(Tools::getValue('months'), Tools::getValue('days'), Tools::getValue('years')) && !(Tools::getValue('months') == '' && Tools::getValue('days') == '' && Tools::getValue('years') == '')) {
            $this->errors[] = Tools::displayError('Invalid date of birth');
        }

        if (!count($this->errors)) {
            if (Customer::customerExists(Tools::getValue('email'))) {
                $this->errors[] = Tools::displayError('An account using this email address has already been registered. Please enter a valid password or request a new one. ', false);
            }

            $this->processCustomerNewsletter($customer);

            $customer->birthday = (empty($_POST['years']) ? '' : (int)Tools::getValue('years').'-'.(int)Tools::getValue('months').'-'.(int)Tools::getValue('days'));
            if (!Validate::isBirthDate($customer->birthday)) {
                $this->errors[] = Tools::displayError('Invalid date of birth');
            }

            if (!count($this->errors)) {
                $customer->active = 1;
                // New Guest customer
                if (Tools::isSubmit('is_new_customer')) {
                    $customer->is_guest = !Tools::getValue('is_new_customer', 1);
                } else {
                    $customer->is_guest = 0;
                }
                if (!$customer->add()) {
                    $this->errors[] = Tools::displayError('An error occurred while creating your account.');
                } else {
                    foreach ($addresses_types as $addresses_type) {
                        $$addresses_type->id_customer = (int)$customer->id;
                        if ($addresses_type == 'address_invoice') {
                            foreach ($_POST as $key => &$post) {
                                if ($tmp = Tools::getValue($key.'_invoice')) {
                                    $post = $tmp;
                                }
                            }
                        }

                        $this->errors = array_unique(array_merge($this->errors, $$addresses_type->validateController()));
                        if ($addresses_type == 'address_invoice') {
                            $_POST = $post_back;
                        }
                        if (!count($this->errors) && (Configuration::get('PS_REGISTRATION_PROCESS_TYPE') || $this->ajax || Tools::isSubmit('submitGuestAccount')) && !$$addresses_type->add()) {
                            $this->errors[] = Tools::displayError('An error occurred while creating your address.');
                        }
                    }
                    if (!count($this->errors)) {
                        if (!$customer->is_guest) {
                            $this->context->customer = $customer;
                            $customer->cleanGroups();
                            // we add the guest customer in the default customer group
                            $customer->addGroups(array((int)Configuration::get('PS_CUSTOMER_GROUP')));
                            if (!$this->sendConfirmationMail($customer)) {
                                $this->errors[] = Tools::displayError('The email cannot be sent.');
                            }
                        } else {
                            $customer->cleanGroups();
                            // we add the guest customer in the guest customer group
                            $customer->addGroups(array((int)Configuration::get('PS_GUEST_GROUP')));
                        }
                        $this->updateContext($customer);
                        $this->context->cart->id_address_delivery = (int)Address::getFirstCustomerAddressId((int)$customer->id);
                        $this->context->cart->id_address_invoice = (int)Address::getFirstCustomerAddressId((int)$customer->id);
                        if (isset($address_invoice) && Validate::isLoadedObject($address_invoice)) {
                            $this->context->cart->id_address_invoice = (int)$address_invoice->id;
                        }

                        if ($this->ajax && Configuration::get('PS_ORDER_PROCESS_TYPE')) {
                            $delivery_option = array((int)$this->context->cart->id_address_delivery => (int)$this->context->cart->id_carrier.',');
                            $this->context->cart->setDeliveryOption($delivery_option);
                        }

                        // If a logged guest logs in as a customer, the cart secure key was already set and needs to be updated
                        $this->context->cart->update();

                        // Avoid articles without delivery address on the cart
                        $this->context->cart->autosetProductAddress();

                        Hook::exec('actionCustomerAccountAdd', array(
                                '_POST' => $_POST,
                                'newCustomer' => $customer
                            ));
                        if ($this->ajax) {
                            $return = array(
                                'hasError' => !empty($this->errors),
                                'errors' => $this->errors,
                                'isSaved' => true,
                                'id_customer' => (int)$this->context->cookie->id_customer,
                                'id_address_delivery' => $this->context->cart->id_address_delivery,
                                'id_address_invoice' => $this->context->cart->id_address_invoice,
                                'token' => Tools::getToken(false)
                            );
                            $this->ajaxDie(Tools::jsonEncode($return));
                        }
                        // if registration type is in two steps, we redirect to register address
                        if (!Configuration::get('PS_REGISTRATION_PROCESS_TYPE') && !$this->ajax && !Tools::isSubmit('submitGuestAccount')) {
                            Tools::redirect('index.php?controller=address');
                        }

                        if (($back = Tools::getValue('back')) && $back == Tools::secureReferrer($back)) {
                            Tools::redirect(html_entity_decode($back));
                        }

                        // redirection: if cart is not empty : redirection to the cart
                        if (count($this->context->cart->getProducts(true)) > 0) {
                            Tools::redirect('index.php?controller=order'.($multi = (int)Tools::getValue('multi-shipping') ? '&multi-shipping='.$multi : ''));
                        }
                        // else : redirection to the account
                        else {
                            Tools::redirect('index.php?controller='.(($this->authRedirection !== false) ? urlencode($this->authRedirection) : 'my-account'));
                        }
                    }
                }
            }
        }

        if (count($this->errors)) {
            //for retro compatibility to display guest account creation form on authentication page
            if (Tools::getValue('submitGuestAccount')) {
                $_GET['display_guest_checkout'] = 1;
            }

            if (!Tools::getValue('is_new_customer')) {
                unset($_POST['passwd']);
            }
            if ($this->ajax) {
                $return = array(
                    'hasError' => !empty($this->errors),
                    'errors' => $this->errors,
                    'isSaved' => false,
                    'id_customer' => 0
                );
                $this->ajaxDie(Tools::jsonEncode($return));
            }
            $this->context->smarty->assign('account_error', $this->errors);
        }
    }
Edited by Alexandre Carette (see edit history)

Share this post


Link to post
Share on other sites

ici il crée l'objet Customer vers la ligne 409

// Preparing customer
        $customer = new Customer();
// on recupere notre input
$majeur = Tools::getValue('majeur');
// on assigne la variable a l'objet
$customer->majeur = $majeur;
// suite du code

        $lastnameAddress = Tools::getValue('lastname'); 

// reste du code...

normalement ca devrait être bon, bien sur il faut créer un override de AuthController.php

Edited by Alexandre Carette (see edit history)

Share this post


Link to post
Share on other sites

Ah je n'avais pas vue ton dernier post.

 

Entre temps j'ai remarqué que vers la ligne 440 dans AuthController.php, génère le message d'erreur :

$this->errors = array_unique(array_merge($this->errors, $customer->validateController()));

Ensuite je détecte si l'erreur existe, si oui je réécris le message :
 

$this->errors = array_unique(array_merge($this->errors, $customer->validateController()));

if($this->errors['majeur'] )
{
   $this->errors['majeur'] = Tools::displayError('La majorité est requise.');
}

C'est correct ? En tout cas ça fonctionne.

 

Je vais regarder de plus près le code de ton dernier post.

Edited by Alex--77 (see edit history)

Share this post


Link to post
Share on other sites

oui ce que tu as fais est bon pour le message d'erreur, ce que je ne comprend pas a moins d'avoir une variable par défaut c'est comment tu peux avoir des entrées en base de donnée pour la colonne "majeur" sans le $customer->majeur = $majeur;

Edited by Alexandre Carette (see edit history)

Share this post


Link to post
Share on other sites

Merci de ton aide, je n'aurais peut-être pas trouvé sans ton aide (ou du moins pas aussi vite).

 

ce que je ne comprend pas a moins d'avoir une variable par défaut c'est comment tu peux avoir des entrées en base de donnée pour la colonne "majeur" sans le $customer->majeur = $majeur;

 

Je ne sais pas trop mais en tout cas ça fonctionne, je me pencherais dessus plus tard.

Edited by Alex--77 (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