2017-01-26 5 views
0

私はPrestashop 1.6のMyAccount>アドレスフォーム(フロントエンド内)でフォームのフィールド順を変更しようとしています。prestashop 1.6 - 私のアカウントアドレスフィールドの順序を変更する

/themes/mytheme/address.tplテンプレートを更新し、その都市を都市の上に移動しました(これはすべてやりたいことですが)ページを更新するとうまくいかないようです。

キャッシュディレクトリ内のキャッシュファイルを削除しようとしましたが、何も変更されません。

市のフィールドの前に国のフィールドが必要な場合は、進んでください。

基本的に、私はこのコードを変更:

{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 
... 

だから都市は常に国の名前の前に表示されます。

あなたは国を選択バックオフィスメニュー

Localization -> Countriesに行くことによって変更することなく、これを変更することができますし、アドレス形式を変更することができます。

ただし、フィールドの順序はサイト上のどこでも変更されます。

あなただけのアドレスフォームページ上のフィールドの異なる順序が必要な場合は、foreachループが始まる前に、あなたはassignAddressFormat()方法で$ordered_addr_fields配列を並べ替えたり、テンプレートaddress.tplでそれを行うためにどちらかがあります。

ベースファイルを改ざんすることなく実行する最良の方法は、DisplayOverrideTemplateフックでモジュールを作成し、出力する前にスマート変数を修正することです。

関連する問題