Jump to content
Pioupial

Changer l'ordre du formulaire d'inscription

Recommended Posts

Version de Prestashop : 1.7.6.1
Thème : Classic
Version de PHP : 5.6

Bonjour,

J'aimerai changer l'ordre des champs de mon formulaire d'inscription, en ayant activé l'option B2B.

J'aimerai remonté les champs "Mot de passe" et "Email" juste en dessous du champs "Nom".

J'ai regardé du coté du fichier "form-fields.tpl" dans mon template, mais cela ne semble pas être ici.

Merci à vous.

Edited by Pioupial (see edit history)

Share this post


Link to post
Share on other sites

Si vous êtes intéressé par les changements de base (ce qui n'est pas la méthode suggérée),

Apporté les modifications suivantes dans  classes\form\CustomerFormatter.php

Déplacez ces lignes 

$format['email'] = (new FormField())
            ->setName('email')
            ->setType('email')
            ->setLabel(
                $this->translator->trans(
                    'Email',
                    [],
                    'Shop.Forms.Labels'
                )
            )
            ->setRequired(true);

        if ($this->ask_for_password) {
            $format['password'] = (new FormField())
                ->setName('password')
                ->setType('password')
                ->setLabel(
                    $this->translator->trans(
                        'Password',
                        [],
                        'Shop.Forms.Labels'
                    )
                )
                ->setRequired($this->password_is_required);
        }

Juste en dessous du

$format['lastname'] = (new FormField())
            ->setName('lastname')
            ->setLabel(
                $this->translator->trans(
                    'Last name',
                    [],
                    'Shop.Forms.Labels'
                )
            )
            ->setRequired(true);

 

  • Like 1

Share this post


Link to post
Share on other sites

Merci pour cette réponse.

Vous dîtes pas "pas la méthode suggérée" car cela modifie le CORE de Prestashop et je vais perdre la modification à la prochaine mise à jour ?

 

Share this post


Link to post
Share on other sites

Override.

Copie el archivo en i.e. classes/form/CustomerFormatter.php dentro override/classes/form/CustomerFormatter.php

& Actualice la primera línea en el archivo.

 

class CustomerFormatterCore implements FormFormatterInterface

to 

class CustomerFormatter implements CustomerFormatterCore

 

Share this post


Link to post
Share on other sites

J'ai copié le fichier CustomerFormatter.php dans le dossier override/classes/form

Puis j'ai modifié le code pour modifier l'ordre de mon formulaire comme mentionné ci dessus.

Et enfin j'ai bien remplacé la ligne 28 de mon fichier par :

class CustomerFormatter implements CustomerFormatterCore

Problème, en actualisant ma page j'ai l'erreur suivante :

Error: CustomerFormatter cannot implement CustomerFormatterCore - it is not an interface

Merci

Share this post


Link to post
Share on other sites

Bonjour

Le plus simple est de ne pas modifier le code PHP mais d'intervenir dans le template customer-form.tpl de votre theme.

Exemple pour déplacer les zones email et password avant la zone id_gender :

 

{block name='form_field'}
	{if $field.name == 'id_gender'}
		{* Insert field email and password before gender *}
		{form_field field=$formFields.email}
		{form_field field=$formFields.password}
	{/if}
    {* Do not add the email and password fields which are handled separately. *}
    {if $field.name != 'email' && $field.name != 'password'}
        {form_field field=$field}
    {/if}
{/block}

 

Share this post


Link to post
Share on other sites

Au top, cela fonctionne, un grand merci. 

Dernière chose. J'ai installé le plugin "Custom Registration Fields" pour ajouter d'autres champs à mon formulaire d'inscription.

Ses champs viennent s'ajouter à la fin du formulaire par défaut de prestashop. Mais à la fin de ce formulaire par défaut j'ai les cases à cocher suivantes "Recevoir notre Newsletter" et "J'accepte les conditions générales...". Du coup ses champs se retrouvent au milieux de mon formulaire. Une idée pour les mettre à la fin, donc tout en bas après les champs ajoutés par le plugin?

Merci

 

Edited by Pioupial (see edit history)

Share this post


Link to post
Share on other sites

Je ne connais pas ce plugin. Le plus simple est de demander à son créateur.

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