2017-01-26 13 views
0

Я пытаюсь изменить порядок полей формы в адресной форме MyAccount> (в переднем конце) в prestashop 1.6.prestashop 1.6 - изменить порядок адресов моего поля

Я обновил шаблон на /themes/mytheme/address.tpl и переехал в страну над городом (это все, что я хочу сделать), но при обновлении страницы не похоже на работу.

Я попытался удалить файлы кеша в каталоге/cache, но ничего не изменил.

Итак, вы должны действовать, когда хотите поле страны до поля города?

В принципе, я изменил этот код:

{if $field_name eq 'city'} 
     <div class="required form-group"> 
      <label for="city">{l s='City'} <sup>*</sup></label> 
      <input class="is_required validate form-control" data-validate="{$address_validation.$field_name.validate}" type="text" name="city" id="city" value="{if isset($smarty.post.city)}{$smarty.post.city}{else}{if isset($address->city)}{$address->city|escape:'html':'UTF-8'}{/if}{/if}" maxlength="64" required/> 
     </div> 
     {* if customer hasn't update his layout address, country has to be verified but it's deprecated *} 
     {/if} 
     {if $field_name eq 'Country:name' || $field_name eq 'country' || $field_name eq 'Country:iso_code'} 
     <div class="required form-group form-select"> 
      <label for="id_country">{l s='Country'} <sup>*</sup></label> 
      <select id="id_country" class="form-control" name="id_country" required>{$countries_list}</select> 
     </div> 
     {/if} 

И превратил его в этот код:

 {if $field_name eq 'Country:name' || $field_name eq 'country' || $field_name eq 'Country:iso_code'} 
     <div class="required form-group form-select"> 
      <label for="id_country">{l s='Country'} <sup>*</sup></label> 
      <select id="id_country" class="form-control" name="id_country" required>{$countries_list}</select> 
     </div> 
     {/if} 
{if $field_name eq 'city'} 
     <div class="required form-group"> 
      <label for="city">{l s='City'} <sup>*</sup></label> 
      <input class="is_required validate form-control" data-validate="{$address_validation.$field_name.validate}" type="text" name="city" id="city" value="{if isset($smarty.post.city)}{$smarty.post.city}{else}{if isset($address->city)}{$address->city|escape:'html':'UTF-8'}{/if}{/if}" maxlength="64" required/> 
     </div> 
     {* if customer hasn't update his layout address, country has to be verified but it's deprecated *} 
     {/if} 

И я очистил кэш, но при обновлении страницы, шаблон не обновляется , (я уверен, что это правильный файл шаблона, потому что, если я помещаю в него некоторые строки мусора, они появляются).

Я также попробовал вариант «Компиляция силы», но он тоже не работает.

+0

Включить опцию «Скомпилировать компиляцию» и обновить страницу –

+0

Не могли бы вы показать код, который вы модифицируете? – PrestaAlba

+0

@JahangirAlam Я попробовал «Force Compile», но это не сработало – ling

ответ

0

Перемещение по группам групп форм ничего не будет делать, поскольку они генерируются из списка адресов адресов, поэтому группы форм генерируются в этом порядке.

Формат адреса для США хранится в базе данных, как это (одна строка, разделенных символами новой строки \n):

... 
city, State:name postcode 
Country:name 
... 

Так город всегда будет отображаться перед именем страны, если это формат Соединенных Штатов адрес.

Вы можете изменить это без изменений, перейдя в меню BackOffice

Localization -> Countries выбрать страну, и вы можете изменить формат адреса.

Однако порядок полей изменяется везде на месте.

Если вам нужен другой порядок полей только по форме адрес страницы, вам придется либо изменить $ordered_addr_fields массив в assignAddressFormat() метод или сделать это в шаблоне address.tpl перед началом цикла Еогеасп.

Лучший способ сделать это, но без подделки базовых файлов - создать модуль с крюком DisplayOverrideTemplate и модифицировать переменную smarty там до вывода.

$this->context->smarty->tpl_vars['ordered_adr_fields']->value = array(/* Reordered list here */)