jeanjack2016 Posted April 7, 2016 Share Posted April 7, 2016 Bonjour , J'ai ajouté au fichier customer.php a la ligne 168 ( comme dit sur un autre sujet) :" 'birthday' => array('type' => self::TYPE_DATE, 'validate' => 'isBirthDate', 'required' => true)," Le probleme maintenant c'est que oui la date de naissance est devenue obligatoire mais meme quand j'insere une date de naissance sa me donne l'erreur :" Il y a 1 erreur Anniversaire requis"Quelqu'un pourrais m'aider ? Merci d'avance Link to comment Share on other sites More sharing options...
jeanjack2016 Posted April 7, 2016 Author Share Posted April 7, 2016 Je viens de trouvé quelques chose qui marche : Perso sous prestashop 1.5.4.1 j'ai trouvé une solution qui fonctionne : Dans classes/validate.php, transformer ligne 483 : public static function isBirthDate($date) { if (empty($date) || $date == '0000-00-00') return true;enpublic static function isBirthDate($date) { if (empty($date) || $date == '0000-00-00') return false; ainsi ce champs de vient obligatoire. Reste à ajouter l'astérisque dans authentication.tpl : <p class="select required"><span>{l s='Date of Birth'} <sup>*</sup></span>Voilà. Link to comment Share on other sites More sharing options...
BoutikShop69 Posted April 11, 2016 Share Posted April 11, 2016 (edited) Bonjour, J´ai trouvé une solution encore plus simple, fonctionne sur un prestashop en 1.6.0.9 Aller dans le fichier authentification.tpl dans le répertoire du thème. Puis compléter ces lignes : <label>{l s='Date of Birth'} En ajoutant juste à côté de : </label> <sup>*</sup></label> Cela fait apparaître l´astérisque "Obligatoire" sans modifier le code dans le core. Cordialement. Rectification : Il faut également modifier dans identity. tpl à partir de la ligne 87 comme ceci : <div class="required form-group"> <label for="dateofbirth" class="required"> {l s='Date of Birth'} Edited April 21, 2016 by shooping (see edit history) 1 Link to comment Share on other sites More sharing options...
DavidCKW Posted June 28, 2019 Share Posted June 28, 2019 Pour faire les choses proprement, il ne faut pas aller modifier les fichiers du core comme indiqué pour presta 1.5, car sinon dès que presta change de version, la modif est perdue. Pour prestashop 1.6, il faut aller voir dans le dossier override/classes -------------------------------------------- Si Validate.php existe déjà, alors à l'intérieur du code class Validate extends ValidateCore { } Rajouter le code : public static function isBirthDate($date) { if (empty($date) || $date == '0000-00-00') { return false; } if (preg_match('/^([0-9]{4})-((?:0?[1-9])|(?:1[0-2]))-((?:0?[1-9])|(?:[1-2][0-9])|(?:3[01]))([0-9]{2}:[0-9]{2}:[0-9]{2})?$/', $date, $birth_date)) { if ($birth_date[1] > date('Y') && $birth_date[2] > date('m') && $birth_date[3] > date('d') || $birth_date[1] == date('Y') && $birth_date[2] == date('m') && $birth_date[3] > date('d') || $birth_date[1] == date('Y') && $birth_date[2] > date('m')) { return false; } return true; } return false; } ------------------------------------------ Si Validate.php n'existe pas, alors le créer et mettre à l'intérieur le code suivant : <?php class Validate extends ValidateCore { public static function isBirthDate($date) { if (empty($date) || $date == '0000-00-00') { return false; } if (preg_match('/^([0-9]{4})-((?:0?[1-9])|(?:1[0-2]))-((?:0?[1-9])|(?:[1-2][0-9])|(?:3[01]))([0-9]{2}:[0-9]{2}:[0-9]{2})?$/', $date, $birth_date)) { if ($birth_date[1] > date('Y') && $birth_date[2] > date('m') && $birth_date[3] > date('d') || $birth_date[1] == date('Y') && $birth_date[2] == date('m') && $birth_date[3] > date('d') || $birth_date[1] == date('Y') && $birth_date[2] > date('m')) { return false; } return true; } return false; } } Ensuite, allez dans le dossier cache et supprimez le fichier class_index.php pour vider le cache et que la modification soit prise en compte. Après ça, prestashop bloquera si la date est vide. Ensuite pour rajouter l'astérisque (c'est juste visuel mais ça n'a pas de fonction bloquante), rajoutez <sup>*</sup> à côté de {l s='Date of Birth'} dans le fichier themes/MONTHEME/authentication.tpl 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