Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Change the number of new products on the front page


xecutable

Recommended Posts

I was wondering if I could change the number on the front page of my site, from 4 to 6. Meaning 2 columns with 3 rows.

I was looking into the new_products.php module and found the following:

 

$col ++;

if ($col > 2) {

$col = 0;

$row ++;

 

now it's been years since i haven't coded but is that the place where it calculates how many rows and columns will be drawn? I did try to play with it a little but all i could do was make it show 2 columns 1 row.

Link to comment
Share on other sites

I was wondering if I could change the number on the front page of my site, from 4 to 6. Meaning 2 columns with 3 rows.

I was looking into the new_products.php module and found the following:

 

$col ++;

if ($col > 2) {

$col = 0;

$row ++;

 

now it's been years since i haven't coded but is that the place where it calculates how many rows and columns will be drawn? I did try to play with it a little but all i could do was make it show 2 columns 1 row.

 

I meant to say the number of New Products on my front page*

Link to comment
Share on other sites

Changeing if ($col > 2) to if ($col > 1) will mean there will be 2 pictures per row. Just remember that whatever number you put in there, there will be 1 more picture than that in your row.

Link to comment
Share on other sites

Changeing if ($col > 2) to if ($col > 1) will mean there will be 2 pictures per row. Just remember that whatever number you put in there, there will be 1 more picture than that in your row.

 

Hmmm what i get from the change above and a change in the New Products Module - max number of new products to display is 3 rows and 2 colms, but only the last row had 2 Items the others had only 1 item in it.

Link to comment
Share on other sites

In your admin under configuration->Maximum Values there is a setting called New Products Module. By default it is set to 9. That is 9 products or pictures in your new products for april.

In the above code, if ($col > 2) default code, that will show as 3 pics accross and 3 pics down. 3 rows and 3 colu,ms. If you want 2 pics accross (2 columns) then change if ($col > 2) to a 1. With max 9 pics that will give you 5 rows with 2 pics in the first 4 rows and 1 in the fifth.

Link to comment
Share on other sites

Hi executable.

Sorry to bump in here, but it looks like you are using a similar template to what im using...

I have a minor problem with my cart....i checked out your Cart and the 2 problems i seem to be having dont seem to be present in your template, could i ask of you a massive favor and ask you to PM/email me the few files im strugling with?

 

You can see my topics here:

Cart not updating: http://www.oscommerce.com/forums/index.php?showtopic=299213

and

Buy now button on New products not working: http://www.oscommerce.com/forums/index.php?showtopic=299214

 

my cart is here: http://www.directbmx.co.za/catalog/

Link to comment
Share on other sites

Hey thanks for the explanation how the whole thing works. I have left everything by default New Products module - 9 and if ($col > 2) but as you can see on my page http://kartipamet.com i see only 2 x 2. It's in Cyrillic so don't worry if it can't be read.

Not sure how templates are set up or work but if youcan post your catalog/includes/modules/new_products.php maybe we can find the solution.

Link to comment
Share on other sites

<!-- new_products //-->
<tr>
<td>
<?php
 $info_box_contents = array();
 $info_box_contents[] = array('text' => '<div class="header">'.TABLE_HEADING_NEW_PRODUCTS.'</div>');

 new contentBoxHeading($info_box_contents);
?>
<div style="background-color:#FFF;">
<?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;
 $info_box_contents = array();
 while ($new_products = tep_db_fetch_array($new_products_query)) {
   $new_products['products_name'] = tep_get_products_name($new_products['products_id']);

$sql = 'SELECT `products_description` FROM `products_description` WHERE products_id ='.$new_products['products_id'].' && language_id='.(int)$languages_id;
$description_query = tep_db_query($sql);
$description = mysql_fetch_array($description_query, MYSQL_ASSOC);        
$description['products_description'] = substr($description['products_description'], 0, 65);
$desc_len = strlen($description['products_description']);
$description['products_description'][$desc_len-1] = '.';
$description['products_description'][$desc_len-2] = '.';
$description['products_description'][$desc_len-3] = '.';

if  ( ($col == 1 && $row == 0) || ($col == 1 && $row == 2) ){
$info_box_contents[$row][$col] = array('align' => 'center',
                                          'params' => 'width="1" height="100%" valign="middle" ',
                                          'text' => '<table height="" width="100%" border="0" cellspacing="0" cellpadding="0" >
 <tr>
   <td><div style="width:1px;"></div></td>
 </tr>
</table>');
}
elseif (($col == 0 && $row == 1) || ($col == 2 && $row == 1)) {
$info_box_contents[$row][$col] = array('align' => 'center',
                                          'params' => 'height="1"',
                                          'text' => '<table width="95%" border="0" cellspacing="0" cellpadding="0" >
 <tr>
   <td style="font-size:1px;background:url(images/points.gif) repeat-x;"> </td>
 </tr>
</table>');
}
elseif ($col == 1 && $row == 1) {
$info_box_contents[$row][$col] = array('align' => '',
                                          'params' => '',
                                          'text' => ' ');
}
else {	
   $info_box_contents[$row][$col] = array('align' => 'center',
                                          'params' => 'class="main" width="50%"  valign="top" align="left"',
                                          'text' => '<table width="96%" cellpadding=0 cellspacing=0 border=0 style="margin-bottom:7px;">
									   				<tr>
															<td rowspan="2"><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, 'align="absmiddle"') . '</a></td>
															<td height="35" style="padding-right:10px;"><div class="productName">'.$new_products['products_name'].'</div></td>
													</tr>
													<tr>
														<td height="32" ><span style="color:#C20000; font-size:20px; "> ' . $currencies->display_price($new_products['products_price'], tep_get_tax_rate($new_products['products_tax_class_id'])).'</span></td>
													</tr>
													<tr>
														<td colspan="2" height="1" align="left" style="padding:0px 10px;"><div style="background:url(images/dotted.gif);"><img src="images/dotted.gif" width="3" height="1" alt="" /></div></td>
													</tr>

													<tr>		
															<td colspan="2" class="main" valign=top align="right" style="padding-right:10px; >'. tep_draw_form('cart_quantity', tep_href_link(FILENAME_PRODUCT_INFO, tep_get_all_get_params(array('action')) . 'action=add_product')).'
																<table width="100%"  border="0" cellspacing="0" cellpadding="0">
																  <tr>    
																	<td style="padding-top:1px; padding-right:1px;" ><a href="'.tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $new_products['products_id']).'">'.tep_image_button('button_details.gif', IMAGE_BUTTON_DETAILS).'</a></td><td style="padding-top:1px;"><a href="' . tep_href_link(FILENAME_DEFAULT, tep_get_all_get_params(array('action')) . 'action=buy_now&products_id=' . $new_products['products_id']) . '">' . tep_image_button('button_in_cart.gif', IMAGE_BUTTON_IN_CART) . '</a></td>
																  </tr>
																</table></form>
															</td>
														</tr>
													</table>'); }


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

 }
 new contentBox($info_box_contents, 0);

?>
</div>
</td>
</tr>

 

 

Here it is the whole thing

Link to comment
Share on other sites

Seems my carts new_products.php page is also only showing a couple products, i would also like to bump it up to 4 maybe 6 items. I looked around in my new_products.php file and messed around a lil with code (that xecutable mentioned) below but had no luck....but

 

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

 

 

i found another area and made some changes thier...its works but i cant figure out what needs to be changed to how much...

I got 3 products in 1 row with a bit of testing, and with a bit more 2 products in the top rom and 1 below where there wasnt one before, but it over laps a little with the footer images.

so it seems to be possible. I just need to spend more time on it to test a few more options. Maybe if one of you guys who know what thier doing can suggest the corect combination...

 

this from my new_products.php (similar, maybe same as xecutables)

 

in or around line #50

 

if  ( ($col == 1 && $row == 0) || ($col == 1 && $row == 2) ){

 

 

in or around line #59

elseif (($col == 1 && $row == 2) || ($col == 2 && $row == 2)) {

 

ive left t as is for now on my site: http://directbmx.co.za/catalog , reflecting the changes i made.

Link to comment
Share on other sites

  • 1 month later...

hello

 

What I have done to get 2 col x 4 row like this:

 

[_][_]

[_][_]

[_][_]

[_][_]

 

 

I changed "Maximum values > New Products Module" = 25.

 

in "catalog/includes/modules/new_products.php"

 

in or arround line 23 - 24:

  $row = 4;
 $col = 0;

 

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

 

but still have a small problem, it will not show the latest new product untell you add new one. whech means one new product will be missing from the new_products.

 

hope that will help anyone somehow.

Link to comment
Share on other sites

  • 8 months later...
I was wondering if I could change the number on the front page of my site, from 4 to 6. Meaning 2 columns with 3 rows.

I was looking into the new_products.php module and found the following:

 

$col ++;

if ($col > 2) {

$col = 0;

$row ++;

 

now it's been years since i haven't coded but is that the place where it calculates how many rows and columns will be drawn? I did try to play with it a little but all i could do was make it show 2 columns 1 row.

 

 

2 COLUMN with 3 ROWS:

 

STEP#1

Find this code:

 

$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);

 

Replace with:

$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 " . 6);

} 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);

 

STEP #2

Find for code:

 

}

$col ++;

if ($col > 2) {

$col = 0;

$row ++;

}

 

Replace with:

 

$col ++;

if ($col > 1) {

$col = 0;

$row ++;

}

}

 

Please Note:

You see that closing sign "}" before $col ++;

Cut and paste under sign }

 

I hope this can help you all... ;)

Link to comment
Share on other sites

Archived

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

×
×
  • Create New...