Dodatkowe pole "wybór kraju" w formularzu zamówienia

Makaron

Avatar: Makaron

2008-08-04 09:39

Sklepy sprzedające swoje produkty za granicę mogą wymagać dodatkowego pola w formularzu zamówienia, które będzie umożliwiało wybór kraju, z którego pochodzi klient, aby takie pole dodać należy wykonać następujące czynności:

Dodaj do bazy danych orders pole sCountry, aby to zrobić edytuj plik db/orders.def.php i zmień deklaracje zmiennych:
$aFieldsNames - dodaj na końcu deklaracji ", 'sCountry' => poprzedni_numer_plus_1"
$aFieldsSort - dodaj na końcu deklaracji ", 'sCountry'"
W funkcji orders( $aExp ) dodaj do zwracanej wartości return na końcu zwracanej tablicy: ", 'sCountry' => $aExp[poprzedni_numer_plus_1]"
W miejsce "poprzedni_numer_plus_1" w wersji niemodyfikowanej skryptu darmowego Quick.Cart należy wstawić wartość 19.
Następnie edytuj plik db/orders.php i na końcu każdego rekordu dodaj znak "$".

W plikach config/lang_pl.php i config/lang_en.php należy zadeklarować odpowiednio tablice, w wersji angielskiej można znaleźć tutaj: http://opensolution.org/Quick.Cart/forum/files/countryList.txt .

W pliku actions_admin/orders.php pod deklaracją zmiennej $sOrderSummary wklej linię:

$CountrySelect throwSelectFromArray$aCountryList$aData['sCountry'] );



W pliku action_client/p.php pod deklaracją zmiennej $aData['sPagesTree'] dodaj linię:

$CountrySelect throwSelectFromArray$aCountryList );


oraz w tym samym pliku pod deklaracją zmiennej $aOrder['sComment'] dodaj linię:

$aOrder['sCountry'] = $aCountryList[$aOrder['sCountry']];



W plikach lang/en.php lang/pl.php zdefiniuj odpowiednio zmienną $lang['Country'].

W pliku templates/orders_form.tpl w bloku ORDER_FORM pod blokiem <div id="city"> dodaj blok:

<div id="country">
            <
label for="oCountry">$lang[Country]</label>
            <
select name="sCountry" class="input">
            
$CountrySelect
            
</select>
          </
div>



W pliku templates/orders_print.tpl pod linią:

<dt class="email">$lang[Email]:</dt><dd class="email">$aOrder[sEmail]</dd>



dodaj linię:

<dt class="country">$lang[Country]:</dt><dd class="country">$aOrder[sCountry]</dd>



W pliku templates/admin/orders.tpl po linii:

<!-- ip end -->


dodaj fragment kodu:

<!-- country start -->
      <
tr class="l0">
        <
th>
          
$lang[Country]
        </
th>
        <
td>
            <
select name="sCountry" class="input">
            
$CountrySelect
            
</select>
        </
td>
      </
tr>
      <!-- 
country end -->


Dla lepszego wyglądu formularza powinieneś zmienić deklaracje klas następnych bloków na odwrotne np <tr class="l1"> na <tr class="l0">

» Quick.Cart v3.x

fzqvx

Avatar: fzqvx

2011-08-17 21:19

cytuje:

W pliku action_client/p.php pod deklaracją zmiennej $aData['sPagesTree'] dodaj linię:
$CountrySelect = throwSelectFromArray( $aCountryList );
oraz w tym samym pliku pod deklaracją zmiennej $aOrder['sComment'] dodaj linię:
$aOrder['sCountry'] = $aCountryList[$aOrder['sCountry']];

w action_client/p.php nie ma zmiennej $aOrder['sComment']
poza tym w mailu który przychodzi jest numer kraju zamiast nazwa :(

boboo

Avatar: boboo

2011-08-17 21:26

Zobacz kiedy Makaron napisał ten post.
Weź wersję QC z sierpnia 2008 to pewnie zadziała...

it-service.kimla.de

fzqvx

Avatar: fzqvx

2011-08-17 21:32

fakt, ale w późniejszych wątkach problem z numerem zamiast kraju ciągle się pojawia, tego nie rozwiązano do dziś

fzqvx

Avatar: fzqvx

2011-08-18 17:46

zmieniłem <select> na <input> i po problemie - kosztem listy rozwijanej, teraz należy wpisać kraj i tyle ;)

Do góry
o nas | kontakt