THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline

#1 Rajouter un champ

(11-06-2015 14:48:58)


Bonjour,

je debute sur thelia.
j'aimerai rajouter un champ dans le formulaire d'inscription
je ne comprends pas comment faire

Merci pour votre aide

Offline

#2 Re: Rajouter un champ

(11-06-2015 16:21:44)


je voudrais juste rajouter un champs de comfirmation email
mais je ne vois pas comment implementer sans modifier le fichier Core\lib\thelia\form\CustomerCreateForm.php

Last edited by Debutant (11-06-2015 16:22:08)

Offline

#3 Re: Rajouter un champ

(11-06-2015 20:41:20)


Bonjour,
Pour faire celà, il te faudra de bonne compétence en php. Voir très bonne si tu ne veux pas toucher au coeur Thelia, donc faire un module qui le surcharge.

Cette fonctionnalité est déjà présente dans l'alpha 2 de Thelia 2.2. Voir PR
Si tu peux attendre la sortie de la 2.2, ton problème n'en sera plus un.
Tu peux aussi passer ton Thelia en 2.2 alpha 2, mais attention, pour le moment c'est une alpha smile

Cordialement,


Développeur Web chez OpenStudio
Thelia Module, Thelia School, My GitHub, My Twitter

Offline

#4 Re: Rajouter un champ

(12-06-2015 07:37:22)


Merci MRGUILLOU

Tout depend quand la version 2.2 va sortir smile
je viens juste d'installer la 2.1.4

j'avais pense rajouter dans le fichier Core\lib\thelia\form\CustomerCreateForm.php

....
            // Add Email address Confirm
            ->add("email_confirm", "email", array(
                "constraints" => array(
                    new Constraints\Email(),
                    new Constraints\Callback(array(
                        "methods" => array(
                            array($this,
                                "verifyEmailField")
                        )
                    ))
                ),
                "label" => Translator::getInstance()->trans("Confirm Email Address"),
                "label_attr" => array(
                    "for" => "email_confirm"
                )
            ))
....
    public function verifyEmailField($value, ExecutionContextInterface $context)
    {
        $data = $context->getRoot()->getData();

        if ($data["email"] != $data["email_confirm"]) {
            $context->addViolation(Translator::getInstance()->trans("email confirmation is not the same as email field"));
        }
    }

mais cette solution ne me plait pas, si je fais une mise a jour ma modif va s'effacer...
dans la doc (ou j'avoue je ne comprends pas tout) je pensais avoir compris que l'on pouvait rajouter ses propres champs
apparemment j'ai mal compris et surtout je n'ai pas compris comment sad

Offline

#5 Re: Rajouter un champ

(12-06-2015 08:41:25)


En fait, tu peux, même en 2.1. Il te faut écrire un module qui va étendre les forms Customer, et gérer les informations supplémentaires, pour les stocker en base par exemple.

J'ai un module de ce genre en projet, mais il ne sera pas prêt tout de suite.


OpenStudio Toulouse