2种不同的帐户创建表单

时间:2017-05-30 08:57:14

标签: php smarty prestashop

我目前创建的2个登录模板/帐户创建完全不同。我的问题是,当我在新模板上提交创建帐户时,默认情况下会加载模板表单。

这是我的代码:

我使用模板authentification.tpl和这个。

我的新模板(authentication_bde.tpl)

{capture name=path}
    {if !isset($email_create)}{l s='Authentication BDE'}{else}
        <a href="{$link->getPageLink('authentication&bde=1', true)|escape:'html':'UTF-8'}" rel="nofollow"
           title="{l s='Authentication BDE'}">{l s='Authentication BDE'}</a>
        <span class="navigation-pipe">{$navigationPipe}</span>{l s='Create your account'}
    {/if}
{/capture}

{assign var='stateExist' value=false}
{assign var="postCodeExist" value=false}
{assign var="dniExist" value=false}
{if !isset($email_create)}
    <!--{if isset($authentification_error)}
    <div class="alert alert-danger">
        {if {$authentification_error|@count} == 1}
            <p>{l s='There\'s at least one error'} :</p>
            {else}
            <p>{l s='There are %s errors' sprintf=[$account_error|@count]} :</p>
        {/if}
        <ol>
            {foreach from=$authentification_error item=v}
                <li>{$v}</li>
            {/foreach}
        </ol>
    </div>
    {/if}-->

    <div class="row">
        {include file="$tpl_dir./errors.tpl"}
        <div class="col-xs-6 col-md-6">
            <h1 class="page-heading" id="connect_account_bde">{*{if !isset($email_create)}*}{l s='Connexion'}</h1>
            <form action="{$link->getPageLink('authentication&bde=1', true)|escape:'html':'UTF-8'}" method="post"
                  id="login_form" class="box">
                <div class="form_content clearfix">
                    <div class="form-group">
                        <label for="email">{l s='Entrez votre email :'}</label>
                        <input class="is_required validate account_input form-control" data-validate="isEmail"
                               type="email" id="email" name="email" placeholder="Ex: etudiant@email.fr"
                               value="{if isset($smarty.post.email)}{$smarty.post.email|stripslashes}{/if}"/>
                    </div>
                    <div class="form-group">
                        <label for="passwd">{l s='Votre mot de passe :'}</label>
                        <input class="is_required validate account_input form-control" type="password"
                               data-validate="isPasswd" id="passwd" name="passwd" value="" placeholder="*******"/>
                    </div>
                    <p class="lost_password form-group"><a
                                href="{$link->getPageLink('password')|escape:'html':'UTF-8'}"
                                title="{l s='Recover your forgotten password'}"
                                rel="nofollow">{l s='Mot de passe oublié ?'}</a></p>
                    <p class="submit">
                        {if isset($back)}<input type="hidden" class="hidden" name="back"
                                                value="{$back|escape:'html':'UTF-8'}" />{/if}
                        <button type="submit" id="SubmitLogin" name="SubmitLogin"
                                class="button btn btn-default button-medium">
                            <span>
                                {l s='valider'}
                            </span>
                        </button>
                    </p>
                </div>
            </form>
            {if isset($HOOK_CREATE_ACCOUNT_TOP) && $HOOK_CREATE_ACCOUNT_TOP}
                {$HOOK_CREATE_ACCOUNT_TOP}
            {/if}
            <h1 class="page-heading"
                id="create_account_bde">{*{if !isset($email_create)}*}{l s='créer un compte'}</h1>
            <form action="{$link->getPageLink('authentication&bde=1', true)|escape:'html':'UTF-8'}" method="post"
                  id="create-account_form_bde" class="box">
                <div class="form_content clearfix">
                    <div class="alert alert-danger" id="create_account_error" style="display:none"></div>
                    <div class="form-group">
                        <label for="email_create">{l s='Entrez votre email :'}</label>
                        <input type="email" class="is_required validate account_input form-control"
                               data-validate="isEmail" id="email_create" name="email_create"
                               value="{if isset($smarty.post.email_create)}{$smarty.post.email_create|stripslashes}{/if}"/>
                    </div>
                    <div class="submit">
                        {if isset($back)}<input type="hidden" class="hidden" name="back"
                                                value="{$back|escape:'html':'UTF-8'}" />{/if}
                        <button class="btn btn-default button button-medium exclusive" type="submit"
                                id="SubmitCreate" name="SubmitCreate">
                            <span>
                                {l s='valider'}
                            </span>
                        </button>
                        <input type="hidden" class="hidden" name="SubmitCreate" value="{l s='Create an account'}"/>
                    </div>
                </div>
            </form>
        </div>
        <div class="col-xs-6 col-md-6">
            {hook h=rightColumnConnect}
        </div>
    </div>
{else}
    <!--{if isset($account_error)}
    <div class="error">
        {if {$account_error|@count} == 1}
            <p>{l s='There\'s at least one error'} :</p>
            {else}
            <p>{l s='There are %s errors' sprintf=[$account_error|@count]} :</p>
        {/if}
        <ol>
            {foreach from=$account_error item=v}
                <li>{$v}</li>
            {/foreach}
        </ol>
    </div>
    {/if}-->
    {if $page_name == 'authentification_bde'}
    <form action="{$link->getPageLink('authentication&bde=1', true)|escape:'html':'UTF-8'}" method="post"
          id="account-creation_form_bde" class="form-horizontal std box">

        <h3 class="custom_title bottom-indent text-left">{l s='informations personnelles'}</h3>
        <p class="required"><sup>*</sup>{l s='Required field'}</p>
        <div class="account_creation_bde">
            <fieldset class="col-lg-offset-1">
                <div class="form-group radio_new_customer">
                    <label class="col-sm-4 text-right">{l s='Civilité'}</label>
                    {foreach from=$genders key=k item=gender}
                        <label for="id_gender{$gender->id}" class="top">
                            <input type="radio" name="id_gender" id="id_gender{$gender->id}" value="{$gender->id}"
                                   {if isset($smarty.post.id_gender) && $smarty.post.id_gender == $gender->id}checked="checked"{/if} />
                            {$gender->name}
                        </label>
                    {/foreach}
                </div>
                <div class="required form-group">
                    <label class="col-sm-4 text-right" for="customer_firstname">{l s='First name'}<sup>*</sup> :</label>
                    <input onkeyup="$('#firstname').val(this.value);" type="text"
                           class="col-sm-8 is_required validate form-control"
                           data-validate="isName" id="customer_firstname" name="customer_firstname"
                           value="{if isset($smarty.post.customer_firstname)}{$smarty.post.customer_firstname}{/if}"/>
                </div>
                <div class="required form-group">
                    <label class="col-sm-4 text-right" for="customer_lastname">{l s='Last name'}<sup>*</sup> :</label>
                    <input onkeyup="$('#lastname').val(this.value);" type="text"
                           class="col-sm-8 is_required validate form-control"
                           data-validate="isName" id="customer_lastname" name="customer_lastname"
                           value="{if isset($smarty.post.customer_lastname)}{$smarty.post.customer_lastname}{/if}"/>
                </div>
                <div class="required form-group">
                    <label class="col-sm-4 text-right" for="email">{l s='Email'}<sup>*</sup> :</label>
                    <input type="email" class="col-sm-8 is_required validate form-control" data-validate="isEmail"
                           id="email"
                           name="email" value="{if isset($smarty.post.email)}{$smarty.post.email}{/if}"/>
                </div>
                <div class="required password form-group">
                    <label class="col-sm-4 text-right" for="passwd">{l s='Password'}<sup>*</sup> :</label>
                    <input type="password" class="col-sm-8 is_required validate form-control" data-validate="isPasswd"
                           name="passwd"
                           id="passwd" placeholder="5 caractères minimum."/>
                </div>
                <div class="required password form-group">
                    <label class="col-sm-4 text-right" for="">{l s='Nom de votre établissement'}</label>
                    <input type="text" class="form-control col-sm-8" id="company" name="company"
                           value="{if isset($smarty.post.company)}{$smarty.post.company}{/if}"/>
                </div>
                {*{if isset($optin) && $optin}
                    <div class="checkbox">
                        <input type="checkbox" name="optin" id="optin"
                               value="1" {if isset($smarty.post.optin) AND $smarty.post.optin == 1} checked="checked"{/if} />
                        <label for="optin">{l s='Receive special offers from our partners!'}</label>
                        {if array_key_exists('optin', $field_required)}
                            <sup> *</sup>
                        {/if}
                    </div>
                {/if}*}
            </fieldset>
        </div>
        {if $b2b_enable}
            <div class="account_creation_bde">
                <h3 class="page-subheading">{l s='Your company information'}</h3>
                <p class="form-group">
                    <label for="">{l s='Company'}</label>
                    <input type="text" class="form-control" id="company" name="company"
                           value="{if isset($smarty.post.company)}{$smarty.post.company}{/if}"/>
                </p>
                <p class="form-group">
                    <label for="siret">{l s='SIRET'}</label>
                    <input type="text" class="form-control" id="siret" name="siret"
                           value="{if isset($smarty.post.siret)}{$smarty.post.siret}{/if}"/>
                </p>
                <p class="form-group">
                    <label for="ape">{l s='APE'}</label>
                    <input type="text" class="form-control" id="ape" name="ape"
                           value="{if isset($smarty.post.ape)}{$smarty.post.ape}{/if}"/>
                </p>
                <p class="form-group">
                    <label for="website">{l s='Website'}</label>
                    <input type="text" class="form-control" id="website" name="website"
                           value="{if isset($smarty.post.website)}{$smarty.post.website}{/if}"/>
                </p>
            </div>
        {/if}
        {if isset($PS_REGISTRATION_PROCESS_TYPE) && $PS_REGISTRATION_PROCESS_TYPE}
            <div class="account_creation_bde">
                <h3 class="page-subheading">{l s='Your address'}</h3>
                {foreach from=$dlv_all_fields item=field_name}
                    {if $field_name eq "company"}
                        {if !$b2b_enable}
                            <p class="form-group">
                                <label for="company">{l s='Company'}{if in_array($field_name, $required_fields)}
                                        <sup>*</sup>
                                    {/if}</label>
                                <input type="text" class="form-control" id="company" name="company"
                                       value="{if isset($smarty.post.company)}{$smarty.post.company}{/if}"/>
                            </p>
                        {/if}
                    {elseif $field_name eq "vat_number"}
                        <div id="vat_number" style="display:none;">
                            <p class="form-group">
                                <label for="vat_number">{l s='VAT number'}{if in_array($field_name, $required_fields)}
                                        <sup>*</sup>
                                    {/if}</label>
                                <input type="text" class="form-control" id="vat_number" name="vat_number"
                                       value="{if isset($smarty.post.vat_number)}{$smarty.post.vat_number}{/if}"/>
                            </p>
                        </div>
                    {elseif $field_name eq "firstname"}
                        <p class="required form-group">
                            <label for="firstname">{l s='First name'} <sup>*</sup></label>
                            <input type="text" class="form-control" id="firstname" name="firstname"
                                   value="{if isset($smarty.post.firstname)}{$smarty.post.firstname}{/if}"/>
                        </p>
                    {elseif $field_name eq "lastname"}
                        <p class="required form-group">
                            <label for="lastname">{l s='Last name'} <sup>*</sup></label>
                            <input type="text" class="form-control" id="lastname" name="lastname"
                                   value="{if isset($smarty.post.lastname)}{$smarty.post.lastname}{/if}"/>
                        </p>
                    {elseif $field_name eq "address1"}
                        <p class="required form-group">
                            <label for="address1">{l s='Address'} <sup>*</sup></label>
                            <input type="text" class="form-control" name="address1" id="address1"
                                   value="{if isset($smarty.post.address1)}{$smarty.post.address1}{/if}"/>
                            <span class="inline-infos">{l s='Street address, P.O. Box, Company name, etc.'}</span>
                        </p>
                    {elseif $field_name eq "address2"}
                        <p class="form-group is_customer_param">
                            <label for="address2">{l s='Address (Line 2)'}{if in_array($field_name, $required_fields)}
                                    <sup>*</sup>
                                {/if}</label>
                            <input type="text" class="form-control" name="address2" id="address2"
                                   value="{if isset($smarty.post.address2)}{$smarty.post.address2}{/if}"/>
                            <span class="inline-infos">{l s='Apartment, suite, unit, building, floor, etc...'}</span>
                        </p>
                    {elseif $field_name eq "postcode"}
                        {assign var='postCodeExist' value=true}
                        <p class="required postcode form-group">
                            <label for="postcode">{l s='Zip/Postal Code'} <sup>*</sup></label>
                            <input type="text" class="validate form-control" name="postcode" id="postcode"
                                   data-validate="isPostCode"
                                   value="{if isset($smarty.post.postcode)}{$smarty.post.postcode}{/if}"/>
                        </p>
                    {elseif $field_name eq "city"}
                        <p class="required form-group">
                            <label for="city">{l s='City'} <sup>*</sup></label>
                            <input type="text" class="form-control" name="city" id="city"
                                   value="{if isset($smarty.post.city)}{$smarty.post.city}{/if}"/>
                        </p>
                        <!-- if customer hasn't update his layout address, country has to be verified but it's deprecated -->
                    {elseif $field_name eq "Country:name" || $field_name eq "country"}
                        <p class="required select form-group">
                            <label for="id_country">{l s='Country'} <sup>*</sup></label>
                            <select name="id_country" id="id_country" class="form-control">
                                <option value="">-</option>
                                {foreach from=$countries item=v}
                                    <option value="{$v.id_country}"{if (isset($smarty.post.id_country) AND $smarty.post.id_country == $v.id_country) OR (!isset($smarty.post.id_country) && $sl_country == $v.id_country)} selected="selected"{/if}>{$v.name}</option>
                                {/foreach}
                            </select>
                        </p>
                    {elseif $field_name eq "State:name" || $field_name eq 'state'}
                        {assign var='stateExist' value=true}
                        <p class="required id_state select form-group">
                            <label for="id_state">{l s='State'} <sup>*</sup></label>
                            <select name="id_state" id="id_state" class="form-control">
                                <option value="">-</option>
                            </select>
                        </p>
                    {/if}
                {/foreach}
                {if $postCodeExist eq false}
                    <p class="required postcode form-group unvisible">
                        <label for="postcode">{l s='Zip/Postal Code'} <sup>*</sup></label>
                        <input type="text" class="validate form-control" name="postcode" id="postcode"
                               data-validate="isPostCode"
                               value="{if isset($smarty.post.postcode)}{$smarty.post.postcode}{/if}"/>
                    </p>
                {/if}
                {if $stateExist eq false}
                    <p class="required id_state select unvisible form-group">
                        <label for="id_state">{l s='State'} <sup>*</sup></label>
                        <select name="id_state" id="id_state" class="form-control">
                            <option value="">-</option>
                        </select>
                    </p>
                {/if}
                <p class="textarea form-group">
                    <label for="other">{l s='Additional information'}</label>
                    <textarea class="form-control" name="other" id="other" cols="26"
                              rows="3">{if isset($smarty.post.other)}{$smarty.post.other}{/if}</textarea>
                </p>
                <p class="form-group">
                    <label for="phone">{l s='Home phone'}{if isset($one_phone_at_least) && $one_phone_at_least}
                            <sup>**</sup>
                        {/if}</label>
                    <input type="text" class="form-control" name="phone" id="phone"
                           value="{if isset($smarty.post.phone)}{$smarty.post.phone}{/if}"/>
                </p>
                <p class="{if isset($one_phone_at_least) && $one_phone_at_least}required {/if}form-group">
                    <label for="phone_mobile">{l s='Mobile phone'}{if isset($one_phone_at_least) && $one_phone_at_least}
                            <sup>**</sup>
                        {/if}</label>
                    <input type="text" class="form-control" name="phone_mobile" id="phone_mobile"
                           value="{if isset($smarty.post.phone_mobile)}{$smarty.post.phone_mobile}{/if}"/>
                </p>
                {if isset($one_phone_at_least) && $one_phone_at_least}
                    {assign var="atLeastOneExists" value=true}
                    <p class="inline-infos required">** {l s='You must register at least one phone number.'}</p>
                {/if}
                <p class="required form-group" id="address_alias">
                    <label for="alias">{l s='Assign an address alias for future reference.'} <sup>*</sup></label>
                    <input type="text" class="form-control" name="alias" id="alias"
                           value="{if isset($smarty.post.alias)}{$smarty.post.alias}{else}{l s='My address'}{/if}"/>
                </p>
            </div>
            <div class="account_creation_bde dni">
                <h3 class="page-subheading">{l s='Tax identification'}</h3>
                <p class="required form-group">
                    <label for="dni">{l s='Identification number'} <sup>*</sup></label>
                    <input type="text" class="form-control" name="dni" id="dni"
                           value="{if isset($smarty.post.dni)}{$smarty.post.dni}{/if}"/>
                    <span class="form_info">{l s='DNI / NIF / NIE'}</span>
                </p>
            </div>
        {/if}
        <div style="text-align: center;margin-left: 15px;" class="submit clearfix">
            <input type="hidden" name="email_create" value="1"/>
            <input type="hidden" name="is_new_customer" value="1"/>
            {if isset($back)}<input type="hidden" class="hidden" name="back"
                                    value="{$back|escape:'html':'UTF-8'}" />{/if}
            <button type="submit" name="submitAccount" id="submitAccount" class="btn btn-default button button-medium">
                <span>{l s='Register'}</span>
            </button>
            {*<p class="pull-right required"><span><sup>*</sup>{l s='Required field'}</span></p>*}
        </div>
    </form>
        {/if}
{/if}

我的控制器AuthController.php

public function initContent()
{
    // Just set $this->template value here in case it's used by Ajax
    $page_name = 'authentication_bde';
    if (Tools::getValue('bde')) {
        $this->setTemplate(_PS_THEME_DIR_ . 'authentication_bde.tpl');
        $this->context->smarty->assign('page_name', $page_name);
    } else {
        $this->setTemplate(_PS_THEME_DIR_ . 'authentication.tpl');
    }

}

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

由于存在删除bde参数的重定向,因此您应该更改后处理方法以在重定向期间保留此参数。