Aggiunta di un campo

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

Moderatore: mod Generali

Rispondi
Sigel
membro Junior
membro Junior
Messaggi: 11
Iscritto il: 10/04/2007, 14:58

Aggiunta di un campo

Messaggio da Sigel »

Salve,

avrei un problema, penso facile da risolvere, però non riesco a venirne a capo. Allora, vorrei inserire un nuovo campo nel form della registrazione (quindi su create_account e edit_account).
Il campo è testo semplice e non necessità di essere obbligatorio.

Qualcuno sa dirmi, molto velocemente, quali file modificare??

Vi ringrazio di aiutarmi nonostante il caldo :wink:
Avatar utente
Spiderweb
membro Veteran
membro Veteran
Messaggi: 573
Iscritto il: 28/09/2005, 22:09
Località: Toscana

Messaggio da Spiderweb »

io ho trovato una contribution per aggiungere una check box nella pagina di registrazione, non l'ho ancora provata e non so se può essere modificata per adattarla al tuo caso.

Cmq si chiama add_check_box_field e la trovi qui:
http://www.oscommerce.com/community/con ... +box+field

Ciao :)

P.S: se la usi fammi sapere come funziona :wink:
Prima di postare leggetevi le FAQ: viewtopic.php?t=3259
Sigel
membro Junior
membro Junior
Messaggi: 11
Iscritto il: 10/04/2007, 14:58

Messaggio da Sigel »

Ciao Spiderweb grazie per la segnalazione :wink:

sono riuscito facilmente ad adattarlo al mio caso (invece di una checkbox a me serviva una textbox) e funziona alla grande :!:

Qui di seguito posto il codice modificato:
USING DB CONFIGURATOR*
**********************

ALTER TABLE `customers` ADD `customers_yourfield` VARCHAR( 50 ) NULL AFTER `customers_newsletter` ;

*******************************
IN /catalog/create_account.php*
*******************************

AFTER:
$fax = tep_db_prepare_input($HTTP_POST_VARS['fax']);
ADD:
$delegate = tep_db_prepare_input($HTTP_POST_VARS['yourfield']);

AFTER:
'customers_fax' => $fax,

ADD:
'customers_delegate' => $yourfield,

BEFORE:
<tr>
<td class="main"><?php echo ENTRY_NEWSLETTER; ?></td>

ADD:
<tr>
<td class="main"><?php echo ENTRY_YOURFIELD; ?></td>
<td class="main"><?php echo tep_draw_input_field('yourfield') . ' ' . (tep_not_null(ENTRY_YOURFIELD_TEXT) ? '<span class="inputRequirement">' . ENTRY_YOURFIELD_TEXT . '</span>': ''); ?></td>
</tr>

*******************************************
IN /catalog/includes/languages/english.php*
*******************************************

AFTER:
define('ENTRY_FAX_NUMBER_TEXT', '');
ADD:
define('ENTRY_YOURFIELD_TEXT', '');
define('ENTRY_YOURFIELD', 'New Box:');

********************************
IN /catalog/admin/customers.php*
********************************

AFTER:
$customers_newsletter = tep_db_prepare_input($HTTP_POST_VARS['customers_newsletter']);
ADD:
$customers_delegate = tep_db_prepare_input($HTTP_POST_VARS['customers_yourfield']);

AFTER:
'customers_fax' => $customers_fax,
ADD:
'customers_delegate' => $customers_yourfield,

AFTER:
c.customers_newsletter,
ADD:
c.customers_yourfield,

AFTER:
<tr>
<td class="main"><?php echo ENTRY_NEWSLETTER; ?></td>
<td class="main">
<?php
if ($processed == true) {
if ($cInfo->customers_newsletter == '1') {
echo ENTRY_NEWSLETTER_YES;
} else {
echo ENTRY_NEWSLETTER_NO;
}
echo tep_draw_hidden_field('customers_newsletter');
} else {
echo tep_draw_pull_down_menu('customers_newsletter', $newsletter_array, (($cInfo->customers_newsletter == '1') ? '1' : '0'));
}
?></td>
</tr>

ADD:
<tr>
<td class="main"><?php echo ENTRY_YOURFIELDS; ?></td>
<td class="main">
<?php
if ($processed == true) {
echo $cInfo->customers_yourfield . tep_draw_hidden_field('customers_yourfield');
} else {
echo tep_draw_input_field('customers_yourfield', $cInfo->customers_yourfield, 'maxlength="50"', false);
}
?></td>

*************************************************
IN /catalog/admin/includes/languages/english.php*
*************************************************

AFTER:
define('ENTRY_NEWSLETTER_ERROR', '');
ADD:
define('ENTRY_YOURFIELD', 'New Text:');
Naturalmente i file che ho poi modificato sono italian.php per la versione italiana. Volevo poi che il campo potesse essere liberamente modificato dall'utente appena questo si loggava. Ho quindi proceduto anche alla modifica del file account_edit.php in questo modo:
Trovate:
$fax = tep_db_prepare_input($HTTP_POST_VARS['fax']);
Ed aggiungete questo
$yourfield = tep_db_prepare_input($HTTP_POST_VARS['yourfield']);

Poi cercate:
if ($error == false) {
$sql_data_array = array('customers_firstname' => $firstname,
'customers_lastname' => $lastname,
'customers_email_address' => $email_address,
'customers_telephone' => $telephone,
'customers_fax' => $fax
e di seguito aggiungete:
'customers_yourfield' => $yourfield

cercate:
$account_query = tep_db_query("select customers_gender, customers_firstname, customers_lastname, customers_dob, customers_email_address, customers_telephone, customers_fax,

e aggiungete alla fine:
costumers_yourfield

infine cercate:
<tr>
<td class="main"><?php echo ENTRY_FAX_NUMBER; ?></td>
<td class="main"><?php echo tep_draw_input_field('fax', $account['customers_fax']) . ' ' . (tep_not_null(ENTRY_FAX_NUMBER_TEXT) ? '<span class="inputRequirement">' . ENTRY_FAX_NUMBER_TEXT . '</span>': ''); ?></td>
</tr>

ed aggiungete:

<tr>
<td class="main"><?php echo ENTRY_YOURFIELD; ?></td>
<td class="main"><?php echo tep_draw_input_field('yourfield', $account['customers_yourfield']) . ' ' . (tep_not_null(ENTRY_YOURFIELD_TEXT) ? '<span class="inputRequirement">' . ENTRY_YOURFIELD_TEXT . '</span>': ''); ?></td>
</tr>
8) Grazie ancora
Avatar utente
Spiderweb
membro Veteran
membro Veteran
Messaggi: 573
Iscritto il: 28/09/2005, 22:09
Località: Toscana

Messaggio da Spiderweb »

Grazie anche a te per aver postato le modifiche!
Possono sempre tornare utili in futuro :wink:

Ciao! :)
Prima di postare leggetevi le FAQ: viewtopic.php?t=3259
Rispondi