Jump to content

Archived

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

Guest

product listing + extra field

Recommended Posts

Guest

Hi Guys, wondering if someone can help?

 

I have added an extra column to my products table in mysql. The Extra column is products_author. How do i get it to show up in productlisting?

 

Thanks in advance

Share this post


Link to post
Share on other sites
Guest
Hi Guys, wondering if someone can help?

 

I have added an extra column to my products table in mysql. The Extra column is products_author. How do i get it to show up in productlisting?

 

Thanks in advance

 

Has anyone any ideas?

 

<?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_AUTHOR;
	$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' => ' ' . $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 = '';
		$lc_text = ' ' . $listing['products_model'] . ' ';
		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 = ' <a href="' . tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&' : '') . 'products_id=' . $listing['products_id']) . '">' . $listing['products_name'] . '</a> ';
		}
		break;
	  case 'PRODUCT_LIST_MANUFACTURER':
		$lc_align = '';
		$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'])) {
		  $lc_text = ' <s>' .  $currencies->display_price($listing['products_price'], tep_get_tax_rate($listing['products_tax_class_id'])) . '</s>  <span class="productSpecialPrice">' . $currencies->display_price($listing['specials_new_products_price'], tep_get_tax_rate($listing['products_tax_class_id'])) . '</span> ';
		} else {
		  $lc_text = ' ' . $currencies->display_price($listing['products_price'], tep_get_tax_rate($listing['products_tax_class_id'])) . ' ';
		}
		break;
	  case 'PRODUCT_LIST_QUANTITY':
		$lc_align = 'right';
		$lc_text = ' ' . $listing['products_quantity'] . ' ';
		break;
	  case 'PRODUCT_LIST_WEIGHT':
		$lc_align = 'center';
		$lc_text = ' ' . $listing['products_author'] . ' ';
		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 = ' <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;
	}

	$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
 }
?>

Share this post


Link to post
Share on other sites

BACKUP BEFORE YOU TRY THIS.

 

# -----> Open catalog/index.php

#

# Find :

 

// create column list

$define_list = array('PRODUCT_LIST_MODEL' => PRODUCT_LIST_MODEL,

#

# After, add :

 

'PRODUCT_LIST_AUTHOR' => PRODUCT_LIST_AUTHOR,

#

# Find :

#

case 'PRODUCT_LIST_MODEL':

$select_column_list .= 'p.products_model, ';

break;

#

# After, add :

 

 

case 'PRODUCT_LIST_AUTHOR:

$select_column_list .= 'p.products_author, ';

break;

 

#

# Find :

#

case 'PRODUCT_LIST_MODEL':

$listing_sql .= "p.products_model " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";

break;

#

# After, add :

 

 

case 'PRODUCT_LIST_AUTHOR':

$listing_sql .= "p.products_author " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";

break;

 

# -----> Open catalog/includes/modules/product_listing.php

#

 

 

# Find :

#

case 'PRODUCT_LIST_MODEL':

$lc_text = TABLE_HEADING_MODEL;

$lc_align = '';

break;

#

# After, add :

 

 

case 'PRODUCT_LIST_AUTHOR':

$lc_text = TABLE_HEADING_AUTHOR;

$lc_align = '';

break;

 

 

# Find :

#

switch ($column_list[$col]) {

case 'PRODUCT_LIST_MODEL':

$lc_align = '';

$lc_text = ' ' . $listing['products_model'] . ' ';

break;

#

# After, add :

 

 

case 'PRODUCT_LIST_AUTHOR':

$lc_align = '';

$lc_text = ' ' . $listing['products_author'] . ' ';

break;

 

# -----> Open catalog/include/languages/english/index.php

 

Add

 

define('TABLE_HEADING_AUTHOR', 'Product Author');

 

I used MODEL as an example, you must add after the field you specified.

Share this post


Link to post
Share on other sites
Guest
BACKUP BEFORE YOU TRY THIS.

 

# -----> Open catalog/index.php

#

# Find :

 

// create column list

$define_list = array('PRODUCT_LIST_MODEL' => PRODUCT_LIST_MODEL,

#

# After, add :

 

'PRODUCT_LIST_AUTHOR' => PRODUCT_LIST_AUTHOR,

#

# Find :

#

case 'PRODUCT_LIST_MODEL':

$select_column_list .= 'p.products_model, ';

break;

#

# After, add :

 

 

case 'PRODUCT_LIST_AUTHOR:

$select_column_list .= 'p.products_author, ';

break;

 

#

# Find :

#

case 'PRODUCT_LIST_MODEL':

$listing_sql .= "p.products_model " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";

break;

#

# After, add :

 

 

case 'PRODUCT_LIST_AUTHOR':

$listing_sql .= "p.products_author " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";

break;

 

# -----> Open catalog/includes/modules/product_listing.php

#

 

 

# Find :

#

case 'PRODUCT_LIST_MODEL':

$lc_text = TABLE_HEADING_MODEL;

$lc_align = '';

break;

#

# After, add :

 

 

case 'PRODUCT_LIST_AUTHOR':

$lc_text = TABLE_HEADING_AUTHOR;

$lc_align = '';

break;

 

 

# Find :

#

switch ($column_list[$col]) {

case 'PRODUCT_LIST_MODEL':

$lc_align = '';

$lc_text = ' ' . $listing['products_model'] . ' ';

break;

#

# After, add :

 

 

case 'PRODUCT_LIST_AUTHOR':

$lc_align = '';

$lc_text = ' ' . $listing['products_author'] . ' ';

break;

 

# -----> Open catalog/include/languages/english/index.php

 

Add

 

define('TABLE_HEADING_AUTHOR', 'Product Author');

 

I used MODEL as an example, you must add after the field you specified.

Thanks for your help, although it is not working (no errirs just not displaying the columns) i will tinker about a bit more, thanks again.

Share this post


Link to post
Share on other sites
Thanks for your help, although it is not working (no errirs just not displaying the columns) i will tinker about a bit more, thanks again.

 

Try the contribution New field everywhere, it will give you a step by step guide to adding a field.

Share this post


Link to post
Share on other sites

Well you guys are really nearly there!!!

 

its the very first bit:

 

find:

// create column list

$define_list = array('PRODUCT_LIST_MODEL' => PRODUCT_LIST_MODEL,

#

# After, add :

'PRODUCT_LIST_AUTHOR' => PRODUCT_LIST_AUTHOR,

 

 

you are setting a value that is normally pulled out of the database table "configurations" (like PRODUCT_LIST_MODEL) cos its set in the configuration options . . . so I did it the lazy way and just put

 

find:

// create column list

$define_list = array('PRODUCT_LIST_MODEL' => PRODUCT_LIST_MODEL,

#

# After, add :

'PRODUCT_LIST_AUTHOR' => 1,

 

 

 

and everything worked . . . !!! I guess the really correct way to go is to add the coulmn heading to the admin config so it can pull the "1" from the database . . (the number signifies the sort order for the columns, by the way as per admin>configuration>product listing settings . . .

 

 

:)

Share this post


Link to post
Share on other sites

×