Rendre un champ supplémentaire obligatoire lors de l’inscription
je souhaiterais rendre un des deux champs téléphone obligatoire (comme le nom ou prénom avec erreur si ça reste vide) lors de la création d'un compte mais je ne sais pas comment faire.
Si quelqu'un peut m'aider je lui en serait très reconnaissant.
Merci d'avance
Pour rendre un des deux numéros obligatoires.
fichier themes/[mon theme]/authentification.tpl ligne 196
<input type="text" class="text" name="phone" id="phone" value="{if isset($smarty.post.phone)}{$smarty.post.phone|escape:'htmlall,UTF-8'|stripslashes}{/if}" />
devient
<input type="text" class="text" name="phone" id="phone" value="{if isset($smarty.post.phone)}{$smarty.post.phone|escape:'htmlall,UTF-8'|stripslashes}{/if}" />
*
ça a affiche une étoile devant le champ obligatoire.
Fichier /authentification.php ligne 51
elseif (!@checkdate(Tools::getValue('months'), Tools::getValue('days'), Tools::getValue('years')) AND !(Tools::getValue('months') == '' AND Tools::getValue('days') == '' AND Tools::getValue('years') == ''))
$errors[] = Tools::displayError('invalid birthday');
devient
elseif (!@checkdate(Tools::getValue('months'), Tools::getValue('days'), Tools::getValue('years')) AND !(Tools::getValue('months') == '' AND Tools::getValue('days') == '' AND Tools::getValue('years') == ''))
$errors[] = Tools::displayError('invalid birthday');
elseif (!Tools::getValue('phone') AND !Tools::getValue('phone_mobile'))
$errors[] = Tools::displayError('Please specify a least one phone number');
Pour faire la vérification.
Encore merci
Voici une modif qui pourrait te permettre de faire ce que tu aimerais.
Il faut modifier le fichier classes/Address.php.
Au début de celui-ci tu devrais trouver ceci :
protected $fieldsRequired = array('id_country', 'alias', 'lastname', 'firstname', 'address1', 'postcode', 'city');
Il suffit (je pense, car je n'ai pas testé) d'ajouter le nom des champs pour les téléphone, et ça donne cela :
protected $fieldsRequired = array('id_country', 'alias', 'lastname', 'firstname', 'address1', 'postcode', 'city', 'phone', 'phone_mobile');
Voilà, maintenant les champs "Téléphone domicile" & "Téléphone portable" devraient être obligatoire.
Et pour faire encore mieux, on va modifier le template afin d'afficher la petite "*" à coté de ces deux champs.
Pour cela, on modifie le fichier themes/prestashop/authentication.tpl.
Tu devrais trouver ces lignes là :
<input type="text" class="text" name="phone" id="phone" value="{if isset($smarty.post.phone)}{$smarty.post.phone|escape:'htmlall,UTF-8'|stripslashes}{/if}" />
<input type="text" class="text" name="phone_mobile" id="phone_mobile" value="{if isset($smarty.post.phone_mobile)}{$smarty.post.phone_mobile|escape:'htmlall,UTF-8'|stripslashes}{/if}" />
*
Changes les comme ceci :
<input type="text" class="text" name="phone" id="phone" value="{if isset($smarty.post.phone)}{$smarty.post.phone|escape:'htmlall,UTF-8'|stripslashes}{/if}" />
<input type="text" class="text" name="phone_mobile" id="phone_mobile" value="{if isset($smarty.post.phone_mobile)}{$smarty.post.phone_mobile|escape:'htmlall,UTF-8'|stripslashes}{/if}" />
*
Voilà, j'espère que ça règlera ton problème.
Je n'ai pas du tout testé ces modifications, donc il est possible que ça ne fonctionne pas. Tiens moi au courant ;)
:exclaim: Lors d'une mise à jour de PrestaShop, ces deux fichiers seront écrasés et donc les modifs aussi.
EDIT : Ben ShagShag à été plus vite :D. Mais tu es certain Shag² qu'il ne faut pas modifier le tableau $fieldsRequired ?
En plus ta solution est plus propre et je la préfère à la mienne.
Bref je sors oubliez moi -->[]
EDIT : Par contre ta solution rend les 2 champs obligatoires et la mienne seulement l'un des deux comme mathmenet le voulait :p
Pour ce qui du fichier classes/Address.php, j'ai juste mis le mobile phone en plus du reste.
Merci aussi à shagshag, l'idée était là! tu te rattraperas au prochain coup. ;-)
Merci de vos réponses si rapide.
Petite question ? la saisir de un numéro obligatoire me parais bien, ais si on mais un numéro quelconque ? ex. 0123456789 ?
Ou il faux rendre obligatoire qq parametre base sur les numéros de téléphones ?
Question bête mais peux nous aider
je pense surtout que tous les pays non pas les mêmes numéros.
Tu peux mettre ton numéro au format international.
Donc je pense que c'est assez restrictif si tu commence à vérifier et analyser le numéro.
Juste analyser à la rigueur que ce sont bien des chiffres mais c'est tout. Ceci n'engage que moi.
Et sinon d'un point de vu technique je ne sais pas comment faire ! :-)
C'est très compliqué de fixer une règle sur un numéro de téléphone.
Par exemple tous ces numéros sont valides:
0123456789
7123456789 (opérateur différent)
(0)123456789
01.23.45.56.78.89
01-23-45-67-89
0 123-456-789
+33 123456789
+33 (0) 123 456 789
plus toutes les combinaisons possibles. et là on ne parle que des numéros français
en espagne : 963 326 426 : 9 chiffres
en belgique : 02 420 90 62 : 9 mais pas groupés pareil
usa : 1-800-275-2273 ou 1-800-APPLE
...
bref pas possible de faire une règle. d'habitude je laisse ce champ libre
Edit : grillé :)
En plus comme ça tu aura du temps pour créer les règles pour chaque pays et puis celui dont tu ne connais pas les règles tu ne vérifies pas.
Si par exemple on choisis france comme pays tu vérifies bien sur et on pourra pas mettre n'importe quoi.
Voila.
Je détère le sujet !
J'ai le même besoin : rendre le champ phone_mobile obligatoire.
J'ai modifié la classe Address.php comme l'a préconisé Pierre-Yves, ainsi que les formulaires address.tpl & authentication.tpl.
Dans le cas où il s'agit d'une inscription, pas de problème, mais dans le cas où la fiche client a été créée AVANT la modification de la classe, ET dans le cas où cette fiche avait ce champ vide, Presta affiche une erreur "Hack Attemp' sur le lien 'mettre à jour mes adresse' de l'espace client.
Savez vous comment éviter ça ?
Merci
Pourquoi vous cherchez a rendre obligatoire un Nº de telephone :question:
encore, question bete de ma part.
From 1224698634:
Intéressant...
Merci de respecter les règles du forum PrestaShop.com :)
Please comply with the PrestaShop.com forum rules :)
From 1224695239:
Pourquoi vous cherchez a rendre obligatoire un Nº de telephone :question:
encore, question bete de ma part.
Pour une raison toute bête :)
Je livre en main propre le soir même de la commande.
Un numéro de téléphone est apprécié lorsqu'il n'y a personne à l'adresse indiquée ;)
Ceci dit, cela n'empêche pas que Prestashop de dérailler sur les fiches créées avant la modification des champs obligatoires (telephones ou autres)
"Pour un traitement optimal de votre commande et pour un bon déroulement de sa livraison, veuillez renseigner votre numéro de téléphone."
De plus, les CGV inclueront un paragraphe propre sur cet élement important de la livraison qui te protège en cas de problème de toute nature rencontré lors de la livraison et pour tout litige pouvant résulter d'une mauvaise indication du numéro.
From 1224713524:
"Pour un traitement optimal de votre commande et pour un bon déroulement de sa livraison, veuillez renseigner votre numéro de téléphone."
De plus, les CGV inclueront un paragraphe propre sur cet élement important de la livraison qui te protège en cas de problème de toute nature rencontré lors de la livraison et pour tout litige pouvant résulter d'une mauvaise indication du numéro.
Merci, mais je ne demande pas d'information de type juridique, mais technique sur le message 'Hack Tempt' de Prestashop ;)




Back to top










