Announcement
- Index
- Thelia 2 - Section française
- Développement
- Case à cocher Reseller à l'inscription
#1 Case à cocher Reseller à l'inscription
(13-01-2023 10:38:41)
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.
#2 Re: Case à cocher Reseller à l'inscription
(13-01-2023 14:56:32)
Tu peux faire un override sur la form de creation de client pour ajouter le champ "reseller".
#3 Re: Case à cocher Reseller à l'inscription
(16-01-2023 13:58:54)
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)
#4 Re: Case à cocher Reseller à l'inscription
(16-01-2023 14:22:02)
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)
#5 Re: Case à cocher Reseller à l'inscription
(16-01-2023 16:13:06)
Bon, mon idée ne marche pas...
Je repars sur l'overridding !
#6 Re: Case à cocher Reseller à l'inscription
(16-01-2023 17:15:23)
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 !
#7 Re: Case à cocher Reseller à l'inscription
(16-01-2023 18:57:08)
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 :
#8 Re: Case à cocher Reseller à l'inscription
(17-01-2023 04:47:06)
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 ?
#10 Re: Case à cocher Reseller à l'inscription
(17-01-2023 18:11:57)
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.
#11 Re: Case à cocher Reseller à l'inscription
(17-01-2023 18:47:21)
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)
#12 Re: Case à cocher Reseller à l'inscription
(18-01-2023 10:02:30)
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à !!!!
#13 Re: Case à cocher Reseller à l'inscription
(18-01-2023 12:32:36)
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 ?
#14 Re: Case à cocher Reseller à l'inscription
(18-01-2023 14:36:14)
J'ai créé un nouveau sujet : https://forum.thelia.net/viewtopic.php?pid=79639#p79639
- Index
- Thelia 2 - Section française
- Développement
- Case à cocher Reseller à l'inscription