[*] BO : Modules can now be authorized or not by client group

git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@9108 b9a71923-0436-4b27-9f14-aed3839534dd
This commit is contained in:
vChabot
2011-10-06 15:22:25 +00:00
parent 40d0463987
commit 4134ed3f5d
8 changed files with 975 additions and 261 deletions
+160 -3
View File
@@ -65,7 +65,7 @@ class AdminGroups extends AdminTab
$categories = Category::getSimpleCategories($this->context->language->id);
echo '
<form action="'.self::$currentIndex.'&submitAdd'.$this->table.'=1&token='.$this->token.'" method="post">
<form id="group" action="'.self::$currentIndex.'&submitAdd'.$this->table.'=1&token='.$this->token.'" method="post">
'.($obj->id ? '<input type="hidden" name="id_'.$this->table.'" value="'.$obj->id.'" />' : '').'
<fieldset><legend><img src="../img/admin/tab-groups.gif" />'.$this->l('Group').'</legend>
<label>'.$this->l('Name:').' </label>
@@ -130,11 +130,14 @@ class AdminGroups extends AdminTab
$this->displayAssoShop('group_shop');
echo '</div>';
}
echo '<div class="margin-form">
<input type="submit" value="'.$this->l(' Save ').'" name="submitAdd'.$this->table.'" class="button" />
</div>
<div class="small"><sup>*</sup> '.$this->l('Required field').'</div>
</fieldset>
</fieldset>';
$this->displayFormRestrictions($obj->id);
echo '
</form><br />';
if ($obj->id)
@@ -163,9 +166,142 @@ class AdminGroups extends AdminTab
<div class="small"><sup>*</sup> '.$this->l('Required field').'</div>
</fieldset>
</form>';
}
}
/**
* display form client groups restrictions
*/
protected function displayFormRestrictions($id = false)
{
$modules = Module::getModulesInstalled();
$authorized_modules = '';
$auth_modules = array();
$unauth_modules = array();
if ($id)
$authorized_modules = Module::getAuthorizedModules($id);
else
$id = '';
if (is_array($authorized_modules))
{
foreach ($modules as $module)
{
$authorized = false;
foreach ($authorized_modules as $auth_module)
if ($module['name'] == $auth_module['name'])
$authorized = true;
if ($authorized)
$auth_modules[] = $module;
else
$unauth_modules[] = $module;
}
}
else
$auth_modules = $modules;
echo '
<br />
<script type="text/javascript" language="javascript">
$(document).ready(function(){
$(\'#addRestrictions\').click(function() {
return !$(\'#selectRestrictions1 option:selected\').remove().appendTo(\'#selectRestrictions2\');
});
$(\'#removeRestrictions\').click(function() {
return !$(\'#selectRestrictions2 option:selected\').remove().appendTo(\'#selectRestrictions1\');
});
$(\'#group\').submit(function() {
$(\'#selectRestrictions1 option\').each(function(i) {
$(this).attr("selected", "selected");
});
$(\'#selectRestrictions2 option\').each(function(i) {
$(this).attr("selected", "selected");
});
});
$(\'#restriction\').submit(function() {
$(\'#selectRestrictions1 option\').each(function(i) {
$(this).attr("selected", "selected");
});
$(\'#selectRestrictions2 option\').each(function(i) {
$(this).attr("selected", "selected");
});
});
$(\'#selectAll1\').click(function() {
if ($(\'#selectRestrictions1 option:selected\').size() != $(\'#selectRestrictions1 option\').size())
{
$(\'#selectRestrictions1 option\').attr(\'selected\', \'selected\');
$(this).text(\''.$this->l('Unselect All', get_class($this), false, false).'\');
}
else
{
$(\'#selectRestrictions1 option\').removeAttr(\'selected\');
$(this).text(\''.$this->l('Select All', get_class($this), false, false).'\');
}
return false;
});
$(\'#selectAll2\').click(function() {
if ($(\'#selectRestrictions2 option:selected\').size() != $(\'#selectRestrictions2 option\').size())
{
$(\'#selectRestrictions2 option\').attr(\'selected\', \'selected\');
$(this).text(\''.$this->l('Unselect All', get_class($this), false, false).'\');
}
else
{
$(\'#selectRestrictions2 option\').removeAttr(\'selected\');
$(this).text(\''.$this->l('Select All', get_class($this), false, false).'\');
}
return false;
});
});
</script>
<fieldset><legend><img src="../img/admin/access.png" />'.$this->l('Modules restrictions').'</legend>
<table class="margin-form">
<tr>
<td>
<p>'.$this->l('Unauthorized modules:').'</p>
<select multiple id="selectRestrictions1" name="unauthorized_modules[]" style="width:300px;height:160px;">';
foreach ($unauth_modules as $module)
{
$module = Module::getInstanceById($module['id_module']);
echo ' <option value="'.$module->name.'">'.Tools::htmlentitiesUTF8($module->displayName).'</option>';
}
echo ' </select><br /><br />
<a href="#" id="selectAll1" style="text-align:center;display:block;border:1px solid #aaa;text-decoration:none;background-color:#fafafa;color:#123456;margin:2px;padding:2px">
'.$this->l('Select All').'
</a>
<a href="#" id="addRestrictions" style="text-align:center;display:block;border:1px solid #aaa;text-decoration:none;background-color:#fafafa;color:#123456;margin:2px;padding:2px">
'.$this->l('Authorize').' &gt;&gt;
</a>
</td>
<td style="padding-left:20px;">
<p>'.$this->l('Authorized modules:').'</p>
<select multiple id="selectRestrictions2" name="authorized_modules[]" style="width:300px;height:160px;">';
foreach ($auth_modules as $module)
{
$module = Module::getInstanceById($module['id_module']);
echo ' <option value="'.$module->name.'">'.Tools::htmlentitiesUTF8($module->displayName).'</option>';
}
echo ' </select><br /><br />
<a href="#" id="selectAll2" style="text-align:center;display:block;border:1px solid #aaa;text-decoration:none;background-color:#fafafa;color:#123456;margin:2px;padding:2px">
'.$this->l('Select All').'
</a>
<a href="#" id="removeRestrictions" style="text-align:center;display:block;border:1px solid #aaa;text-decoration:none;background-color:#fafafa;color:#123456;margin:2px;padding:2px">
&lt;&lt; '.$this->l('Unauthorize').'
</a>
</div>
</td>
</tr>
</table>
<div class="clear">&nbsp;</div>
<div class="margin-form">
<input type="submit" name="submitRestrictions" id="submitRestrictions" value="'.$this->l('Update restrictions').'" class="button" />
</div>
</fieldset>';
}
public function viewgroup()
{
$this->context = Context::getContext();
@@ -334,6 +470,12 @@ class AdminGroups extends AdminTab
else
$this->_errors[] = Tools::displayError('You do not have permission to add here.');
}
if (Tools::isSubmit('submitRestrictions'))
{
$this->updateRestrictions();
}
if (Tools::isSubmit('submitAddgroup'))
{
if ($this->tabAccess['add'] === '1')
@@ -359,7 +501,7 @@ class AdminGroups extends AdminTab
$this->_errors[] = Tools::displayError('Cannot update group reductions');
}
}
if (!sizeof($this->_errors))
if (!count($this->_errors))
parent::postProcess();
}
}
@@ -390,4 +532,19 @@ class AdminGroups extends AdminTab
else
parent::postProcess();
}
/**
* Update (or create) restrictions for modules by group
*/
protected function updateRestrictions()
{
$id_group = Tools::getValue('id_group');
$unauth_modules = Tools::getValue('unauthorized_modules');
$auth_modules = Tools::getValue('authorized_modules');
Group::truncateModulesRestrictions($id_group);
if (is_array($auth_modules))
Group::addModulesRestrictions($id_group, $auth_modules, 1);
if (is_array($unauth_modules))
Group::addModulesRestrictions($id_group, $unauth_modules, 0);
}
}
+512
View File
@@ -0,0 +1,512 @@
{*
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2011 PrestaShop SA
* @version Release: $Revision: 7471 $
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*}
{*
** Compatibility code for Prestashop older than 1.4.2 using a recent theme
** Ignore list isn't require here
** $address exist in every PrestaShop version
*}
{* Will be deleted for 1.5 version and more *}
{* Smarty code compatibility v2 *}
{* If ordered_adr_fields doesn't exist, it's a PrestaShop older than 1.4.2 *}
{if !isset($dlv_all_fields)}
{$dlv_all_fields.0 = 'company'}
{$dlv_all_fields.1 = 'firstname'}
{$dlv_all_fields.2 = 'lastname'}
{$dlv_all_fields.3 = 'address1'}
{$dlv_all_fields.4 = 'address2'}
{$dlv_all_fields.5 = 'postcode'}
{$dlv_all_fields.6 = 'city'}
{$dlv_all_fields.7 = 'country'}
{$dlv_all_fields.8 = 'state'}
{/if}
{capture name=path}{l s='Login'}{/capture}
{include file="$tpl_dir./breadcrumb.tpl"}
<script type="text/javascript">
// <![CDATA[
idSelectedCountry = {if isset($smarty.post.id_state)}{$smarty.post.id_state|intval}{else}false{/if};
countries = new Array();
countriesNeedIDNumber = new Array();
countriesNeedZipCode = new Array();
{if isset($countries)}
{foreach from=$countries item='country'}
{if isset($country.states) && $country.contains_states}
countries[{$country.id_country|intval}] = new Array();
{foreach from=$country.states item='state' name='states'}
countries[{$country.id_country|intval}].push({ldelim}'id' : '{$state.id_state}', 'name' : '{$state.name|escape:'htmlall':'UTF-8'}'{rdelim});
{/foreach}
{/if}
{if $country.need_identification_number}
countriesNeedIDNumber.push({$country.id_country|intval});
{/if}
{if isset($country.need_zip_code)}
countriesNeedZipCode[{$country.id_country|intval}] = {$country.need_zip_code};
{/if}
{/foreach}
{/if}
$(function(){ldelim}
$('.id_state option[value={if isset($smarty.post.id_state)}{$smarty.post.id_state}{else}{if isset($address)}{$address->id_state|escape:'htmlall':'UTF-8'}{/if}{/if}]').attr('selected', 'selected');
{rdelim});
//]]>
{if $vat_management}
{literal}
$(document).ready(function() {
$('#company').blur(function(){
vat_number();
});
vat_number();
function vat_number()
{
if ($('#company').val() != '')
$('#vat_number').show();
else
$('#vat_number').hide();
}
});
{/literal}
{/if}
</script>
<h1>{if !isset($email_create)}{l s='Log in'}{else}{l s='Create your account'}{/if}</h1>
{assign var='current_step' value='login'}
{include file="$tpl_dir./order-steps.tpl"}
{include file="$tpl_dir./errors.tpl"}
{assign var='stateExist' value=false}
{if !isset($email_create)}
<form action="{$link->getPageLink('authentication', true)}" method="post" id="create-account_form" class="std">
<fieldset>
<h3>{l s='Create your account'}</h3>
<h4>{l s='Enter your e-mail address to create an account'}.</h4>
<p class="text">
<label for="email_create">{l s='E-mail address'}</label>
<span><input type="text" id="email_create" name="email_create" value="{if isset($smarty.post.email_create)}{$smarty.post.email_create|escape:'htmlall':'UTF-8'|stripslashes}{/if}" class="account_input" /></span>
</p>
<p class="submit">
{if isset($back)}<input type="hidden" class="hidden" name="back" value="{$back|escape:'htmlall':'UTF-8'}" />{/if}
<input type="submit" id="SubmitCreate" name="SubmitCreate" class="button_large" value="{l s='Create your account'}" />
<input type="hidden" class="hidden" name="SubmitCreate" value="{l s='Create your account'}" />
</p>
</fieldset>
</form>
<form action="{$link->getPageLink('authentication', true)}" method="post" id="login_form" class="std">
<fieldset>
<h3>{l s='Already registered ?'}</h3>
<p class="text">
<label for="email">{l s='E-mail address'}</label>
<span><input type="text" id="email" name="email" value="{if isset($smarty.post.email)}{$smarty.post.email|escape:'htmlall':'UTF-8'|stripslashes}{/if}" class="account_input" /></span>
</p>
<p class="text">
<label for="passwd">{l s='Password'}</label>
<span><input type="password" id="passwd" name="passwd" value="{if isset($smarty.post.passwd)}{$smarty.post.passwd|escape:'htmlall':'UTF-8'|stripslashes}{/if}" class="account_input" /></span>
</p>
<p class="submit">
{if isset($back)}<input type="hidden" class="hidden" name="back" value="{$back|escape:'htmlall':'UTF-8'}" />{/if}
<input type="submit" id="SubmitLogin" name="SubmitLogin" class="button" value="{l s='Log in'}" />
</p>
<p class="lost_password"><a href="{$link->getPageLink('password')}">{l s='Forgot your password?'}</a></p>
</fieldset>
</form>
{if isset($inOrderProcess) && $inOrderProcess && $PS_GUEST_CHECKOUT_ENABLED}
<form action="{$link->getPageLink('authentication', true, NULL, "back=$back")}" method="post" id="new_account_form" class="std">
<fieldset>
<h3>{l s='Instant Checkout'}</h3>
<div id="opc_account_form" style="display: block; ">
<!-- Account -->
<p class="required text">
<label for="email">{l s='E-mail address'}</label>
<input type="text" class="text" id="guest_email" name="guest_email" value="{if isset($smarty.post.guest_email)}{$smarty.post.guest_email}{/if}">
<sup>*</sup>
</p>
<p class="radio required">
<span>{l s='Title'}</span>
{foreach from=$genders key=k item=gender}
<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} />
<label for="id_gender{$gender->id}" class="top">{$gender->name}</label>
{/foreach}
</p>
<p class="required text">
<label for="firstname">{l s='First name'}</label>
<input type="text" class="text" id="firstname" name="firstname" onblur="$('#customer_firstname').val($(this).val());" value="{if isset($smarty.post.firstname)}{$smarty.post.firstname}{/if}">
<input type="hidden" class="text" id="customer_firstname" name="customer_firstname" value="{if isset($smarty.post.firstname)}{$smarty.post.firstname}{/if}">
<sup>*</sup>
</p>
<p class="required text">
<label for="lastname">{l s='Last name'}</label>
<input type="text" class="text" id="lastname" name="lastname" onblur="$('#customer_lastname').val($(this).val());" value="{if isset($smarty.post.lastname)}{$smarty.post.lastname}{/if}">
<input type="hidden" class="text" id="customer_lastname" name="customer_lastname" value="{if isset($smarty.post.lastname)}{$smarty.post.lastname}{/if}">
<sup>*</sup>
</p>
<p class="select">
<span>{l s='Date of Birth'}</span>
<select id="days" name="days">
<option value="">-</option>
{foreach from=$days item=day}
<option value="{$day|escape:'htmlall':'UTF-8'}" {if ($sl_day == $day)} selected="selected"{/if}>{$day|escape:'htmlall':'UTF-8'}&nbsp;&nbsp;</option>
{/foreach}
</select>
{*
{l s='January'}
{l s='February'}
{l s='March'}
{l s='April'}
{l s='May'}
{l s='June'}
{l s='July'}
{l s='August'}
{l s='September'}
{l s='October'}
{l s='November'}
{l s='December'}
*}
<select id="months" name="months">
<option value="">-</option>
{foreach from=$months key=k item=month}
<option value="{$k|escape:'htmlall':'UTF-8'}" {if ($sl_month == $k)} selected="selected"{/if}>{l s="$month"}&nbsp;</option>
{/foreach}
</select>
<select id="years" name="years">
<option value="">-</option>
{foreach from=$years item=year}
<option value="{$year|escape:'htmlall':'UTF-8'}" {if ($sl_year == $year)} selected="selected"{/if}>{$year|escape:'htmlall':'UTF-8'}&nbsp;&nbsp;</option>
{/foreach}
</select>
</p>
{if isset($newsletter) && $newsletter}
<p class="checkbox">
<input type="checkbox" name="newsletter" id="newsletter" value="1" {if isset($smarty.post.newsletter) && $smarty.post.newsletter == '1'}checked="checked"{/if}>
<label for="newsletter">{l s='Sign up for our newsletter'}</label>
</p>
<p class="checkbox">
<input type="checkbox" name="optin" id="optin" value="1" {if isset($smarty.post.optin) && $smarty.post.optin == '1'}checked="checked"{/if}>
<label for="optin">{l s='Receive special offers from our partners'}</label>
</p>
{/if}
<h3>{l s='Delivery address'}</h3>
{foreach from=$dlv_all_fields item=field_name}
{if $field_name eq "company"}
<p class="text">
<label for="company">{l s='Company'}</label>
<input type="text" class="text" id="company" name="company" value="{if isset($smarty.post.company)}{$smarty.post.company}{/if}" />
</p>
{elseif $field_name eq "vat_number"}
<div id="vat_number" style="display:none;">
<p class="text">
<label for="vat_number">{l s='VAT number'}</label>
<input type="text" class="text" name="vat_number" value="{if isset($smarty.post.vat_number)}{$smarty.post.vat_number}{/if}" />
</p>
</div>
{elseif $field_name eq "address1"}
<p class="required text">
<label for="address1">{l s='Address'}</label>
<input type="text" class="text" name="address1" id="address1" value="{if isset($smarty.post.address1)}{$smarty.post.address1}{/if}">
<sup>*</sup>
</p>
{elseif $field_name eq "postcode"}
<p class="required postcode text">
<label for="postcode">{l s='Zip / Postal Code'}</label>
<input type="text" class="text" name="postcode" id="postcode" value="{if isset($smarty.post.postcode)}{$smarty.post.postcode}{/if}" onblur="$('#postcode').val($('#postcode').val().toUpperCase());">
<sup>*</sup>
</p>
{elseif $field_name eq "city"}
<p class="required text">
<label for="city">{l s='City'}</label>
<input type="text" class="text" name="city" id="city" value="{if isset($smarty.post.city)}{$smarty.post.city}{/if}">
<sup>*</sup>
</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">
<label for="id_country">{l s='Country'}</label>
<select name="id_country" id="id_country">
<option value="">-</option>
{foreach from=$countries item=v}
<option value="{$v.id_country}" {if ($sl_country == $v.id_country)} selected="selected"{/if}>{$v.name|escape:'htmlall':'UTF-8'}</option>
{/foreach}
</select>
<sup>*</sup>
</p>
{elseif $field_name eq "State:name" || $field_name eq 'state'}
{assign var='stateExist' value=true}
<p class="required id_state select">
<label for="id_state">{l s='State'}</label>
<select name="id_state" id="id_state">
<option value="">-</option>
</select>
<sup>*</sup>
</p>
{elseif $field_name eq "phone"}
<p class="text">
<label for="phone">{l s='Phone'}</label>
<input type="text" class="text" name="phone" id="phone" value="{if isset($smarty.post.phone)}{$smarty.post.phone}{/if}"> <sup style="color:red;">*</sup>
</p>
{/if}
{/foreach}
{if $stateExist eq false}
<p class="required id_state select">
<label for="id_state">{l s='State'}</label>
<select name="id_state" id="id_state">
<option value="">-</option>
</select>
<sup>*</sup>
</p>
{/if}
<input type="hidden" name="alias" id="alias" value="{l s='My address'}">
<input type="hidden" name="is_new_customer" id="is_new_customer" value="0">
<!-- END Account -->
</div>
</fieldset>
<fieldset class="account_creation dni">
<h3>{l s='Tax identification'}</h3>
<p class="required text">
<label for="dni">{l s='Identification number'}</label>
<input type="text" class="text" name="dni" id="dni" value="{if isset($smarty.post.dni)}{$smarty.post.dni}{/if}" />
<span class="form_info">{l s='DNI / NIF / NIE'}</span>
<sup>*</sup>
</p>
</fieldset>
<p class="cart_navigation required submit">
<span><sup>*</sup>{l s='Required field'}</span>
<input type="submit" class="button" name="submitGuestAccount" id="submitGuestAccount" style="float:right" value="{l s='Continue'}">
</p>
</form>
{/if}
{else}
<form action="{$link->getPageLink('authentication', true)}" method="post" id="account-creation_form" class="std">
{$HOOK_CREATE_ACCOUNT_TOP}
<fieldset class="account_creation">
<h3>{l s='Your personal information'}</h3>
<p class="radio required">
<span>{l s='Title'}</span>
{foreach from=$genders key=k item=gender}
<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} />
<label for="id_gender{$gender->id}" class="top">{$gender->name}</label>
{/foreach}
</p>
<p class="required text">
<label for="customer_firstname">{l s='First name'}</label>
<input onkeyup="$('#firstname').val(this.value);" type="text" class="text" id="customer_firstname" name="customer_firstname" value="{if isset($smarty.post.customer_firstname)}{$smarty.post.customer_firstname}{/if}" />
<sup>*</sup>
</p>
<p class="required text">
<label for="customer_lastname">{l s='Last name'}</label>
<input onkeyup="$('#lastname').val(this.value);" type="text" class="text" id="customer_lastname" name="customer_lastname" value="{if isset($smarty.post.customer_lastname)}{$smarty.post.customer_lastname}{/if}" />
<sup>*</sup>
</p>
<p class="required text">
<label for="email">{l s='E-mail'}</label>
<input type="text" class="text" id="email" name="email" value="{if isset($smarty.post.email)}{$smarty.post.email}{/if}" />
<sup>*</sup>
</p>
<p class="required password">
<label for="passwd">{l s='Password'}</label>
<input type="password" class="text" name="passwd" id="passwd" />
<sup>*</sup>
<span class="form_info">{l s='(5 characters min.)'}</span>
</p>
<p class="select">
<span>{l s='Date of Birth'}</span>
<select id="days" name="days">
<option value="">-</option>
{foreach from=$days item=day}
<option value="{$day|escape:'htmlall':'UTF-8'}" {if ($sl_day == $day)} selected="selected"{/if}>{$day|escape:'htmlall':'UTF-8'}&nbsp;&nbsp;</option>
{/foreach}
</select>
{*
{l s='January'}
{l s='February'}
{l s='March'}
{l s='April'}
{l s='May'}
{l s='June'}
{l s='July'}
{l s='August'}
{l s='September'}
{l s='October'}
{l s='November'}
{l s='December'}
*}
<select id="months" name="months">
<option value="">-</option>
{foreach from=$months key=k item=month}
<option value="{$k|escape:'htmlall':'UTF-8'}" {if ($sl_month == $k)} selected="selected"{/if}>{l s="$month"}&nbsp;</option>
{/foreach}
</select>
<select id="years" name="years">
<option value="">-</option>
{foreach from=$years item=year}
<option value="{$year|escape:'htmlall':'UTF-8'}" {if ($sl_year == $year)} selected="selected"{/if}>{$year|escape:'htmlall':'UTF-8'}&nbsp;&nbsp;</option>
{/foreach}
</select>
</p>
{if isset($newsletter) && $newsletter}
<p class="checkbox" >
<input type="checkbox" name="newsletter" id="newsletter" value="1" {if isset($smarty.post.newsletter) AND $smarty.post.newsletter == 1} checked="checked"{/if} />
<label for="newsletter">{l s='Sign up for our newsletter'}</label>
</p>
<p 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>
</p>
{/if}
</fieldset>
{if isset($PS_REGISTRATION_PROCESS_TYPE) && $PS_REGISTRATION_PROCESS_TYPE}
<fieldset class="account_creation">
<h3>{l s='Your address'}</h3>
{foreach from=$dlv_all_fields item=field_name}
{if $field_name eq "company"}
<p class="text">
<label for="company">{l s='Company'}</label>
<input type="text" class="text" id="company" name="company" value="{if isset($smarty.post.company)}{$smarty.post.company}{/if}" />
</p>
{elseif $field_name eq "vat_number"}
<div id="vat_number" style="display:none;">
<p class="text">
<label for="vat_number">{l s='VAT number'}</label>
<input type="text" class="text" 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 text">
<label for="firstname">{l s='First name'}</label>
<input type="text" class="text" id="firstname" name="firstname" value="{if isset($smarty.post.firstname)}{$smarty.post.firstname}{/if}" />
<sup>*</sup>
</p>
{elseif $field_name eq "lastname"}
<p class="required text">
<label for="lastname">{l s='Last name'}</label>
<input type="text" class="text" id="lastname" name="lastname" value="{if isset($smarty.post.lastname)}{$smarty.post.lastname}{/if}" />
<sup>*</sup>
</p>
{elseif $field_name eq "address1"}
<p class="required text">
<label for="address1">{l s='Address'}</label>
<input type="text" class="text" name="address1" id="address1" value="{if isset($smarty.post.address1)}{$smarty.post.address1}{/if}" />
<sup>*</sup>
<span class="inline-infos">{l s='Street address, P.O. box, company name, c/o'}</span>
</p>
{elseif $field_name eq "address2"}
<p class="text">
<label for="address2">{l s='Address (Line 2)'}</label>
<input type="text" class="text" 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"}
<p class="required postcode text">
<label for="postcode">{l s='Zip / Postal Code'}</label>
<input type="text" class="text" name="postcode" id="postcode" value="{if isset($smarty.post.postcode)}{$smarty.post.postcode}{/if}" onkeyup="$('#postcode').val($('#postcode').val().toUpperCase());" />
<sup>*</sup>
</p>
{elseif $field_name eq "city"}
<p class="required text">
<label for="city">{l s='City'}</label>
<input type="text" class="text" name="city" id="city" value="{if isset($smarty.post.city)}{$smarty.post.city}{/if}" />
<sup>*</sup>
</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">
<label for="id_country">{l s='Country'}</label>
<select name="id_country" id="id_country">
<option value="">-</option>
{foreach from=$countries item=v}
<option value="{$v.id_country}" {if ($sl_country == $v.id_country)} selected="selected"{/if}>{$v.name|escape:'htmlall':'UTF-8'}</option>
{/foreach}
</select>
<sup>*</sup>
</p>
{elseif $field_name eq "State:name" || $field_name eq 'state'}
{assign var='stateExist' value=true}
<p class="required id_state select">
<label for="id_state">{l s='State'}</label>
<select name="id_state" id="id_state">
<option value="">-</option>
</select>
<sup>*</sup>
</p>
{/if}
{/foreach}
{if $stateExist eq false}
<p class="required id_state select">
<label for="id_state">{l s='State'}</label>
<select name="id_state" id="id_state">
<option value="">-</option>
</select>
<sup>*</sup>
</p>
{/if}
<p class="textarea">
<label for="other">{l s='Additional information'}</label>
<textarea name="other" id="other" cols="26" rows="3">{if isset($smarty.post.other)}{$smarty.post.other}{/if}</textarea>
</p>
<p style="margin-left:50px;">{l s='You must register at least one phone number'} <sup style="color:red;">*</sup></p>
<p class="text">
<label for="phone">{l s='Home phone'}</label>
<input type="text" class="text" name="phone" id="phone" value="{if isset($smarty.post.phone)}{$smarty.post.phone}{/if}" />
</p>
<p class="text">
<label for="phone_mobile">{l s='Mobile phone'}</label>
<input type="text" class="text" name="phone_mobile" id="phone_mobile" value="{if isset($smarty.post.phone_mobile)}{$smarty.post.phone_mobile}{/if}" />
</p>
<p class="required text" id="address_alias">
<label for="alias">{l s='Assign an address title for future reference'} </label>
<input type="text" class="text" name="alias" id="alias" value="{if isset($smarty.post.alias)}{$smarty.post.alias}{else}{l s='My address'}{/if}" />
<sup>*</sup>
</p>
</fieldset>
<fieldset class="account_creation dni">
<h3>{l s='Tax identification'}</h3>
<p class="required text">
<label for="dni">{l s='Identification number'}</label>
<input type="text" class="text" name="dni" id="dni" value="{if isset($smarty.post.dni)}{$smarty.post.dni}{/if}" />
<span class="form_info">{l s='DNI / NIF / NIE'}</span>
<sup>*</sup>
</p>
</fieldset>
{/if}
{$HOOK_CREATE_ACCOUNT_FORM}
<p class="cart_navigation required submit">
<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:'htmlall':'UTF-8'}" />{/if}
<input type="submit" name="submitAccount" id="submitAccount" value="{l s='Register'}" class="exclusive" />
<span><sup>*</sup>{l s='Required field'}</span>
</p>
</form>
{/if}