Come ordinare i prodotti per prezzo ? (Crescente) Aiuto!

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

Moderatore: mod Generali

Rispondi
arscromica
membro Junior
membro Junior
Messaggi: 24
Iscritto il: 21/06/2008, 9:29

Come ordinare i prodotti per prezzo ? (Crescente) Aiuto!

Messaggio da arscromica »

Ciao Ragazzi,

Ci servirebbe il Vostro aiuto... per cancellare un dubbio
circa l'ordine degli articoli, abbiamo aggiunto al nostro sito
la contribution "Sort Order" che ci ha permesso in parte di ordinare i prodotti,
ma adesso avremmo bisogno di ordinarli per prezzo, come si fa?
Non siamo riusciti a capirlo e con sort order dovremmo farlo manualmente
per ogni singolo prodotto.

Grazie anticipatamente
scusateci ma lavoriamo con OS-Commerce da pochissimo tempo.

GRAZIE A PRESTO
ARScromica - soluzioni grafiche e non solo...
dynamo
membro Master
membro Master
Messaggi: 1976
Iscritto il: 13/11/2007, 17:47
Contatta:

Messaggio da dynamo »

scusa ma in product_linstng ci dovrebbe essere il richiamo dei prodotti e l'ordinamento tramite il nome... basta che lo cambi con il prezzo...

guarda la query di richiamo dei prodotti e cambia ORDER BY [prodotto nome] con il [prodotto prezzo] :wink:
www.vinidimo.it

visitate e criticate se è il caso... solo con le critiche posso migliorarlo ^_^
arscromica
membro Junior
membro Junior
Messaggi: 24
Iscritto il: 21/06/2008, 9:29

Messaggio da arscromica »

Ciao
intanto grazie per la risposta immediata, abbiamo controllato
ma non riusciamo a capire su product_listing cosa cambiare
ecco la pagina potresti cartesemente segnalarci il punto,
ti ringraziamo tanto.

<?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
*/
?>
<? /*

<?php echo $breadcrumb->trail(' » ')?>

*/?>
<?/* going title */?>
<?php tep_draw_titletop();?>
<?php echo $breadcrumb->trail(' » ')?>
<?php tep_draw_titlebottom();?>


<? tep_draw_heading_top_3();?>

<?
$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 == '2') ) ) {
?>
<table border="0" cellspacing="0" cellpadding="0" class="result box_width_cont">
<tr>
<td><?php echo $listing_split->display_count(TEXT_DISPLAY_NUMBER_OF_PRODUCTS); ?></td>
<td class="result_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 echo tep_draw_result_top(); ?>

<?php
}
?>
<?
$info_box_contents = array();
$list_box_contents = array();
$my_row = 0;
$my_col = 0;

$td_counter = 0;
for ($col=0, $n=sizeof($column_list); $col<$n; $col++) {//sort order
if ($column_list[$col] == 'PRODUCT_LIST_SORT_ORDER'){break;}
//end sort order
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;
}

//sort order
if ($column_list[$col] == 'PRODUCT_LIST_SORT_ORDER'){break;}
if ( ($column_list[$col] != 'PRODUCT_LIST_BUY_NOW') && ($column_list[$col] != 'PRODUCT_LIST_IMAGE') && ($column_list[$col] != 'PRODUCT_LIST_MULTIPLE')) {
// if ( ($column_list[$col] != 'PRODUCT_LIST_BUY_NOW') && ($column_list[$col] != 'PRODUCT_LIST_IMAGE') ) {
//end sort order
$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' => ' ' . $lc_text . ' ');
}

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 = '';
$p_model = $lc_text = '' . $listing['products_model'] . '';
break;
case 'PRODUCT_LIST_NAME':
$lc_align = '';
if (isset($HTTP_GET_VARS['manufacturers_id'])) {
$p_name = $lc_text = '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'manufacturers_id=' . $HTTP_GET_VARS['manufacturers_id'] . '&products_id=' . $listing['products_id']) . '">' . substr( $listing['products_name'],0,MAX_DESCR_NAME) . '</a>';
} else {
$p_name = $lc_text = '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&' : '') . 'products_id=' . $listing['products_id']) . '">' . substr($listing['products_name'],0,MAX_DESCR_NAME). '</a>';
}
break;

case 'PRODUCT_LIST_MANUFACTURER':
$lc_align = '';
$p_manuf = $lc_text = '<a href="' . tep_href_link(FILENAME_DEFAULT, 'manufacturers_id=' . $listing['manufacturers_id']) . '">' . $listing['manufacturers_name'] . '</a>';
break;
case 'PRODUCT_LIST_PRICE':
$lc_align = 'right';
if (tep_not_null($listing['specials_new_products_price'])) {
$p_price = $lc_text = $currencies->display_price($listing['specials_new_products_price'], tep_get_tax_rate($listing['products_tax_class_id'])) . '   <span class="price_txt_strice">' . $currencies->display_price($listing['products_price'], tep_get_tax_rate($listing['products_tax_class_id'])) . '</span>';
} else {
$p_price = $lc_text = '<span class="price_txt">' . $currencies->display_price($listing['products_price'], tep_get_tax_rate($listing['products_tax_class_id'])) . '</span>';
}
break;
case 'PRODUCT_LIST_QUANTITY':
$lc_align = 'right';
$p_quntity = $lc_text = '' . $listing['products_quantity'] . '';
break;
case 'PRODUCT_LIST_WEIGHT':
$lc_align = 'right';
$p_weight = $lc_text = '' . $listing['products_weight'] . '';
break;
case 'PRODUCT_LIST_IMAGE':
$lc_align = 'center';
if (isset($HTTP_GET_VARS['manufacturers_id'])) {
$p_pic = $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 {
$p_pic = $lc_text = '<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>';
}
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>';
break;
}


$product_query = tep_db_query("select products_description, products_id from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$listing['products_id'] . "' and language_id = '" . (int)$languages_id . "'");
$product = tep_db_fetch_array($product_query);

$p_desc = substr($product['products_description'], 0, MAX_DESCR_1);
$p_id = $product['products_id'];
/* $list_box_contents[$cur_row][] = array('align' => $lc_align,
'params' => '',
'text' => $lc_text); */

}


$info_box_contents[$my_row][$my_col] = array('align' => 'center',
'params' => ' style=" width:50%;"',
'text' => '

'.$tep_draw_heading_top_prod_type1.'

<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td> '.tep_draw_separator('spacer.gif', '1', '6').'<br>
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td style="background:#F2F2F2;">
<table cellspacing="0" cellpadding="0" border="0" style="background:url(images/ltc1.gif) no-repeat left top;">
<tr>
<td style="background:url(images/lbc1.gif) no-repeat left bottom;">
<table cellspacing="0" cellpadding="0" border="0" style="background:url(images/rtc1.gif) no-repeat right top; height:35px;">
<tr>
<td style="background:url(images/rbc1.gif) no-repeat right bottom; padding:0 0 0 21px; vertical-align:middle;" class="title2_txt">'.$p_name.'<br>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="0" cellpadding="0" border="0" style="margin-top:14px; height:154px;">
<tr>
<td style="width:100%; height:88px; text-align:center;">
'.$p_pic.'<br>
</td>
</tr>
<tr>
<td style="width:100%; height:58px; padding-left:21px;" class="txt5 link2">
'.$p_desc.' ...<br>
</td>
</tr>
<tr>
<td style="width:100%; height:100%;" class="txt5 link2">
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td width="4">'.tep_draw_separator('spacer.gif', '4', '1').'<br>
</td>
<td style="width:100%; background:url(images/side.gif) repeat-x top;">
<table cellspacing="0" cellpadding="0" border="0" style="background:url(images/side.gif) repeat-x bottom;">
<tr>
<td style="background:url(images/side.gif) repeat-y left;">
<table cellspacing="0" cellpadding="0" border="0" style="background:url(images/side.gif) repeat-y right;">
<tr>
<td style="background:url(images/ltc2.gif) no-repeat left top;">
<table cellspacing="0" cellpadding="0" border="0" style="background:url(images/lbc2.gif) no-repeat left bottom;">
<tr>
<td style="background:url(images/rtc2.gif) no-repeat right top;">
<table cellspacing="0" cellpadding="0" border="0" style="background:url(images/rbc2.gif) no-repeat right bottom;height:59px;">
<tr>
<td width="120" class="price_txt" style=" text-align:center; vertical-align:middle;">'.$p_price.'<br>
</td>
<td style="width:auto;">
'.tep_draw_separator('spacer.gif', '1', '14').'<br>
<a href="'.tep_href_link("products_new.php","action=buy_now&products_id=".$p_id).'">'.tep_image_button('button_add_to_cart.gif').'</a><br>
'.tep_draw_separator('spacer.gif', '1', '4').'<br>
<a href="' . tep_href_link('product_info.php?products_id='.$p_id) . '">'.tep_image_button("button_details1.gif").'</a><br>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
<td>'.tep_draw_separator('spacer.gif', '5', '1').'<br>
</td>
</tr>
</table>
'.tep_draw_separator('spacer.gif', '1', '10').'<br>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td> </td>
</tr>
</table>


'.$tep_draw_heading_bottom_prod_type1);


$my_col ++;
if ($my_col > 1) {
$my_col = 0;
$my_row ++;
}
}



new contentBox($info_box_contents);
// new productListingBox($list_box_contents);
} else { ?>



<?php /*echo tep_draw_heading_top_3();*/ ?>

<br style="line-height:1px;"><br style="line-height:15px;">
<table border="0" cellspacing="0" cellpadding="2" class="infoBox box_width_cont">
<tr class="infoBoxContents">
<td>
<table cellpadding="0" cellspacing="0" class="product">
<tr><td class="sea_2"><?php echo TEXT_NO_PRODUCTS ?></td></tr>
</table>
</td>
</tr>
</table>

<?php

/*echo tep_draw_heading_bottom_3();*/

}

if ( ($listing_split->number_of_rows> 0) && ((PREV_NEXT_BAR_LOCATION == '2') || (PREV_NEXT_BAR_LOCATION == '3')) ) {
?>

<?php echo tep_draw_result_bottom(); ?>

<table border="0" cellspacing="0" cellpadding="0" class="result box_width_cont">
<tr>
<td><?php echo $listing_split->display_count(TEXT_DISPLAY_NUMBER_OF_PRODUCTS); ?></td>
<td class="result_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
}
?>
ARScromica - soluzioni grafiche e non solo...
loris_ripa
membro Veteran
membro Veteran
Messaggi: 937
Iscritto il: 21/03/2004, 1:00
Località: Italia
Contatta:

Messaggio da loris_ripa »

Cerca in index.php:

Codice: Seleziona tutto

if ( (!isset($HTTP_GET_VARS['sort'])) || (!ereg('^[1-8][ad]$', $HTTP_GET_VARS['sort'])) || (substr($HTTP_GET_VARS['sort'], 0, 1) > sizeof($column_list)) ) {
      for ($i=0, $n=sizeof($column_list); $i<$n; $i++) {
        if ($column_list[$i] == 'PRODUCT_LIST_MODEL') {
          $HTTP_GET_VARS['sort'] = $i+1 . 'a';
          $listing_sql .= " order by p.products_model";
          break;
        }
E modifica:

Codice: Seleziona tutto

if ($column_list[$i] == 'PRODUCT_LIST_MODEL')

Codice: Seleziona tutto

$listing_sql .= " order by p.products_model";
Spero che sia questa la modifica, l'ho fatta un bel po' di tempo fa...
:D
arscromica
membro Junior
membro Junior
Messaggi: 24
Iscritto il: 21/06/2008, 9:29

Messaggio da arscromica »

GRAZIE avevi ragione erano proprio quei due punti a dover essere modificati
funziona tutto a meraviglia.

Ti ringraziamo ancora.

SALUTI.
:wink:
ARScromica - soluzioni grafiche e non solo...
Rispondi