Stato Provincia

Postate qui discussioni di carattere generale riguardo a problemi di installazione e configurazione di osCommerce

Moderatore: mod Generali

scemp
membro Junior
membro Junior
Messaggi: 24
Iscritto il: 23/10/2003, 0:00
Località: ROMA
Contatta:

Stato Provincia

Messaggio da scemp »

Problemone......
ho ormai recepito il fatto che mettere prima la Nazione e poi la provincia nella creazione dell'account è una cosa che richiede parecchio tempo e quindi non fattibile, ma non capisco se c'è la possibilità di fare in modo che se ho un solo paese (tipo l'Italia) il campo stato/provincia possa essere selezionato tramite un menù a tendina (avendo naturalmente prima creato da admin le provincie).
Penso che sia una ottima cosa per i piccoli negozi che magari operano in una sola regione e possono vendere e consegnare prodotti solo in alcune provincie.
BluEdoG
membro Master
membro Master
Messaggi: 1064
Iscritto il: 25/05/2003, 0:00
Località: italia
Contatta:

Messaggio da BluEdoG »

io avevo iniziato a lavorarci, poi troppo tempo da usare in relazione al risultato, ho lasciato perdere. Ma mi sembra di aver visto una contrib di qualcuno che era riuscito nell'operazione di cui tu parli.
saluti, Caneblu
[ www.caneblu.com ]
chiocciola
membro Regular
membro Regular
Messaggi: 193
Iscritto il: 26/12/2003, 1:00
Località: italia

Messaggio da chiocciola »

Non so se ho capito il tuo problema, ma se editi create_account.php e prendi questo pezzo di codice:
-------------------------------------------------------------------------------------
<tr>
<td class="main"><?php echo ENTRY_COUNTRY; ?></td>
<td class="main"><?php echo tep_get_country_list('country') . ' ' . (tep_not_null(ENTRY_COUNTRY_TEXT) ? '<span class="inputRequirement">' . ENTRY_COUNTRY_TEXT . '</span>': ''); ?></td>
</tr>
-------------------------------------------------------------------------------------
lo tagli e lo incolli tra:
-------------------------------------------------------------------------------------


<td class="main"><?php echo ENTRY_CITY; ?></td>
<td class="main"><?php echo tep_draw_input_field('city') . ' ' . (tep_not_null(ENTRY_CITY_TEXT) ? '<span class="inputRequirement">' . ENTRY_CITY_TEXT . '</span>': ''); ?></td>
</tr>
//incolla qui !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

<?php
if (ACCOUNT_STATE == 'true') {
?>
<tr>
-------------------------------------------------------------------------------------
forse ottieni il risultato voluto
Buon lavoro
chiocciola
membro Regular
membro Regular
Messaggi: 193
Iscritto il: 26/12/2003, 1:00
Località: italia

Messaggio da chiocciola »

Per quanto riguarda le province a tendina, penso devi aggiungere una tabella con tutte le province che ti servono, ed aggiungere una funzione sul file general.php e quindi inserirla nel create account, se trovo un po' di tempo faccio delle prove e ti faccio sapere.
Ciao e buon lavoro
scemp
membro Junior
membro Junior
Messaggi: 24
Iscritto il: 23/10/2003, 0:00
Località: ROMA
Contatta:

Messaggio da scemp »

ho provato a modificare il create_account.php come descritto ma non cambia nulla.... :(
magari mi sono espresso male... vediamo se riesco a spiegrmi meglio.
Non sò se hai presente quando viene creato un nuovo cliente, nella schermata dell'inserimento dati viene richiesto anche la città e la nazione, ma mentre la nazione è selezionabile da un menù (quello appunto a tendina) la città deve essere digitata manualmente.
Adesso mettiamo il caso che io ho come nazione ho solo l'Italia, ok? bene!
A questo punto il cliente inserisce la città e la nazione (che è una sola), conferma e il programma ricarica la pagina del crate_account.php richiedendo di selezionare la città dal menù a tendina.
Considerare che le città (stato/provincia) sono state create nell'amministrazione. Quindi il problema è fare in modo che per il campo "città" venga visualizzato un menù con le città disponibile già caricate dall'amministratore.
che casino........ :?
lions
membro Junior
membro Junior
Messaggi: 23
Iscritto il: 20/07/2004, 0:00
Località: ita

Messaggio da lions »

Ciao, ho anche io questo problema, tu hai risolto?

Grazie
Avatar utente
Drako
membro Baby
membro Baby
Messaggi: 88
Iscritto il: 29/09/2003, 0:00
Località: ITALIA
Contatta:

Messaggio da Drako »

io ho risolto così, modificando come segue il file create_account.php, intorno alla riga 600:

Codice: Seleziona tutto

    //if ($process == true) {
      //if ($entry_state_has_zones == true) {
        $zones_array = array();
        $zones_query = tep_db_query("select zone_name from " . TABLE_ZONES . " where zone_country_id = '105' order by zone_name");
        while ($zones_values = tep_db_fetch_array($zones_query)) {
          $zones_array[] = array('id' => $zones_values['zone_name'], 'text' => $zones_values['zone_name']);
        }
        echo tep_draw_pull_down_menu('state', $zones_array);
    //  } //else {
        //echo tep_draw_input_field('state');
		//echo tep_draw_pull_down_menu('state', $zones_array);
      //}
    //} else {
      //echo tep_draw_input_field('state');
	//  echo tep_draw_pull_down_menu('state', $zones_array);
    //}
spero di essere stato utile. CIAO!

P.S. Ovviamente funziona solo per l'italia...
msiege
membro Junior
membro Junior
Messaggi: 5
Iscritto il: 07/01/2005, 1:00
Località: ITALY

Messaggio da msiege »

Ciao Drako,

trovo il tuo script molto utile (più si facilita per il cliente, meglio è).

È per questo che ti scrivo:

Se vendo solo in Italia, si potrebbe fare in modo che la nazione ITALY ci sia scritta già di default (senza possibilità di cambiarla), e senza la necessità di dover ancora selezionare con il pull-down?

Grazie,

msiege
lions
membro Junior
membro Junior
Messaggi: 23
Iscritto il: 20/07/2004, 0:00
Località: ita

Messaggio da lions »

Salve

OK Drako così funziona, posso selezionare la provincia.

Si può impostare Italia di Default come dice anche Msiege ?

Grazie

Saluti a Tutto il Forum
Bass
membro Master
membro Master
Messaggi: 3593
Iscritto il: 18/04/2004, 0:00
Località: Varese
Contatta:

Messaggio da Bass »

lions ha scritto: Si può impostare Italia di Default come dice anche Msiege ?
Visto che ci stavo dando un'occhiata oggi, per mettere l'Italia come default apri il file catalog/includes/functions/html_output.php cerchi la funzione tep_get_country_list e sostituisci la stringa PULL_DOWN_DEFAULT con Italy.
Si potrebbe anche cambiare il valore di PULL_DOWN_DEFAULT in languages/italian ma se viene utilizzato per qualche altro menu a tendina rischia di fare confusione :lol:

'iao

Sergio
nanolnx
membro Junior
membro Junior
Messaggi: 19
Iscritto il: 23/01/2005, 1:00
Località: Italia

Messaggio da nanolnx »

Ciao Drako,

$zones_array = array();
$zones_query = tep_db_query("select zone_name from " . TABLE_ZONES . " where zone_country_id = '105' order by zone_name");
while ($zones_values = tep_db_fetch_array($zones_query)) {
$zones_array[] = array('id' => $zones_values['zone_name'], 'text' => $zones_values['zone_name']);
}
echo tep_draw_pull_down_menu('state', $zones_array);
Dando uno sguardo al codice mi sembra che se un cliente distratto, che magari vive in provincia di milano, non inserisce la provincia, viene registrato con la prima provincia, cioè Agrigento, perchè in questo modo al momento dei controlli sui vari campi del form risultera soddisfatta la condizione sul campo provincia; bisognerebbe fare qualcosa di simile al campo nazione. Appene ho tempo vedo di scrivere il codice e postarlo. se qualcuno lo fa prima di me lo posti.

Corregetemi se sbaglio, la mia è solo un impressione a primo sguardo.
Ciao.
Bass
membro Master
membro Master
Messaggi: 3593
Iscritto il: 18/04/2004, 0:00
Località: Varese
Contatta:

Messaggio da Bass »

Bass ha scritto: tep_get_country_list e sostituisci la stringa PULL_DOWN_DEFAULT con Italy.
Si potrebbe anche cambiare il valore di PULL_DOWN_DEFAULT in
Mi quoto da solo, lasciate stare, non funziona, colpa mia che faccio le modifiche senza provare

:lol:

'iao

Sergio
Avatar utente
marcus
membro Master
membro Master
Messaggi: 1619
Iscritto il: 04/12/2003, 1:00
Contatta:

Messaggio da marcus »

Il problema si risolve semplicemente aggiungendo il parametro STORE_COUNTRY nell'istanza della funzione tep_get_country_list:

Codice: Seleziona tutto

<tr>
  <td class="main"><?php echo ENTRY_COUNTRY; ?></td>
  <td class="main"><?php echo tep_get_country_list('country', STORE_COUNTRY) . ' ' . (tep_not_null(ENTRY_COUNTRY_TEXT) ? '<span class="inputRequirement">' . ENTRY_COUNTRY_TEXT . '</span>': ''); ?>
  </td>
</tr>
Aggiornamento del 8/1/06

Per i problemi relativi alla gestione di menu a tendina per paesi e stati/provincie, consiglio di usare l'ottima contribution:

Country State Selector
http://www.oscommerce.com/community/con ... y+selector


Marcus
Ultima modifica di marcus il 09/01/2006, 2:42, modificato 2 volte in totale.
Nuovo pacchetto osCommercePRO (osCPRO) + Modulo Interfacciamento Gestionale Danea.
Visita la demo: http://oscpro.oscommercedev.com/index.php
Angelo
membro Junior
membro Junior
Messaggi: 38
Iscritto il: 08/01/2006, 0:34

Messaggio da Angelo »

nanolnx ha scritto:Ciao Drako,

$zones_array = array();
$zones_query = tep_db_query("select zone_name from " . TABLE_ZONES . " where zone_country_id = '105' order by zone_name");
while ($zones_values = tep_db_fetch_array($zones_query)) {
$zones_array[] = array('id' => $zones_values['zone_name'], 'text' => $zones_values['zone_name']);
}
echo tep_draw_pull_down_menu('state', $zones_array);
Dando uno sguardo al codice mi sembra che se un cliente distratto, che magari vive in provincia di milano, non inserisce la provincia, viene registrato con la prima provincia, cioè Agrigento, perchè in questo modo al momento dei controlli sui vari campi del form risultera soddisfatta la condizione sul campo provincia; bisognerebbe fare qualcosa di simile al campo nazione. Appene ho tempo vedo di scrivere il codice e postarlo. se qualcuno lo fa prima di me lo posti.

Corregetemi se sbaglio, la mia è solo un impressione a primo sguardo.
Ciao.
Ciao!
Io ho risolto mettendo questo :

Codice: Seleziona tutto

$zones_array = array(array('id' => '','text' => PULL_DOWN_DEFAULT));
al posto di :

Codice: Seleziona tutto

$zones_array = array();
OSnew
membro Regular
membro Regular
Messaggi: 101
Iscritto il: 29/12/2003, 1:00
Località: Perugia It

Impostare ITALIA di default su crea account

Messaggio da OSnew »

Per impostare di default l'italia nel form di registrazione del crea account
basta variare semplicemente il file catalog/includes/functions/html_output.php
aggiungendo 105 sul seguente codice:

// Creates a pull-down list of countries
function tep_get_country_list($name, $selected = '105', $parameters = '') {
$countries_array = array(array('id' => '', 'text' => PULL_DOWN_DEFAULT));
$countries = tep_get_countries();

for ($i=0, $n=sizeof($countries); $i<$n; $i++) {
$countries_array[] = array('id' => $countries[$i]['countries_id'], 'text' => $countries[$i]['countries_name']);
}

return tep_draw_pull_down_menu($name, $countries_array, $selected, $parameters);
}
Rispondi