Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

New Products for XXXX module


Mariu

Recommended Posts

Posted

Hello,

 

Instead of having the default NewProducts for xxxx in the main page, I would like to put tables in order to display them in individual boxes, two per row, three rows. I guess it's possible to do it since I saw it in quite a few web sites.

 

It has to be done in new_products.php? And where exactly?

 

Thanks.

Posted

Backup your catalog\includes\modules\new_products.php then replace it with this code:

 

<?php
/*
 $Id: new_products.php,v 1.34 2003/06/09 22:49:58 hpdl Exp $

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

 Copyright (c) 2003 osCommerce

 Released under the GNU General Public License
*/
?>
<!-- new_products //-->
<?php

 if ( (!isset($new_products_category_id)) || ($new_products_category_id == '0') ) {
$new_products_query = tep_db_query("select p.products_id, p.products_image, p.products_tax_class_id, if(s.status, s.specials_new_products_price, p.products_price) as products_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id where products_status = '1' order by p.products_date_added desc limit " . MAX_DISPLAY_NEW_PRODUCTS);
 } else {
$new_products_query = tep_db_query("select distinct p.products_id, p.products_image, p.products_tax_class_id, if(s.status, s.specials_new_products_price, p.products_price) as products_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_CATEGORIES . " c where p.products_id = p2c.products_id and p2c.categories_id = c.categories_id and c.parent_id = '" . (int)$new_products_category_id . "' and p.products_status = '1' order by p.products_date_added desc limit " . MAX_DISPLAY_NEW_PRODUCTS);
 }

 $row = 0;
 $col = 0;
 $index = 0;
 $info_box_contents = array();
 while ($new_products = tep_db_fetch_array($new_products_query)) {
if( !$index ) {
  $info_box_contents_head = array();
  $info_box_contents_head[] = array('text' => sprintf(TABLE_HEADING_NEW_PRODUCTS, strftime('%B')));
  new contentBoxHeading($info_box_contents_head);
}

$new_products['products_name'] = tep_get_products_name($new_products['products_id']);
$info_box_contents[$row][$col] = array('align' => 'center',
									   'params' => 'class="smallText" width="33%" valign="top"',
									   'text' => '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $new_products['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $new_products['products_image'], $new_products['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a><br><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $new_products['products_id']) . '">' . $new_products['products_name'] . '</a><br>' . $currencies->display_price($new_products['products_price'], tep_get_tax_rate($new_products['products_tax_class_id'])));

$col ++;
if ($col > 2) {
  $col = 0;
  $row ++;
}

$index++;
if( $index > 1 ) {
  $index = 0;
  new contentBox($info_box_contents);
  $info_box_contents = array();
  $row = 0;
  $col = 0;
}

 }

 new contentBox($info_box_contents);
?>
<!-- new_products_eof //-->

 

you may have to add your own code to setup different headers, spacing etc.

Posted

is there any way to have it like:

item title - price

instead?

 

this one just posts:

image

title

price

in tables

Posted

Thank you so much for your answer Mark, I will try to adapt the code you sent me. It was a great hint! :)

Posted

Mark, I will pm you concerning this issue, hope you don?t mind. I don?t manage to attach a .gif file here to show you how I would like the table to look for the new_products module.

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...