我试图更改MyAccount中的表单的字段顺序> 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}
我清理了缓存,但是当我刷新页面时,模板没有更新。 (我确定它是正确的模板文件,因为如果我在其中放入一些垃圾字符串,它们会显示出来。)
我也尝试过&#34; Force Compile&#34;选项,但它也不起作用。
答案 0 :(得分:0)
移动表单组块无效,因为它们是从地址格式列表生成的,因此表单组按此顺序生成。
美国的地址格式存储在这样的数据库中(由换行符\n
分隔的单个字符串):
...
city, State:name postcode
Country:name
...
如果城市名称是美国地址格式,那么城市将始终显示在国家/地区名称之前。
您可以通过转到后台菜单
进行更改而无需修改 Localization -> Countries
选择一个国家/地区,您可以修改地址格式。
然而,现场各地的字段顺序都会发生变化。
如果您只需要在地址表单页面上使用不同的字段顺序,则必须在assignAddressFormat()方法中重新排列$ordered_addr_fields
数组,或者在foreach循环开始之前在模板address.tpl中执行此操作。
尽管没有篡改基本文件,最好的方法是创建一个带有DisplayOverrideTemplate挂钩的模块,然后在输出之前修改smarty变量。
$this->context->smarty->tpl_vars['ordered_adr_fields']->value = array(/* Reordered list here */)