PDA

View Full Version : [PHP] Oscommere


pippobj
06-04-2009, 12:09
Salve a tutti - sto aprendo un E-commerce e ho bisogno di inserire uno script per visualizzare la disponibilità dei prodotti
Icona Verde: prodotto disponibile
Icona Gialla: disponibilità limitata
Icona Rossa: esaurito

questo è tutto il file
<?php
/*
$Id: product_listing.php,v 1.44 2003/06/09 22:49:59 hpdl Exp $

osCommerce, Open Source E-Commerce Solutions
http://www.oscommerce.com

Copyright (c) 2003 osCommerce

Released under the GNU General Public License
*/

$listing_split = new splitPageResults($listing_sql, MAX_DISPLAY_SEARCH_RESULTS, 'p.products_id');

if ( ($listing_split->number_of_rows > 0) && ( (PREV_NEXT_BAR_LOCATION == '1') || (PREV_NEXT_BAR_LOCATION == '3') ) ) {
?>
<table border="0" width="100%" cellspacing="0" cellpadding="2">
<tr>
<td class="smallText"><?php echo $listing_split->display_count(TEXT_DISPLAY_NUMBER_OF_PRODUCTS); ?></td>
<td class="smallText" align="right"><?php echo TEXT_RESULT_PAGE . ' ' . $listing_split->display_links(MAX_DISPLAY_PAGE_LINKS, tep_get_all_get_params(array('page', 'info', 'x', 'y'))); ?></td>
</tr>
</table>
<?php
}

$list_box_contents = array();

for ($col=0, $n=sizeof($column_list); $col<$n; $col++) {
switch ($column_list[$col]) {
case 'PRODUCT_LIST_MODEL':
$lc_text = TABLE_HEADING_MODEL;
$lc_align = '';
break;
case 'PRODUCT_LIST_NAME':
$lc_text = TABLE_HEADING_PRODUCTS;
$lc_align = '';
break;
case 'PRODUCT_LIST_MANUFACTURER':
$lc_text = TABLE_HEADING_MANUFACTURER;
$lc_align = '';
break;
case 'PRODUCT_LIST_PRICE':
$lc_text = TABLE_HEADING_PRICE;
$lc_align = 'right';
break;
case 'PRODUCT_LIST_QUANTITY':
$lc_text = TABLE_HEADING_QUANTITY;
$lc_align = 'right';
break;
case 'PRODUCT_LIST_WEIGHT':
$lc_text = TABLE_HEADING_WEIGHT;
$lc_align = 'right';
break;
case 'PRODUCT_LIST_IMAGE':
$lc_text = TABLE_HEADING_IMAGE;
$lc_align = 'center';
break;
case 'PRODUCT_LIST_BUY_NOW':
$lc_text = TABLE_HEADING_BUY_NOW;
$lc_align = 'center';
break;
}

if ( ($column_list[$col] != 'PRODUCT_LIST_BUY_NOW') && ($column_list[$col] != 'PRODUCT_LIST_IMAGE') ) {
$lc_text = tep_create_sort_heading($HTTP_GET_VARS['sort'], $col+1, $lc_text);
}

$list_box_contents[0][] = array('align' => $lc_align,
'params' => 'class="productListing-heading"',
'text' => '&nbsp;' . $lc_text . '&nbsp;');
}

if ($listing_split->number_of_rows > 0) {
$rows = 0;
$listing_query = tep_db_query($listing_split->sql_query);
while ($listing = tep_db_fetch_array($listing_query)) {
$rows++;

if (($rows/2) == floor($rows/2)) {
$list_box_contents[] = array('params' => 'class="productListing-even"');
} else {
$list_box_contents[] = array('params' => 'class="productListing-odd"');
}

$cur_row = sizeof($list_box_contents) - 1;

for ($col=0, $n=sizeof($column_list); $col<$n; $col++) {
$lc_align = '';

switch ($column_list[$col]) {
case 'PRODUCT_LIST_MODEL':
$lc_align = '';
$lc_text = '&nbsp;' . $listing['products_model'] . '&nbsp;';
break;
case 'PRODUCT_LIST_NAME':
$lc_align = '';
if (isset($HTTP_GET_VARS['manufacturers_id'])) {
$lc_text = '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'manufacturers_id=' . $HTTP_GET_VARS['manufacturers_id'] . '&products_id=' . $listing['products_id']) . '">' . $listing['products_name'] . '</a>';
} else {
$lc_text = '&nbsp;<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&' : '') . 'products_id=' . $listing['products_id']) . '">' . $listing['products_name'] . '</a>&nbsp;';
}
break;
case 'PRODUCT_LIST_MANUFACTURER':
$lc_align = '';
$lc_text = '&nbsp;<a href="' . tep_href_link(FILENAME_DEFAULT, 'manufacturers_id=' . $listing['manufacturers_id']) . '">' . $listing['manufacturers_name'] . '</a>&nbsp;';
break;
case 'PRODUCT_LIST_PRICE':
$lc_align = 'right';
if (tep_not_null($listing['specials_new_products_price'])) {
$lc_text = '&nbsp;<s>' . $currencies->display_price($listing['products_price'], tep_get_tax_rate($listing['products_tax_class_id'])) . '</s>&nbsp;&nbsp;<span class="productSpecialPrice">' . $currencies->display_price($listing['specials_new_products_price'], tep_get_tax_rate($listing['products_tax_class_id'])) . '</span>&nbsp;';
} else {
$lc_text = '&nbsp;' . $currencies->display_price($listing['products_price'], tep_get_tax_rate($listing['products_tax_class_id'])) . '&nbsp;';
}
break;
case 'PRODUCT_LIST_QUANTITY':
$lc_align = 'right';
$lc_text = '&nbsp;' . $listing['products_quantity'] . '&nbsp;';
break;
case 'PRODUCT_LIST_WEIGHT':
$lc_align = 'right';
$lc_text = '&nbsp;' . $listing['products_weight'] . '&nbsp;';
break;
case 'PRODUCT_LIST_IMAGE':
$lc_align = 'center';
if (isset($HTTP_GET_VARS['manufacturers_id'])) {
$lc_text = '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'manufacturers_id=' . $HTTP_GET_VARS['manufacturers_id'] . '&products_id=' . $listing['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $listing['products_image'], $listing['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a>';
} else {
$lc_text = '&nbsp;<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&' : '') . 'products_id=' . $listing['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $listing['products_image'], $listing['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a>&nbsp;';
}
break;
case 'PRODUCT_LIST_BUY_NOW':
$lc_align = 'center';
$lc_text = '<a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action')) . 'action=buy_now&products_id=' . $listing['products_id']) . '">' . tep_image_button('button_buy_now.gif', IMAGE_BUTTON_BUY_NOW) . '</a>&nbsp;';
break;
}

$list_box_contents[$cur_row][] = array('align' => $lc_align,
'params' => 'class="productListing-data"',
'text' => $lc_text);
}
}

new productListingBox($list_box_contents);
} else {
$list_box_contents = array();

$list_box_contents[0] = array('params' => 'class="productListing-odd"');
$list_box_contents[0][] = array('params' => 'class="productListing-data"',
'text' => TEXT_NO_PRODUCTS);

new productListingBox($list_box_contents);
}

if ( ($listing_split->number_of_rows > 0) && ((PREV_NEXT_BAR_LOCATION == '2') || (PREV_NEXT_BAR_LOCATION == '3')) ) {
?>
<table border="0" width="100%" cellspacing="0" cellpadding="2">
<tr>
<td class="smallText"><?php echo $listing_split->display_count(TEXT_DISPLAY_NUMBER_OF_PRODUCTS); ?></td>
<td class="smallText" align="right"><?php echo TEXT_RESULT_PAGE . ' ' . $listing_split->display_links(MAX_DISPLAY_PAGE_LINKS, tep_get_all_get_params(array('page', 'info', 'x', 'y'))); ?></td>
</tr>
</table>
<?php
}
?>


dovrei sostituire questo:

case 'PRODUCT_LIST_QUANTITY':
$lc_align = 'right';
$lc_text = ' ' . $listing['products_quantity'] . ' ';
break;

con questo :

case 'PRODUCT_LIST_QUANTITY':
$lc_align = 'center';
$prod_quantity = $listing['products_quantity'];
$minus = ($prod_quantity <= 0);
$red = ($prod_quantity == '');
$yellow = ($prod_quantity <= 3);
$green = ($prod_quantity > 3);

switch ($prod_quantity) {
case $minus:
$img = tep_image(DIR_WS_ICONS . 'icon_status_red.gif', 'Non disponibile') ;
break;
case $red:
$img = tep_image(DIR_WS_ICONS . 'icon_status_red.gif', 'Non disponibile') ;
break;
case $yellow :
$img = tep_image(DIR_WS_ICONS . 'icon_status_yellow.gif', 'Disponibilita' limitata') ;
break;
case $green :
$img = tep_image(DIR_WS_ICONS . 'icon_status_green.gif', 'Disponibilita' immediata') ;
break;
}
$lc_text = ' ' . $img . ' ';
break;

ma mi da errore e non riesco a implementarlo
se qualcuno riuscisse a darmi una mano.
Grazie

Torav
06-04-2009, 12:26
scusa ma non usi un ide?
basta un'occhiata per vedere che usi degli apostrofi nello stringhe che delimiti usando apostrofi, in questo e in un altro punto:


$img = tep_image(DIR_WS_ICONS . 'icon_status_yellow.gif', 'Disponibilita' limitata') ;


delimita con " e si dovrebbe risolvere tutto

pippobj
06-04-2009, 12:34
cavolo che sbadato..

ora visualizzo la stringa ma non l'icona colorata

arcer
06-04-2009, 13:16
scusa ma non usi un ide?
basta un'occhiata per vedere che usi degli apostrofi nello stringhe che delimiti usando apostrofi, in questo e in un altro punto:


$img = tep_image(DIR_WS_ICONS . 'icon_status_yellow.gif', 'Disponibilita' limitata') ;


delimita con " e si dovrebbe risolvere tutto


visto che mi trovo qui lo chiedo a te...che ide utilizzi?

Torav
06-04-2009, 13:22
cavolo che sbadato..

ora visualizzo la stringa ma non l'icona colorata

qua non so dirti, scrivi magari il codice html in cui inserisci il src. Magari guarda il sorgente della pagina che ottieni nel browser, potrebbe essere un problemo di percorsi o di nomi!

visto che mi trovo qui lo chiedo a te...che ide utilizzi?

utilizzo eclipse per comodita, perchè programmo in php per lavoro e in c/c++ e python per studio e volevo un ambiente comune a tutti e 3. Inoltre ha un plugin per il supporto SVN e questo lo rende perfetto :D

pippobj
06-04-2009, 13:24
non l'ho sviluppato io il codice, lo trovato ma non riuscivo ad implementarlo.
Io di programmazione non ne so molto.
cmq ora la visuale prodotti è questa http://www.hwpoint.com/index.php?cPath=34_56_70

il sito è in via di sviluppo e non ci sono ancora i prezzi.

io nella colonna quantità vorrei far visualizzare un'icona secondo la quantità del prodotto, come dicevo prima

Torav
06-04-2009, 13:27
ok nessun problema!
Come puoi vedere dal sorgente il codice php mi sembra che si comporti bene! Infatti stampa qualcosa tipo


<img src="images/icons/icon_status_red.gif" border="0" alt="Non disponibile" title=" Non disponibile ">


quello che succede è che non esiste l'immagine al percorso dato (images/icons/icon_status_red.gif) e quindi viene visualizzato il testo alternativo (il valore che sta dentro "alt"). Controlla i percorsi, dovrebbe essere lì il problema!

pippobj
06-04-2009, 13:38
le immagini ci dovrebbero essere.. perchè le ho aggiunte io, ma ora non riesco a controllare perchè il server è down..

boh sti inglesi

cmq vi farò sapere, grazie per l'aiuto