THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

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

Offline


Bonjour,

Meilleurs voeux à tous !

J'essaie de donner la posibilité de cocher la case de reseller au client qui s'inscrive.

Voici mon code

templates/frontOffice/montemplatefo/register.html

{extends file="layout.tpl"}

{* Body Class *}
{block name="body-class"}page-register{/block}

{* Breadcrumb *}
{block name='no-return-functions' append}
    {$breadcrumbs = [['title' => {intl l="Register"}, 'url'=>{url path="/register"}]]}
{/block}

{block name="main-content"}

    {* This page should not replace the current previous URL *}
    {set_previous_url ignore_current="1"}

    <div class="main">

        <article class="col-main" role="main" aria-labelledby="main-label">

            <h1 id="main-label" class="page-header">{intl l="Create New Account"}</h1>
            {hook name="register.top"}
            {form name="thelia.front.customer.create"}
            <form id="form-register" class="form-horizontal" action="{url path="/register"}" method="post">
                {form_field field='success_url'}
                    <input type="hidden" name="{$name}" value="{navigate to="previous"}" /> {* the url the user is redirected to on registration success *}
                {/form_field}

                {form_field field='error_message'}
                    <input type="hidden" name="{$name}" value="{intl l="missing or invalid data"}" />
                {/form_field}
                {form_hidden_fields}
                {if $form_error}<div class="alert alert-danger">{$form_error_message}</div>{/if}
                {hook name="register.form-top"}
                <fieldset id="register-info" class="panel panel-default">
                    <div class="panel-heading">
                        1. {intl l="Personal Information"}
                    </div>

                    <div class="panel-body">
                        {form_field field="title"}
                            <div class="form-group group-title{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                                <div class="control-input col-sm-5">
                                    <select name="{$name}" id="{$label_attr.for}" class="form-control"{if $required} aria-required="true" required{/if}{if !$value || $error} autofocus{/if}>
                                        <option value="">-- {intl l="Select Title"} --</option>
                                        {loop type="title" name="country.list"}
                                    {if {$ID} != "3"}<option value="{$ID}" {if $value == $ID}selected{/if} >{$LONG}</option>{/if}<!-- on affiche plus mademoiselle -->
                                        {/loop}
                                    </select>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {elseif !$value}
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}
                        {form_field field="firstname"}
                        <div class="form-group group-firstname{if $error} has-error{/if}">
                            <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                            <div class="control-input col-sm-5">
                                <input type="text" name="{$name}" id="{$label_attr.for}" class="form-control" maxlength="255" placeholder="{intl l="Placeholder firstname"}" value="{$value}" {if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                {if $error }
                                    <span class="help-block">{$message}</span>
                                    {assign var="error_focus" value="true"}
                                {/if}
                            </div>
                        </div><!--/.form-group-->
                        {/form_field}
                        {form_field field="lastname"}
                            <div class="form-group group-lastname{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                                <div class="control-input col-sm-5">
                                    <input type="text" name="{$name}" id="{$label_attr.for}" class="form-control" maxlength="255" placeholder="{intl l="Placeholder lastname"}" value="{$value}" {if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}
                        {form_field field="email"}
                        <div class="form-group group-email{if $error} has-error{/if}">
                            <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>

                            <div class="control-input col-sm-5">
                                <input type="email" name="{$name}" id="{$label_attr.for}" class="form-control" maxlength="255" placeholder="{intl l="Placeholder email"}" value="{$smarty.get.email|default:$value}"{if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                {if $error }
                                    <span class="help-block">{$message}</span>
                                    {assign var="error_focus" value="true"}
                                {/if}
                            </div>
                        </div><!--/.form-group-->
                        {/form_field}
                        {if {config key="customer_confirm_email"}}
                        {form_field field="email_confirm"}
                            <div class="form-group group-email{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>

                                <div class="control-input col-sm-5">
                                    <input type="email" name="{$name}" id="{$label_attr.for}" class="form-control" maxlength="255" placeholder="{intl l="Placeholder email confirm"}" value="{$smarty.get.email|default:$value}"{if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}
                        {/if}
                        {form_field field="phone"}
                            <div class="form-group group-phone{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                                <div class="control-input col-sm-5">
                                    <input type="text" name="{$name}" id="{$label_attr.for}" class="form-control" maxlength="20" placeholder="{intl l="Placeholder phone"}" value="{$value}"{if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}
                        {form_field field="cellphone"}
                            <div class="form-group group-cellphone{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                                <div class="control-input col-sm-5">
                                    <input type="text" name="{$name}" id="{$label_attr.for}" class="form-control" maxlength="20" placeholder="{intl l="Placeholder cellphone"}" value="{$value}"{if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}
                    </div>

                    <!-- Reseller pour pro modif artaban gl 230111 -->
                    <div class="form-group group-reseller">
                        <label class="control-label col-sm-3" for="reseller">{intl l="I am a professional"}</label>
                        <div class="control-input col-sm-5">
                            <input type="checkbox" id="reseller" name="thelia_customer_update[reseller]" value="1">
                        </div>
                    </div>
                </fieldset>

                <fieldset id="register-delivery" class="panel panel-default">
                    <div class="panel-heading">
                        2. {intl l="Your address"}
                    </div>

                    <div class="panel-body">
                        {form_field field="company"}
                            <div class="form-group group-company{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                                <div class="control-input col-sm-5">
                                    <input type="text" name="{$name}" id="{$label_attr.for}" class="form-control" maxlength="255" placeholder="{intl l="Placeholder company"}" value="{$value}"{if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}




                        {form_field field="address1"}
                            <div class="form-group group-address1{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                                <div class="control-input col-sm-5">
                                    <input type="text" name="{$name}" id="{$label_attr.for}" class="form-control" maxlength="255" placeholder="{intl l="Placeholder address1"}" value="{$value}"{if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}

                        {form_field field="address2"}
                            <div class="form-group group-address2{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                                <div class="control-input col-sm-5">
                                    <input type="text" name="{$name}" id="{$label_attr.for}" class="form-control" maxlength="255" placeholder="{intl l="Placeholder address2"}" value="{$value}"{if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}

                        {form_field field="zipcode"}
                            <div class="form-group group-zip{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                                <div class="control-input col-sm-5">
                                    <input type="text" name="{$name}" id="{$label_attr.for}" class="form-control" maxlength="10" placeholder="{intl l="Placeholder zipcode"}" value="{$value}"{if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}

                        {form_field field="city"}
                            <div class="form-group group-city{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                                <div class="control-input col-sm-5">
                                    <input type="text" name="{$name}" id="{$label_attr.for}" class="form-control" maxlength="255" placeholder="{intl l="Placeholder city"}" value="{$value}"{if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}

                        {form_field field="country"}
                            {$countryFieldId=$label_attr.for}
                            <div class="form-group group-country{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                                <div class="control-input col-sm-5">
                                    <select name="{$name}" id="{$label_attr.for}" class="form-control"{if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                        <option value="">-- {intl l="Select Country"} --</option>
                                        {loop type="country" name="country.list"}
                                            <option value="{$ID}"
                                                    {if $value != ""}
                                                        {if $value == $ID}selected{/if}
                                                    {else}
                                                        {if $IS_DEFAULT}selected{/if}
                                                    {/if}

                                            >{$TITLE}</option>
                                        {/loop}
                                    </select>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}

                        {form_field field="state"}
                            <div class="form-group group-state{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                                <div class="control-input col-sm-5">
                                    <select name="{$name}" id="{$label_attr.for}"
                                            data-thelia-state="1" data-thelia-country="#{$countryFieldId}" data-thelia-toggle=".group-state"
                                            class="form-control"{if !isset($error_focus) && $error} autofocus{/if}>
                                        <option value="">-- {intl l="Select State"} --</option>
                                        {loop type="state" name="state.list"}
                                            <option value="{$ID}" data-country="{$COUNTRY}"
                                                {if $value != ""}
                                                    {if $value == $ID}selected{/if}
                                                {/if}
                                                >{$TITLE}</option>
                                        {/loop}
                                    </select>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}
                    </div>
                </fieldset>
                <fieldset id="register-login" class="panel panel-info">
                    <div class="panel-heading">
                        3. {intl l="Login Information"}
                    </div>

                    <div class="panel-body">
                        {form_field field="password"}
                            <div class="form-group group-password{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                                <div class="control-input col-sm-5">
                                    <input type="password" name="{$name}" id="{$label_attr.for}" class="form-control" autocomplete="off"{if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}

                        {form_field field="password_confirm"}
                            <div class="form-group group-password_confirm{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                                <div class="control-input col-sm-5">
                                    <input type="password" name="{$name}" id="{$label_attr.for}" class="form-control" autocomplete="off"{if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}
                    </div>
                </fieldset>

            <div class="form-group group-info-mandatory">
                <div class="control-input col-xs-11 col-sm-9 col-xs-offset-1 col-md-offset-3">
                    {intl l="* Required fields"}
                </div>
            </div><!--/.form-group-->

                {form_field field="newsletter"}
                    <div class="form-group group-newsletter{if $error} has-error{/if}">
                        <div class="control-input col-xs-11 col-sm-9 col-xs-offset-1 col-md-offset-3">
                            <div class="checkbox">
                                <label class="control-label" for="{$label_attr.for}">
                                    <input type="checkbox" name="{$name}" id="{$label_attr.for}" value="{$value}"{if $checked} checked{/if}  {if $required} aria-required="true" required{/if}>{intl l="I subscribe to the newsletter to be informed of the latest news and tips"}
                                </label>
                                {if $error }
                                    <span class="help-block">{$message}</span>
                                {/if}
                            </div>
                        </div>
                    </div><!--/.form-group-->
                {/form_field}

                {hook name="register.form-bottom"}

                <div class="form-group group-btn">
                    <div class="control-btn col-sm-5 col-sm-offset-3">
                        <button type="submit" class="btn btn-primary"><i class="fa fa-chevron-right"></i> {intl l="Register"}</button>
                    </div>
                </div><!--/.form-group-->
            </form>
            {/form}

            {hook name="register.bottom"}
        </article>

    </div><!-- /.layout -->
{/block}


{block name="stylesheet"}
{hook name="register.stylesheet"}
{/block}

{block name="after-javascript-include"}
{hook name="register.after-javascript-include"}
{/block}

{block name="javascript-initialization"}
{hook name="register.javascript-initialization"}
{/block}

local/modules/monModule/Actions/Customer.php

<?php

namespace NewrhoneModule\Actions;


use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Thelia\Core\Event\ActionEvent;
use Thelia\Core\Event\TheliaEvents;
use Thelia\Model\Customer as CustomerModel;



class Customer implements EventSubscriberInterface
{

    public function updateCustomer(ActionEvent $event, $eventName, EventDispatcherInterface $dispatcher)
    {
        $customer = new CustomerModel();

        $this->createOrUpdateCustomer($customer, $event, $dispatcher);

    }

    private function createOrUpdateCustomer(CustomerModel $customer, ActionEvent $event, EventDispatcherInterface $dispatcher)
    {

        $customer->setDispatcher($dispatcher);

        $customer->createOrUpdate(
            $event->getTitle(),
            $event->getFirstname(),
            $event->getLastname(),
            $event->getAddress1(),
            $event->getAddress2(),
            $event->getAddress3(),
            $event->getPhone(),
            $event->getCellphone(),
            $event->getZipcode(),
            $event->getCity(),
            $event->getCountry(),
            $event->getEmail(),
            $event->getPassword(),
            $event->getLangId(),
            $event->getReseller(),
            $event->getSponsor(),
            $event->getDiscount(),
            $event->getCompany(),
            $event->getRef(),
            $event->getEmailUpdateAllowed(),
            $event->getState()
        );

        $event->setCustomer($customer);
    }



    /**
     * {@inheritdoc}
     */
    public static function getSubscribedEvents()
    {
        return array(
            TheliaEvents::CUSTOMER_CREATEACCOUNT=> array('updateCustomer', 77),
        );
    }
}

Si je met reseller à 1 en dur, ça marche.

Par ailleurs si je met thelia_customer_create[reseller] au de thelia_customer_update[reseller] dans register, j'ai une erreur genre "informations invalides".

Je pense que thelia_customer_create[reseller] n'est pas prévu dans la méthode de création de client. Ou qu'il y a une vérification sur l'intégrité des données envoyées pour la création d'un client et que ça donne le message d'erreur.

Si je met thelia_customer_update[reseller], ça passe, mais je n'arrive pas à récupérer l'info...

Une piste ?

Merci d'avance !

Gilles L.

Offline


Tu peux faire un override sur la form de creation de client pour ajouter le champ "reseller".


OpenStudio Toulouse

Offline


Merci de ta réponse !

J'ai essayé mais je suis redirigé vers le formulaire vide. Et dans le backoffice, on me demande de valider l'inscription avec l'erreur "Merci de vérifier les informations indiquées : Information erronée ou incomplète". Et lorsque je valide, la case reseller n'est pas cochée.

Voici mon code

config.xml

    <forms>
        <form name="newmodule.customer.creation" class="NewModule\Forms\CustomerCreation"/>
<!--        <form name="newmodule.customer.modification" class="NewModule\Form\CustomerModification"/>-->
    </forms>

local/modules/NewModule/Actions/Customer.php

<?php

namespace NewModule\Actions;


use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Thelia\Core\Event\ActionEvent;
use Thelia\Core\Event\TheliaEvents;
use Thelia\Model\Customer as CustomerModel;


class Customer implements EventSubscriberInterface
{

    public function createCustomer(ActionEvent $event, $eventName, EventDispatcherInterface $dispatcher)
    {



                $customer = new CustomerModel();

                $this->createOrUpdateCustomer($customer, $event, $dispatcher);

    }

    private function createOrUpdateCustomer(CustomerModel $customer, ActionEvent $event, EventDispatcherInterface $dispatcher)
    {

        $customer->setDispatcher($dispatcher);

        $customer->createOrUpdate(
            $event->getTitle(),
            $event->getFirstname(),
            $event->getLastname(),
            $event->getAddress1(),
            $event->getAddress2(),
            $event->getAddress3(),
            $event->getPhone(),
            $event->getCellphone(),
            $event->getZipcode(),
            $event->getCity(),
            $event->getCountry(),
            $event->getEmail(),
            $event->getPassword(),
            $event->getLangId(),
            $event->getReseller(),
            $event->getSponsor(),
            $event->getDiscount(),
            $event->getCompany(),
            $event->getRef(),
            $event->getEmailUpdateAllowed(),
            $event->getState()
        );

        $event->setCustomer($customer);
    }


    /**
     * {@inheritdoc}
     */
    public static function getSubscribedEvents()
    {
        return array(
            TheliaEvents::CUSTOMER_CREATEACCOUNT => array('createCustomer', 77),
        );
    }
}

local/modules/NewModule/Forms/CustomerCreation.php

<?php

namespace NewModule\Forms;

use Thelia\Form\CustomerCreateForm;
use Thelia\Core\Translation\Translator;

class CustomerCreation extends CustomerCreateForm
{
    protected function buildForm()
    {
        parent::buildForm();

        $this->formBuilder
            // Add Reseller
            ->add('reseller', 'checkbox', array(
                "label" => Translator::getInstance()->trans('I am a professional'),
                "label_attr" => array(
                    "for" => "reseller",
                ),
                "required" => false,
            ));
    }

}

Dans la doc, j'ai vu la notion de trait pour ce qui concerne uniquement le backoffice. Je vais regarder ça !

Last edited by GillesL (16-01-2023 14:00:52)

Offline


Bon, Le champ reseller ne semble pas pris en compte par le trait...

J'ai une idée en tête, je vais voir si ça marche.

Last edited by GillesL (16-01-2023 14:25:52)

Offline


Bon, mon idée ne marche pas...

Je repars sur l'overridding !

Offline


Bon, ce n'est pas mieux. Mon nouveau code met même le bazar dans le BO !

J'ai vu ça la notion d'extension de form : http://thelia.github.io/en/documentatio … -extension.

Je ne comprend pas comment ça marche !

Quelqu'un aurait-il des explications ?

Merci !

Offline


Regarde ce module https://github.com/roadster31/AdditionalField, il met en œuvre le concept d'extension pour ajouter un champ à une form. Mais il ne répond pas à ton besoin, qui est de prendre en compte à la création du client un champ (reseller) qui n'existe que dans la form de mise à jour.

Un override du fichier core/lib/Thelia/Form/CustomerCreateForm.php, ou tu ajoutes simplement le champ "reseller" devrait faire l'affaire très simplement, puisque, le contrôleur Front CustomerController le prend en compte s'il est présent, que ce soit pour une création ou une modification :

download


OpenStudio Toulouse

Offline


Voilà ce que j'ai

local/modules/NewrhoneModule/Config/config.xml

<?xml version="1.0" encoding="UTF-8" ?>

<config xmlns="http://thelia.net/schema/dic/config"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://thelia.net/schema/dic/config http://thelia.net/schema/dic/config/thelia-1.0.xsd">
    <forms>
        <form name="newrhonemodule.customer.creation" class="NewrhoneModule\Forms\NewrhoneCustomerCreateForm"/>
<!--        <form name="newrhonemodule.customer.modification" class="NewrhoneModule\Form\CustomerModification"/>-->
    </forms>

</config>

local/modules/NewrhoneModule/Forms/NewrhoneCustomerCreateForm.php

<?php

namespace NewrhoneModule\Forms;

use Thelia\Form\CustomerCreateForm;
use Thelia\Core\Translation\Translator;

class NewrhoneCustomerCreateForm extends CustomerCreateForm
{
    protected function buildForm()
    {
        parent::buildForm();

        $this->formBuilder
            // Add Reseller
            ->add('reseller', 'integer', array(
                "label" => Translator::getInstance()->trans('I am a professional'),
                "label_attr" => array(
                    "for" => "reseller",
                ),
                "required" => false,
            ));
    }

}

templates/frontOffice/newrhone1/register.html

{extends file="layout.tpl"}

{* Body Class *}
{block name="body-class"}page-register{/block}

{* Breadcrumb *}
{block name='no-return-functions' append}
    {$breadcrumbs = [['title' => {intl l="Register"}, 'url'=>{url path="/register"}]]}
{/block}

{block name="main-content"}

    {* This page should not replace the current previous URL *}
    {set_previous_url ignore_current="1"}

    <div class="main">

        <article class="col-main" role="main" aria-labelledby="main-label">

            <h1 id="main-label" class="page-header">{intl l="Create New Account"}</h1>
            {hook name="register.top"}
            {form name="newrhonemodule.customer.creation"}
            <form id="form-register" class="form-horizontal" action="{url path="/register"}" method="post">
                {form_field field='success_url'}
                    <input type="hidden" name="{$name}" value="{navigate to="previous"}" /> {* the url the user is redirected to on registration success *}
                {/form_field}

                {form_field field='error_message'}
                    <input type="hidden" name="{$name}" value="{intl l="missing or invalid data"}" />
                {/form_field}
                {form_hidden_fields}
                {if $form_error}<div class="alert alert-danger">{$form_error_message}</div>{/if}
                {hook name="register.form-top"}
                <fieldset id="register-info" class="panel panel-default">
                    <div class="panel-heading">
                        1. {intl l="Personal Information"}
                    </div>

                    <div class="panel-body">
                        {form_field field="title"}
                            <div class="form-group group-title{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                                <div class="control-input col-sm-5">
                                    <select name="{$name}" id="{$label_attr.for}" class="form-control"{if $required} aria-required="true" required{/if}{if !$value || $error} autofocus{/if}>
                                        <option value="">-- {intl l="Select Title"} --</option>
                                        {loop type="title" name="country.list"}
                                    {if {$ID} != "3"}<option value="{$ID}" {if $value == $ID}selected{/if} >{$LONG}</option>{/if}<!-- on affiche plus mademoiselle -->
                                        {/loop}
                                    </select>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {elseif !$value}
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}
                        {form_field field="firstname"}
                        <div class="form-group group-firstname{if $error} has-error{/if}">
                            <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                            <div class="control-input col-sm-5">
                                <input type="text" name="{$name}" id="{$label_attr.for}" class="form-control" maxlength="255" placeholder="{intl l="Placeholder firstname"}" value="{$value}" {if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                {if $error }
                                    <span class="help-block">{$message}</span>
                                    {assign var="error_focus" value="true"}
                                {/if}
                            </div>
                        </div><!--/.form-group-->
                        {/form_field}
                        {form_field field="lastname"}
                            <div class="form-group group-lastname{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                                <div class="control-input col-sm-5">
                                    <input type="text" name="{$name}" id="{$label_attr.for}" class="form-control" maxlength="255" placeholder="{intl l="Placeholder lastname"}" value="{$value}" {if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}
                        {form_field field="email"}
                        <div class="form-group group-email{if $error} has-error{/if}">
                            <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>

                            <div class="control-input col-sm-5">
                                <input type="email" name="{$name}" id="{$label_attr.for}" class="form-control" maxlength="255" placeholder="{intl l="Placeholder email"}" value="{$smarty.get.email|default:$value}"{if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                {if $error }
                                    <span class="help-block">{$message}</span>
                                    {assign var="error_focus" value="true"}
                                {/if}
                            </div>
                        </div><!--/.form-group-->
                        {/form_field}
                        {if {config key="customer_confirm_email"}}
                        {form_field field="email_confirm"}
                            <div class="form-group group-email{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>

                                <div class="control-input col-sm-5">
                                    <input type="email" name="{$name}" id="{$label_attr.for}" class="form-control" maxlength="255" placeholder="{intl l="Placeholder email confirm"}" value="{$smarty.get.email|default:$value}"{if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}
                        {/if}
                        {form_field field="phone"}
                            <div class="form-group group-phone{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                                <div class="control-input col-sm-5">
                                    <input type="text" name="{$name}" id="{$label_attr.for}" class="form-control" maxlength="20" placeholder="{intl l="Placeholder phone"}" value="{$value}"{if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}
                        {form_field field="cellphone"}
                            <div class="form-group group-cellphone{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                                <div class="control-input col-sm-5">
                                    <input type="text" name="{$name}" id="{$label_attr.for}" class="form-control" maxlength="20" placeholder="{intl l="Placeholder cellphone"}" value="{$value}"{if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}
                    </div>

                    <!-- Reseller pour pro ajout artaban gl 230116 -->
                    {form_field field="reseller"}
                    <div class="form-group group-reseller">
                        <label class="control-label col-sm-3" for="{$label_attr.for}">
                                    {$label}
                                </label>
                                <div class="control-input col-sm-5">
                                    <input type="checkbox" id="{$label_attr.for}" name="{$name}" value="1" {if $value != 0}checked="checked"{/if}>
                                </div>
                                {if $error }
                                <span class="help-block">{$message}</span>
                                {/if}
                    </div><!--/.form-group-->
                    {/form_field}
                </fieldset>

                <fieldset id="register-delivery" class="panel panel-default">
                    <div class="panel-heading">
                        2. {intl l="Your address"}
                    </div>

                    <div class="panel-body">
                        {form_field field="company"}
                            <div class="form-group group-company{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                                <div class="control-input col-sm-5">
                                    <input type="text" name="{$name}" id="{$label_attr.for}" class="form-control" maxlength="255" placeholder="{intl l="Placeholder company"}" value="{$value}"{if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}




                        {form_field field="address1"}
                            <div class="form-group group-address1{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                                <div class="control-input col-sm-5">
                                    <input type="text" name="{$name}" id="{$label_attr.for}" class="form-control" maxlength="255" placeholder="{intl l="Placeholder address1"}" value="{$value}"{if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}

                        {form_field field="address2"}
                            <div class="form-group group-address2{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                                <div class="control-input col-sm-5">
                                    <input type="text" name="{$name}" id="{$label_attr.for}" class="form-control" maxlength="255" placeholder="{intl l="Placeholder address2"}" value="{$value}"{if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}

                        {form_field field="zipcode"}
                            <div class="form-group group-zip{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                                <div class="control-input col-sm-5">
                                    <input type="text" name="{$name}" id="{$label_attr.for}" class="form-control" maxlength="10" placeholder="{intl l="Placeholder zipcode"}" value="{$value}"{if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}

                        {form_field field="city"}
                            <div class="form-group group-city{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                                <div class="control-input col-sm-5">
                                    <input type="text" name="{$name}" id="{$label_attr.for}" class="form-control" maxlength="255" placeholder="{intl l="Placeholder city"}" value="{$value}"{if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}

                        {form_field field="country"}
                            {$countryFieldId=$label_attr.for}
                            <div class="form-group group-country{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                                <div class="control-input col-sm-5">
                                    <select name="{$name}" id="{$label_attr.for}" class="form-control"{if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                        <option value="">-- {intl l="Select Country"} --</option>
                                        {loop type="country" name="country.list"}
                                            <option value="{$ID}"
                                                    {if $value != ""}
                                                        {if $value == $ID}selected{/if}
                                                    {else}
                                                        {if $IS_DEFAULT}selected{/if}
                                                    {/if}

                                            >{$TITLE}</option>
                                        {/loop}
                                    </select>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}

                        {form_field field="state"}
                            <div class="form-group group-state{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                                <div class="control-input col-sm-5">
                                    <select name="{$name}" id="{$label_attr.for}"
                                            data-thelia-state="1" data-thelia-country="#{$countryFieldId}" data-thelia-toggle=".group-state"
                                            class="form-control"{if !isset($error_focus) && $error} autofocus{/if}>
                                        <option value="">-- {intl l="Select State"} --</option>
                                        {loop type="state" name="state.list"}
                                            <option value="{$ID}" data-country="{$COUNTRY}"
                                                {if $value != ""}
                                                    {if $value == $ID}selected{/if}
                                                {/if}
                                                >{$TITLE}</option>
                                        {/loop}
                                    </select>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}
                    </div>
                </fieldset>
                <fieldset id="register-login" class="panel panel-info">
                    <div class="panel-heading">
                        3. {intl l="Login Information"}
                    </div>

                    <div class="panel-body">
                        {form_field field="password"}
                            <div class="form-group group-password{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                                <div class="control-input col-sm-5">
                                    <input type="password" name="{$name}" id="{$label_attr.for}" class="form-control" autocomplete="off"{if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}

                        {form_field field="password_confirm"}
                            <div class="form-group group-password_confirm{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                                <div class="control-input col-sm-5">
                                    <input type="password" name="{$name}" id="{$label_attr.for}" class="form-control" autocomplete="off"{if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}
                    </div>
                </fieldset>

            <div class="form-group group-info-mandatory">
                <div class="control-input col-xs-11 col-sm-9 col-xs-offset-1 col-md-offset-3">
                    {intl l="* Required fields"}
                </div>
            </div><!--/.form-group-->

                {form_field field="newsletter"}
                    <div class="form-group group-newsletter{if $error} has-error{/if}">
                        <div class="control-input col-xs-11 col-sm-9 col-xs-offset-1 col-md-offset-3">
                            <div class="checkbox">
                                <label class="control-label" for="{$label_attr.for}">
                                    <input type="checkbox" name="{$name}" id="{$label_attr.for}" value="{$value}"{if $checked} checked{/if}  {if $required} aria-required="true" required{/if}>{intl l="I subscribe to the newsletter to be informed of the latest news and tips"}
                                </label>
                                {if $error }
                                    <span class="help-block">{$message}</span>
                                {/if}
                            </div>
                        </div>
                    </div><!--/.form-group-->
                {/form_field}

                {hook name="register.form-bottom"}

                <div class="form-group group-btn">
                    <div class="control-btn col-sm-5 col-sm-offset-3">
                        <button type="submit" class="btn btn-primary"><i class="fa fa-chevron-right"></i> {intl l="Register"}</button>
                    </div>
                </div><!--/.form-group-->
            </form>
            {/form}

            {hook name="register.bottom"}
        </article>

    </div><!-- /.layout -->
{/block}


{block name="stylesheet"}
{hook name="register.stylesheet"}
{/block}

{block name="after-javascript-include"}
{hook name="register.after-javascript-include"}
{/block}

{block name="javascript-initialization"}
{hook name="register.javascript-initialization"}
{/block}

Ca ne marche pas. On est redirigé sur le formulaire vide et lorsque l'on va dans le bo, dans client on a aucun enregistrement ! (je suis reparti de 0)

Il faut gérer l'event ?

Offline


Tu ne fais pas d'override


OpenStudio Toulouse

Offline


J'utilise thelia 2.3.4.

Je viens de tomber là dessus : https://forum.thelia.net/viewtopic.php?pid=63295#p63295

Vu le code que tu as posté, on parlait peut être pas de la même version.

Offline


Ca à l'air de marcher en mixant les solutions.

Je vérifie demain.

Là, j'ai la tête en chou fleur.

Je posterais mon code si ok !

Last edited by GillesL (17-01-2023 18:47:47)

Offline


Ca à l'air bon !

local/modules/NewrhoneModule/Config/config.xml

<?xml version="1.0" encoding="UTF-8" ?>

<config xmlns="http://thelia.net/schema/dic/config"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://thelia.net/schema/dic/config http://thelia.net/schema/dic/config/thelia-1.0.xsd">
    <forms>
        <form name="thelia.front.customer.create" class="NewrhoneModule\Forms\NewrhoneCustomerCreateForm"/>
    </forms>

</config>

Notez le "thelia.front.customer.create" pour dire d'utiliser ce formulaire pour la création de client en front

local/modules/NewrhoneModule/Forms/NewrhoneCustomerCreateForm.php

<?php

namespace NewrhoneModule\Forms;

use Thelia\Form\CustomerCreateForm;
use Thelia\Core\Translation\Translator;


class NewrhoneCustomerCreateForm extends CustomerCreateForm
{
    protected function buildForm()
    {
        parent::buildForm();

        $this->formBuilder->add('reseller', 'integer', array(
                "label" => Translator::getInstance()->trans('I am a professional'),
                "label_attr" => array(
                    "for" => "reseller",
                ),
                "required" => false,
            ));

    }

}

Pour ajouter la case à cocher reseller dans le formulaire

templates/frontOffice/newrhone1/register.html

{extends file="layout.tpl"}

{* Body Class *}
{block name="body-class"}page-register{/block}

{* Breadcrumb *}
{block name='no-return-functions' append}
    {$breadcrumbs = [['title' => {intl l="Register"}, 'url'=>{url path="/register"}]]}
{/block}

{block name="main-content"}

    {* This page should not replace the current previous URL *}
    {set_previous_url ignore_current="1"}

    <div class="main">

        <article class="col-main" role="main" aria-labelledby="main-label">

            <h1 id="main-label" class="page-header">{intl l="Create New Account"}</h1>
            {hook name="register.top"}
             {form name="thelia.front.customer.create"}
            <form id="form-register" class="form-horizontal" action="{url path="/register"}" method="post">
                {form_field field='success_url'}
                    <input type="hidden" name="{$name}" value="{navigate to="previous"}" /> {* the url the user is redirected to on registration success *}
                {/form_field}

                {form_field field='error_message'}
                    <input type="hidden" name="{$name}" value="{intl l="missing or invalid data"}" />
                {/form_field}
                {form_hidden_fields}
                {if $form_error}<div class="alert alert-danger">{$form_error_message}</div>{/if}
                {hook name="register.form-top"}
                <fieldset id="register-info" class="panel panel-default">
                    <div class="panel-heading">
                        1. {intl l="Personal Information"}
                    </div>

                    <div class="panel-body">
                        {form_field field="title"}
                            <div class="form-group group-title{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                                <div class="control-input col-sm-5">
                                    <select name="{$name}" id="{$label_attr.for}" class="form-control"{if $required} aria-required="true" required{/if}{if !$value || $error} autofocus{/if}>
                                        <option value="">-- {intl l="Select Title"} --</option>
                                        {loop type="title" name="country.list"}
                                    {if {$ID} != "3"}<option value="{$ID}" {if $value == $ID}selected{/if} >{$LONG}</option>{/if}<!-- on affiche plus mademoiselle -->
                                        {/loop}
                                    </select>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {elseif !$value}
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}
                        {form_field field="firstname"}
                        <div class="form-group group-firstname{if $error} has-error{/if}">
                            <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                            <div class="control-input col-sm-5">
                                <input type="text" name="{$name}" id="{$label_attr.for}" class="form-control" maxlength="255" placeholder="{intl l="Placeholder firstname"}" value="{$value}" {if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                {if $error }
                                    <span class="help-block">{$message}</span>
                                    {assign var="error_focus" value="true"}
                                {/if}
                            </div>
                        </div><!--/.form-group-->
                        {/form_field}
                        {form_field field="lastname"}
                            <div class="form-group group-lastname{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                                <div class="control-input col-sm-5">
                                    <input type="text" name="{$name}" id="{$label_attr.for}" class="form-control" maxlength="255" placeholder="{intl l="Placeholder lastname"}" value="{$value}" {if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}
                        {form_field field="email"}
                        <div class="form-group group-email{if $error} has-error{/if}">
                            <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>

                            <div class="control-input col-sm-5">
                                <input type="email" name="{$name}" id="{$label_attr.for}" class="form-control" maxlength="255" placeholder="{intl l="Placeholder email"}" value="{$smarty.get.email|default:$value}"{if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                {if $error }
                                    <span class="help-block">{$message}</span>
                                    {assign var="error_focus" value="true"}
                                {/if}
                            </div>
                        </div><!--/.form-group-->
                        {/form_field}
                        {if {config key="customer_confirm_email"}}
                        {form_field field="email_confirm"}
                            <div class="form-group group-email{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>

                                <div class="control-input col-sm-5">
                                    <input type="email" name="{$name}" id="{$label_attr.for}" class="form-control" maxlength="255" placeholder="{intl l="Placeholder email confirm"}" value="{$smarty.get.email|default:$value}"{if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}
                        {/if}
                        {form_field field="phone"}
                            <div class="form-group group-phone{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                                <div class="control-input col-sm-5">
                                    <input type="text" name="{$name}" id="{$label_attr.for}" class="form-control" maxlength="20" placeholder="{intl l="Placeholder phone"}" value="{$value}"{if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}
                        {form_field field="cellphone"}
                            <div class="form-group group-cellphone{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                                <div class="control-input col-sm-5">
                                    <input type="text" name="{$name}" id="{$label_attr.for}" class="form-control" maxlength="20" placeholder="{intl l="Placeholder cellphone"}" value="{$value}"{if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}
                    </div>

                    <!-- Reseller pour pro ajout artaban gl 230116 -->
                    {form_field field="reseller"}
                    <div class="form-group group-reseller">
                        <label class="control-label col-sm-3" for="{$label_attr.for}">
                                    {$label}
                                </label>
                                <div class="control-input col-sm-5">
                                    <input type="checkbox" id="{$label_attr.for}" name="{$name}" value="1" {if $value != 0}checked="checked"{/if}>
                                </div>
                                {if $error }
                                <span class="help-block">{$message}</span>
                                {/if}
                    </div><!--/.form-group-->
                    {/form_field}
                </fieldset>

                <fieldset id="register-delivery" class="panel panel-default">
                    <div class="panel-heading">
                        2. {intl l="Your address"}
                    </div>

                    <div class="panel-body">
                        {form_field field="company"}
                            <div class="form-group group-company{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                                <div class="control-input col-sm-5">
                                    <input type="text" name="{$name}" id="{$label_attr.for}" class="form-control" maxlength="255" placeholder="{intl l="Placeholder company"}" value="{$value}"{if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}




                        {form_field field="address1"}
                            <div class="form-group group-address1{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                                <div class="control-input col-sm-5">
                                    <input type="text" name="{$name}" id="{$label_attr.for}" class="form-control" maxlength="255" placeholder="{intl l="Placeholder address1"}" value="{$value}"{if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}

                        {form_field field="address2"}
                            <div class="form-group group-address2{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                                <div class="control-input col-sm-5">
                                    <input type="text" name="{$name}" id="{$label_attr.for}" class="form-control" maxlength="255" placeholder="{intl l="Placeholder address2"}" value="{$value}"{if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}

                        {form_field field="zipcode"}
                            <div class="form-group group-zip{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                                <div class="control-input col-sm-5">
                                    <input type="text" name="{$name}" id="{$label_attr.for}" class="form-control" maxlength="10" placeholder="{intl l="Placeholder zipcode"}" value="{$value}"{if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}

                        {form_field field="city"}
                            <div class="form-group group-city{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                                <div class="control-input col-sm-5">
                                    <input type="text" name="{$name}" id="{$label_attr.for}" class="form-control" maxlength="255" placeholder="{intl l="Placeholder city"}" value="{$value}"{if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}

                        {form_field field="country"}
                            {$countryFieldId=$label_attr.for}
                            <div class="form-group group-country{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                                <div class="control-input col-sm-5">
                                    <select name="{$name}" id="{$label_attr.for}" class="form-control"{if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                        <option value="">-- {intl l="Select Country"} --</option>
                                        {loop type="country" name="country.list"}
                                            <option value="{$ID}"
                                                    {if $value != ""}
                                                        {if $value == $ID}selected{/if}
                                                    {else}
                                                        {if $IS_DEFAULT}selected{/if}
                                                    {/if}

                                            >{$TITLE}</option>
                                        {/loop}
                                    </select>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}

                        {form_field field="state"}
                            <div class="form-group group-state{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                                <div class="control-input col-sm-5">
                                    <select name="{$name}" id="{$label_attr.for}"
                                            data-thelia-state="1" data-thelia-country="#{$countryFieldId}" data-thelia-toggle=".group-state"
                                            class="form-control"{if !isset($error_focus) && $error} autofocus{/if}>
                                        <option value="">-- {intl l="Select State"} --</option>
                                        {loop type="state" name="state.list"}
                                            <option value="{$ID}" data-country="{$COUNTRY}"
                                                {if $value != ""}
                                                    {if $value == $ID}selected{/if}
                                                {/if}
                                                >{$TITLE}</option>
                                        {/loop}
                                    </select>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}
                    </div>
                </fieldset>
                <fieldset id="register-login" class="panel panel-info">
                    <div class="panel-heading">
                        3. {intl l="Login Information"}
                    </div>

                    <div class="panel-body">
                        {form_field field="password"}
                            <div class="form-group group-password{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                                <div class="control-input col-sm-5">
                                    <input type="password" name="{$name}" id="{$label_attr.for}" class="form-control" autocomplete="off"{if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}

                        {form_field field="password_confirm"}
                            <div class="form-group group-password_confirm{if $error} has-error{/if}">
                                <label class="control-label col-sm-3" for="{$label_attr.for}">{$label}{if $required} <span class="required">*</span>{/if}</label>
                                <div class="control-input col-sm-5">
                                    <input type="password" name="{$name}" id="{$label_attr.for}" class="form-control" autocomplete="off"{if $required} aria-required="true" required{/if}{if !isset($error_focus) && $error} autofocus{/if}>
                                    {if $error }
                                        <span class="help-block">{$message}</span>
                                        {assign var="error_focus" value="true"}
                                    {/if}
                                </div>
                            </div><!--/.form-group-->
                        {/form_field}
                    </div>
                </fieldset>

            <div class="form-group group-info-mandatory">
                <div class="control-input col-xs-11 col-sm-9 col-xs-offset-1 col-md-offset-3">
                    {intl l="* Required fields"}
                </div>
            </div><!--/.form-group-->

                {form_field field="newsletter"}
                    <div class="form-group group-newsletter{if $error} has-error{/if}">
                        <div class="control-input col-xs-11 col-sm-9 col-xs-offset-1 col-md-offset-3">
                            <div class="checkbox">
                                <label class="control-label" for="{$label_attr.for}">
                                    <input type="checkbox" name="{$name}" id="{$label_attr.for}" value="{$value}"{if $checked} checked{/if}  {if $required} aria-required="true" required{/if}>{intl l="I subscribe to the newsletter to be informed of the latest news and tips"}
                                </label>
                                {if $error }
                                    <span class="help-block">{$message}</span>
                                {/if}
                            </div>
                        </div>
                    </div><!--/.form-group-->
                {/form_field}

                {hook name="register.form-bottom"}

                <div class="form-group group-btn">
                    <div class="control-btn col-sm-5 col-sm-offset-3">
                        <button type="submit" class="btn btn-primary"><i class="fa fa-chevron-right"></i> {intl l="Register"}</button>
                    </div>
                </div><!--/.form-group-->
            </form>
            {/form}

            {hook name="register.bottom"}
        </article>

    </div><!-- /.layout -->
{/block}


{block name="stylesheet"}
{hook name="register.stylesheet"}
{/block}

{block name="after-javascript-include"}
{hook name="register.after-javascript-include"}
{/block}

{block name="javascript-initialization"}
{hook name="register.javascript-initialization"}
{/block}

Et voilà !!!!

Offline


Bon, j'ai fait l'équivalent avec "CustomerProfileUpdateForm", mais ça ne marche pas !

Si j'ai bien compris, ça passe dans la même moulinette et ça devrait marcher, non ?

Offline