Jump to content

Rendre le champ " N° de Tel " obligatoire


Recommended Posts

Ah mais pourtant jeckyl avait mis un lien amenant vers la solution, qui plus est sera beaucoup plus facile pour toi puisque le champs numéro de tel existe déjà.

Je te refais le début alors pour un numéro fixe.

Dans thème/tontheme dans le fichier authentification.tpl à la ligne 198

Remplace :


{l s='Home phone'}
           <input type="text" class="text" name="phone" id="phone" value="{if isset($smarty.post.phone)}{$smarty.post.phone}{/if}" />



Par :


{l s='Home phone'}
           <input type="text" class="text" name="phone" id="phone" value="{if isset($smarty.post.phone)}{$smarty.post.phone}{/if}" />
*



Petite explication le * va rajouter l'étoile à coté de ton champs numéro de tel.

Ensuite va dans ton dossier Classes et ouvre le fichier Customer.php

Rajoute :

public         $phone; 



Puis remplacer :

protected     $fieldsRequired = array('lastname', 'passwd', 'firstname', 'email');



Par :

protected     $fieldsRequired = array('lastname', 'passwd', 'firstname', 'email', 'phone');



puis faut définir les paramètres de taille et de type :

Remplacer :

protected     $fieldsSize = array('lastname' => 32, 'passwd' => 32, 'firstname' => 32, 'email' => 128;
protected     $fieldsValidate = array('secure_key' => 'isMd5', 'lastname' => 'isName', 'firstname' => 'isName', 'email' => 'isEmail', 'passwd' => 'isPasswd',
        'id_gender' => 'isUnsignedId', 'birthday' => 'isBirthDate', 'newsletter' => 'isBool', 'optin' => 'isBool', 'active' => 'isBool'); 



Par :

protected     $fieldsSize = array('lastname' => 32, 'passwd' => 32, 'firstname' => 32, 'email' => 128, 'phone' => 128);
protected     $fieldsValidate = array('secure_key' => 'isMd5', 'lastname' => 'isName', 'firstname' => 'isName', 'email' => 'isEmail', 'passwd' => 'isPasswd',
        'id_gender' => 'isUnsignedId', 'birthday' => 'isBirthDate', 'newsletter' => 'isBool', 'optin' => 'isBool', 'active' => 'isBool', 'phone' => 'isGenericName'); 



Là tu viens de rendre le champs obligatoire. Par contre la variable phone n'est pas enregistré dans ta base de donnée si tu veux le faire va falloir la créer. Voilà j'espère t'avoir mis sur la route, je n'ai fait que reprendre et adapté le code posté par BVince dans le lien donnée par jeckyl...

Link to comment
Share on other sites

Moi aussi je chercher à rendre le champ téléphone obligatoire.
Par contre je comprends pas cette phrase:
"Par contre la variable phone n’est pas enregistré dans ta base de donnée si tu veux le faire va falloir la créer. "
La variable n'existe carrément pas dans la base ???
Pourtant il y a bien un champ qui demande le téléphone, même s'il n'est pas obligatoire ?
Bon j'avoue je suis pas au top pour ce qui est de la base de données sous Presta shop...
En tout cas merci !

Pat.

Link to comment
Share on other sites

  • 2 months later...

Bonjour, il faut modifier la classe Address.php et non Custumer.php

protected    $fieldsRequired = array('id_country', 'alias', 'lastname', 'firstname', 'address1', 'postcode', 'city');



en


protected $fieldsRequired = array('id_country', 'alias', 'lastname', 'firstname', 'address1', 'postcode', 'city', 'phone');

Les autres modifications ne sont pas à faire elles y sont déjà.

Link to comment
Share on other sites

  • 3 weeks later...
  • 4 weeks later...

Pour être tout à fait exacte il faut aussi remplacer dans authentification.tpl



par




là ou l'on rajoute

*

pour avoir l'étoile de la bonne couleur.



Il faut également modifier address.tpl :
remplacer


{l s='Home phone'}
   <input type="text" class="text" name="phone" id="phone" value="{if isset($smarty.post.phone)}{$smarty.post.phone}{/if}" />



par :



{l s='Home phone'}
   <input type="text" class="text" name="phone" id="phone" value="{if isset($smarty.post.phone)}{$smarty.post.phone}{/if}" />
*

Link to comment
Share on other sites

  • 1 month later...

Bonjour à tous,
Moi aussi j'ai besoin d'ajouter la même fonctionalité pour les mêmes raisons.
Désolé mais je n'arrive pas à savoir au final: faut t il ajouter ou non l'entrée dans la base de données précédemment évoqué ? Si oui comment, car moi non plus je ne sais pas faire, et je n'ose pas toucher à phpmyadmin pour ne pas faire de grosses bétises !
J'ai la version 1.2.5 cela est possible aussi ?
Merci d'éclairer ma lanterne si vous pouvez !
A bientôt

Link to comment
Share on other sites

Ok oui c un peu plus clair :)
J'ai fait les modifs, mais je me suis retrouvé avec des losanges et points d'intérogation en me disant que je devait renseigner 9 valeurs alors que je n'ai testé que sans le téléphone...
De plus je pensai que en supprimant le client via le BO je pouvais ré-inscrire le même, et bah non, l'entrée dois resté dans la BDD.
Galère...j'ai donc remis les fichiers originaux de "classes" en attendant de re-vérifié dans un ptit moment.

Link to comment
Share on other sites

Si tu as des losanges et points d’intérogation ça veut dire que ton éditeur ne sauvergde pas en UTF8 mais en ANSI je pense.

De plus je pensai que en supprimant le client via le BO je pouvais ré-inscrire le même, et bah non, l’entrée dois resté dans la BDD.

Etonnant ça mais c'est vrai que je n'ai jamais testé.
Link to comment
Share on other sites

Etonnant ça mais c’est vrai que je n’ai jamais testé.

Il n'y a pas que ca il me semble qui réagis pareil.

En fait, j'utilise l'éditeur de texte...C un peu galère mais je n'ai que ca et ne sait pas quoi télécharger de gratuit pour éditer.
Le soucis viens de là ? car parfois j'ai des erreurs quand je touches les fichiers, alors donc je me disai que c'etait moi qui n'étais ptet pas doué...
Comment alors faire pour cela ?
Merci pour cette aide en tt cas ! ;)
Link to comment
Share on other sites

Bon bah ca ne marches pas...
J'ai ce message (voir photo en Pj)
en revanche j'ai pas le même code dans adress.tpl:


{l s='Home phone'}
<input type="text" class="text" name="phone" id="phone" value="{if isset($smarty.post.phone)}{$smarty.post.phone}{/if}" />




Moi j'ai cà à la place de ce code d'origine:


{l s='Home phone'}
           <input type="text" id="phone" name="phone" value="{if isset($smarty.post.phone)}{$smarty.post.phone}{else}{$address->phone|escape:'htmlall':'UTF-8'}{/if}" />



J'y comprends rien :(

36873_TibLkHO4YxvUpIM5zBDf_t

Link to comment
Share on other sites

Bon je suis arrivé, j’ai testé est quand je fais exprés de ne pas mettre le num voici ce qui s’affiche

�phone� requis

Comment enlever les � et mettre phone par téléphone domicile


On m'a donné la réponse plus haut ! C'est car ton fichier ne s'enregistre pas en UTF

En revanche, je viens d'arriver à charger 2 fichiers sur 4 que KTech m'avais demandé et impossible à poster sur le forum.
Je vais charger 2 autres fichiers ici si j'y parviens.
Link to comment
Share on other sites

  • 1 month later...

Beaucoup de message qui complique la tâche pour le téléphone deux opérations simples :


1) #Themes/votretheme/Authentication.tpl
Il faut ajouter l'étoile * et modifier la class en "required text"


{l s='Home phone'}
           <input type="text" class="text" name="phone" id="phone" value="{if isset($smarty.post.phone)}{$smarty.post.phone}{/if}" />
*



2)Rendre le champ obligatoire

2.2) #Classes/Address.php
Ajouter 'phone'

protected    $fieldsRequired = array('id_country', 'alias', 'lastname', 'firstname', 'address1', 'postcode', 'city', 'phone');

Link to comment
Share on other sites

  • 2 weeks later...

Merci MathieuB,

Tes explications fonctionnent à merveille.
De plus cette modification est nécessaire pour que l'installation du module "FIA-NET Système d'Analyse des Commandes" n'affiche plus l'erreur du téléphone (pas encore tester le fonctionnement complet).

J'ajouterai juste d'aller aussi dans la partie back-office pour signaler que le téléphone est obligatoire avec la petite "*" car ta modification est ok aussi coté admin.

aller dans votre répertoire admin/tabs, ouvrez le fichier "AdminAdresses.php" et remplacer :

        <input type="text" size="33" name="phone" value="'.htmlentities($this->getFieldValue($obj, 'phone'), ENT_COMPAT, 'UTF-8').'" />


pour ajouter :

*


Ce qui donne :

         <input type="text" size="33" name="phone" value="'.htmlentities($this->getFieldValue($obj, 'phone'), ENT_COMPAT, 'UTF-8').'" />
*

Link to comment
Share on other sites

Bonjour nobock,

tu semble dire que dans la 1.4 il s'agit d une option... il se trouve que c est le cas par defaut et moi je voudrais la surpprimer (je ne demande meme pas le numero de telephone a mes clients) peux tu me dire comment faire? merci

Link to comment
Share on other sites

Bonjour nobock,

tu semble dire que dans la 1.4 il s'agit d une option... il se trouve que c est le cas par defaut et moi je voudrais la surpprimer (je ne demande meme pas le numero de telephone a mes clients) peux tu me dire comment faire? merci


Hello,

Oui en effet ce n'est pas une option on dirait mais plutot obligatoire. Pour modifier ça faut surement chercher du cote du tpl. Maintenant connaissant un peu presta je pense que c'est plutôt une obligation de la loi.
Link to comment
Share on other sites

  • 1 month later...

bonjour a tous
voila bon moi c le contraire ^^
je n'ai pas besoin d'obliger mes clients a remplir toutes les informations
donc je fais le contraire de ce qui est expliqué a savoir je suprime le * au lieux de l'ajouter
mais mon prob c'est que je change bien tout sur mon fichier authentication.TPL mais que je la face pas le pugin de firfox "firebug" ou dans dreamweaver auquain changement n'aparet sur mon site ....
exemple meme si je change juste un petit message comme "You must register at least one phone number" par "phone number"
et bien apres mise a jour rien ne change sur le site... je ne comprends pas! quelqu'un peut 'il m'aider?

Link to comment
Share on other sites

habituellement un simple rechargement de page suffi pour voir les changement^^
mais bon la je vien de faire un vidage d'historique de cooki ETC et rien ne change j'ai meme essailler depuis d'autre explorateur toujours la meme chose et pourtent mon fichier authentication et bel et bien changer sur le server ;-( je cherche depuis ce matin je ne comprends pas

Link to comment
Share on other sites

bon grr je continue a me casser la tête mais je ny parvien pas
le fichier authentication.tpl semble ok

les
p class="required text"
sont remplacé par
p class="text"

j'ai bien retiré mes
*

j'ai vider mon cache

mais je ne trouve pas ce que je doit changer dans Address.php du docier classes

j'ai toujours cesi:
01.Vous devez enregistrer au moins un numéro de téléphone
02.code postal requis

quelqu'un pourrait'il m'aider ;-) ??


dans mon idee c'est ici que cela ce situ mais les changement que je fait ne change rien:

protected static $_idZones = array();
protected static $_idCountries = array();

protected $fieldsRequired = array('id_country', 'alias', 'lastname', 'firstname', 'city');
protected $fieldsSize = array('alias' => 32, 'company' => 32, 'lastname' => 32, 'firstname' => 32,
'address1' => 128, 'address2' => 128, 'postcode' => 12, 'city' => 64,
'other' => 300, 'phone' => 16, 'phone_mobile' => 16, 'dni' => 16);
Link to comment
Share on other sites

  • 3 weeks later...

bjr

concrètement comment faut il faire pour enlver l obligation de rentrer le numero de telephone, version 1.4?
car beaucoup de messages à ce sujet mais toujours pas de solution efficace...

Link to comment
Share on other sites

  • 4 years later...
  • 2 months 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...