Pagina 1 di 1

Aggiunta di un campo

Inviato: 28/07/2007, 14:32
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:

Inviato: 30/07/2007, 23:26
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:

Inviato: 15/08/2007, 23:53
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

Inviato: 16/08/2007, 0:35
da Spiderweb
Grazie anche a te per aver postato le modifiche!
Possono sempre tornare utili in futuro :wink:

Ciao! :)