2017-01-26 3 views
0

Ich versuche, die Felder Reihenfolge des Formulars in der MyAccount> Adresse Formular (im Frontend) in Prestashop 1.6 zu ändern.prestashop 1.6 - ändern Sie meine Kontoadresse Feld Reihenfolge

Ich aktualisierte die /themes/mytheme/address.tpl Vorlage und bewegte das Land über der Stadt (das ist alles, was ich tun möchte), aber wenn ich die Seite aktualisieren, scheint es nicht zu funktionieren.

Ich habe versucht, die Cache-Dateien im/Cache-Verzeichnis zu löschen, aber es ändert nichts.

Also sollst du weitermachen, wenn du das Landfeld VOR dem Stadtfeld willst?

Grundsätzlich änderte ich diesen Code:

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

und verwandelte sie in diesem Code:

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

Und ich reinigte den Cache, aber wenn ich die Seite aktualisieren, wird die Vorlage nicht aktualisiert . (Ich bin mir sicher, dass es die richtige Template-Datei ist, denn wenn ich einige Garbage-Strings darin stecke, tauchen sie auf).

Ich habe auch mit der "Force Compile" -Option versucht, aber es funktioniert auch nicht.

+0

Aktivieren Sie die Option "Erzwinge Kompilieren" und aktualisieren Sie Ihre Seite –

+0

Könnten Sie bitte den Code zeigen, den Sie ändern? – PrestaAlba

+0

@JahangirAlam Ich versuchte "Force Compile", aber es hat nicht funktioniert – ling

Antwort

0

Das Verschieben von Form-Gruppenblöcken wird nichts bewirken, da sie aus einer Adressformatliste generiert werden, sodass Formulargruppen in dieser Reihenfolge generiert werden.

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

So Stadt wird immer vor dem Ländernamen angezeigt werden, wenn es sich um ein United States Adressformat ist:

Adressformat für USA wird in der Datenbank wie diese (Einzelsaite durch Zeilenumbrüche \n getrennt) gespeichert.

Sie können diese

Localization -> Countries ein Land wählen und Sie können Adressformat, indem Sie ändern, um Back-Office-Menü ohne Änderungen ändern.

Die Reihenfolge der Felder wird jedoch überall vor Ort geändert.

Wenn Sie eine andere Reihenfolge der Felder nur auf Adressformular Seite benötigen Sie müssen entweder $ordered_addr_fields Array in assignAddressFormat() Verfahren neu anordnen oder tun es in Vorlage address.tpl vor foreach-Schleife beginnt.

Die beste Möglichkeit, dies zu tun, ohne die Basisdateien zu manipulieren, ist ein Modul mit einem DisplayOverrideTemplate Hook zu erstellen und die Smarty-Variable vor der Ausgabe zu ändern.

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