Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Adding new column to product listing


xtinexoop

Recommended Posts

Hi

 

I am attempting to add product availability to the product listing. I have the product availability contribution which has added extra fields to the products table...

 

I have amended catalog/index.php and catalog/includes/modules/product_listing.php but I am getting nowhere - I am obviously missing something - mainly a lack of understanding of php and sql!!! :lol:

 

Here is my index.php and product_listing.php - HELP!!!!!

 

**********index.php*******

<?php

 

/*

 

$Id: index.php,v 1.1 2003/06/11 17:37:59 hpdl Exp $

 

 

 

osCommerce, Open Source E-Commerce Solutions

 

http://www.oscommerce.com

 

 

 

Copyright © 2003 osCommerce

 

 

 

Master Products - JOHNSON - 05/07/2003 matti@suomedia.com

 

 

 

Copyright © 2003 Suomedia - Dynamic Content Management

 

 

 

Released under the GNU General Public License

 

*/

 

 

 

require('includes/application_top.php');

 

 

 

// the following cPath references come from application_top.php

 

$category_depth = 'top';

 

if (isset($cPath) && tep_not_null($cPath)) {

 

$categories_products_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_TO_CATEGORIES . " where categories_id = '" . (int)$current_category_id . "'");

 

$cateqories_products = tep_db_fetch_array($categories_products_query);

 

if ($cateqories_products['total'] > 0) {

 

$category_depth = 'products'; // display products

 

} else {

 

$category_parent_query = tep_db_query("select count(*) as total from " . TABLE_CATEGORIES . " where parent_id = '" . (int)$current_category_id . "'");

 

$category_parent = tep_db_fetch_array($category_parent_query);

 

if ($category_parent['total'] > 0) {

 

$category_depth = 'nested'; // navigate through the categories

 

} else {

 

$category_depth = 'products'; // category has no products, but display the 'no products' message

 

}

 

}

 

}

 

 

 

require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_DEFAULT);

 

?>

 

<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">

 

<html <?php echo HTML_PARAMS; ?>>

 

<head>

 

<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">

 

<title><?php echo TITLE; ?></title>

 

<base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>">

 

<link rel="stylesheet" type="text/css" href="stylesheet.css">

 

</head>

 

<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0">

 

<!-- header //-->

 

<?php require(DIR_WS_INCLUDES . 'header.php'); ?>

 

<!-- header_eof //-->

 

 

 

<!-- body //-->

 

<table border="0" width="100%" cellspacing="3" cellpadding="3">

 

<tr>

 

<td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2">

 

<!-- left_navigation //-->

 

<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>

 

<!-- left_navigation_eof //-->

 

</table></td>

 

<!-- body_text //-->

 

<?php

 

if ($category_depth == 'nested') {

 

$category_query = tep_db_query("select cd.categories_name, c.categories_image from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = '" . (int)$current_category_id . "' and cd.categories_id = '" . (int)$current_category_id . "' and cd.language_id = '" . (int)$languages_id . "'");

 

$category = tep_db_fetch_array($category_query);

 

?>

 

<td width="100%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="0">

 

<tr>

 

<td><table border="0" width="100%" cellspacing="0" cellpadding="0">

 

<tr>

 

<td class="pageHeading"><?php echo $breadcrumb->last(); ?></td>

 

<td class="pageHeading" align="right"><?php echo tep_image(DIR_WS_IMAGES . $category['categories_image'], $category['categories_name'], HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>

 

</tr>

 

</table></td>

 

</tr>

 

<tr>

 

<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>

 

</tr>

 

<tr>

 

<td><table border="0" width="100%" cellspacing="0" cellpadding="2">

 

<tr>

 

<td><table border="0" width="100%" cellspacing="0" cellpadding="2">

 

<tr>

 

<?php

 

if (isset($cPath) && strpos('_', $cPath)) {

 

// check to see if there are deeper categories within the current category

 

$category_links = array_reverse($cPath_array);

 

for($i=0, $n=sizeof($category_links); $i<$n; $i++) {

 

$categories_query = tep_db_query("select count(*) as total from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . (int)$category_links[$i] . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "'");

 

$categories = tep_db_fetch_array($categories_query);

 

if ($categories['total'] < 1) {

 

// do nothing, go through the loop

 

} else {

 

$categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.categories_image, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . (int)$category_links[$i] . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "' order by sort_order, cd.categories_name");

 

break; // we've found the deepest category the customer is in

 

}

 

}

 

} else {

 

$categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.categories_image, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . (int)$current_category_id . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "' order by sort_order, cd.categories_name");

 

}

 

 

 

$number_of_categories = tep_db_num_rows($categories_query);

 

 

 

$rows = 0;

 

while ($categories = tep_db_fetch_array($categories_query)) {

 

$rows++;

 

$cPath_new = tep_get_path($categories['categories_id']);

 

$width = (int)(100 / MAX_DISPLAY_CATEGORIES_PER_ROW) . '%';

 

echo ' <td align="center" class="smallText" width="' . $width . '" valign="top"><a href="' . tep_href_link(FILENAME_DEFAULT, $cPath_new) . '">' . tep_image(DIR_WS_IMAGES . $categories['categories_image'], $categories['categories_name'], SUBCATEGORY_IMAGE_WIDTH, SUBCATEGORY_IMAGE_HEIGHT) . '<br>' . $categories['categories_name'] . '</a></td>' . "\n";

 

if ((($rows / MAX_DISPLAY_CATEGORIES_PER_ROW) == floor($rows / MAX_DISPLAY_CATEGORIES_PER_ROW)) && ($rows != $number_of_categories)) {

 

echo ' </tr>' . "\n";

 

echo ' <tr>' . "\n";

 

}

 

}

 

 

 

// needed for the new products module shown below

 

$new_products_category_id = $current_category_id;

 

?>

 

</tr>

 

</table></td>

 

</tr>

 

<tr>

 

<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>

 

</tr>

 

<tr>

 

<td><?php include(DIR_WS_MODULES . FILENAME_NEW_PRODUCTS); ?></td>

 

</tr>

 

</table></td>

 

</tr>

 

</table></td>

 

<?php

 

} elseif ($category_depth == 'products' || isset($HTTP_GET_VARS['manufacturers_id'])) {

 

// create column list

 

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

 

'PRODUCT_LIST_NAME' => PRODUCT_LIST_NAME,

 

'PRODUCT_LIST_MANUFACTURER' => PRODUCT_LIST_MANUFACTURER,

 

'PRODUCT_LIST_PRICE' => PRODUCT_LIST_PRICE,

 

'PRODUCT_LIST_QUANTITY' => PRODUCT_LIST_QUANTITY,

 

'PRODUCT_LIST_AVAILABILITY' => PRODUCT_LIST_AVAILABILITY,

 

'PRODUCT_LIST_WEIGHT' => PRODUCT_LIST_WEIGHT,

 

'PRODUCT_LIST_IMAGE' => PRODUCT_LIST_IMAGE,

 

'PRODUCT_LIST_BUY_NOW' => PRODUCT_LIST_BUY_NOW);

 

 

 

 

asort($define_list);

 

 

 

$column_list = array();

 

reset($define_list);

 

while (list($key, $value) = each($define_list)) {

 

if ($value > 0) $column_list[] = $key;

 

}

 

 

 

$select_column_list = '';

 

 

 

for ($i=0, $n=sizeof($column_list); $i<$n; $i++) {

 

switch ($column_list[$i]) {

 

case 'PRODUCT_LIST_MODEL':

 

$select_column_list .= 'p.products_model, ';

 

break;

 

case 'PRODUCT_LIST_NAME':

 

$select_column_list .= 'pd.products_name, ';

 

break;

 

case 'PRODUCT_LIST_MANUFACTURER':

 

$select_column_list .= 'm.manufacturers_name, ';

 

break;

 

case 'PRODUCT_LIST_QUANTITY':

 

$select_column_list .= 'p.products_quantity, ';

 

break;

case 'PRODUCT_LIST_AVAILABILITY':

 

$select_column_list .= 'p.products_availability_id, ';

 

break;

 

case 'PRODUCT_LIST_IMAGE':

 

$select_column_list .= 'p.products_image, ';

 

break;

 

case 'PRODUCT_LIST_WEIGHT':

 

$select_column_list .= 'p.products_weight, ';

 

break;

 

}

 

}

 

 

 

// show the products of a specified manufacturer

 

if (isset($HTTP_GET_VARS['manufacturers_id'])) {

 

if (isset($HTTP_GET_VARS['filter_id']) && tep_not_null($HTTP_GET_VARS['filter_id'])) {

 

// We are asked to show only a specific category

 

$listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_price1,p.products_price2,p.products_price3,p.products_price4,p.produc

ts_price1_qty,p.products_price2,p.products_price3_qty,p.products_price4_qty,p.pro

ducts_qty_blocks, p.products_availability_id, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$HTTP_GET_VARS['filter_id'] . "'";

 

} else {

 

// We show them all

 

$listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_price1,p.products_price2,p.products_price3,p.products_price4,p.produc

ts_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_price4_qty,p

.products_qty_blocks,p.products_availability_id, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS . " p left join " . TABLE_MANUFACTURERS . " m on p.manufacturers_id = m.manufacturers_id, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$current_category_id . "'";

 

}

 

} else {

 

// show the products in a given categorie

 

if (isset($HTTP_GET_VARS['filter_id']) && tep_not_null($HTTP_GET_VARS['filter_id'])) {

 

// We are asked to show only specific catgeory

 

$listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_price1,p.products_price2,p.products_price3,p.products_price4,p.produc

ts_price1_qty,p.products_price2_qty,p.products_price3_qty,p.products_price4_qty,p

.products_qty_blocks, p.products_availability_id, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['filter_id'] . "' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$current_category_id . "'";

 

} else {

 

// We show them all

 

//Master Products

 

$listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_master, p.products_master_status, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS . " p left join " . TABLE_MANUFACTURERS . " m on p.manufacturers_id = m.manufacturers_id, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id where p.products_status = '1' and p.products_listing_status = '1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$current_category_id . "'";

 

}

 

}

 

//Master Products EOF

 

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_NAME') {

 

$HTTP_GET_VARS['sort'] = $i+1 . 'a';

 

$listing_sql .= " order by pd.products_name";

 

break;

 

}

 

}

 

} else {

 

$sort_col = substr($HTTP_GET_VARS['sort'], 0 , 1);

 

$sort_order = substr($HTTP_GET_VARS['sort'], 1);

 

$listing_sql .= ' order by ';

 

switch ($column_list[$sort_col-1]) {

 

case 'PRODUCT_LIST_MODEL':

 

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

 

break;

 

case 'PRODUCT_LIST_NAME':

 

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

 

break;

 

case 'PRODUCT_LIST_MANUFACTURER':

 

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

 

break;

 

case 'PRODUCT_LIST_QUANTITY':

 

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

 

break;

case 'PRODUCT_LIST_AVAILABILITY':

 

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

 

break;

case 'PRODUCT_LIST_IMAGE':

 

$listing_sql .= "pd.products_name";

 

break;

 

case 'PRODUCT_LIST_WEIGHT':

 

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

 

break;

 

case 'PRODUCT_LIST_PRICE':

 

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

 

break;

 

}

 

}

 

?>

 

<td width="100%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="0">

 

<tr>

 

<td><table border="0" width="100%" cellspacing="0" cellpadding="0">

 

<tr>

 

<td class="pageHeading"><?php echo $breadcrumb->last(); ?></td>

 

<?php

 

// optional Product List Filter

 

if (PRODUCT_LIST_FILTER > 0) {

 

if (isset($HTTP_GET_VARS['manufacturers_id'])) {

 

$filterlist_sql = "select distinct c.categories_id as id, cd.categories_name as name from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where p.products_status = '1' and p.products_id = p2c.products_id and p2c.categories_id = c.categories_id and p2c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "' and p.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "' order by cd.categories_name";

 

} else {

 

$filterlist_sql= "select distinct m.manufacturers_id as id, m.manufacturers_name as name from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_MANUFACTURERS . " m where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and p.products_id = p2c.products_id and p2c.categories_id = '" . (int)$current_category_id . "' order by m.manufacturers_name";

 

}

 

$filterlist_query = tep_db_query($filterlist_sql);

 

if (tep_db_num_rows($filterlist_query) > 1) {

 

echo ' <td align="center" class="main">' . tep_draw_form('filter', FILENAME_DEFAULT, 'get') . TEXT_SHOW . ' ';

 

if (isset($HTTP_GET_VARS['manufacturers_id'])) {

 

echo tep_draw_hidden_field('manufacturers_id', $HTTP_GET_VARS['manufacturers_id']);

 

$options = array(array('id' => '', 'text' => TEXT_ALL_CATEGORIES));

 

} else {

 

echo tep_draw_hidden_field('cPath', $cPath);

 

$options = array(array('id' => '', 'text' => TEXT_ALL_MANUFACTURERS));

 

}

 

echo tep_draw_hidden_field('sort', $HTTP_GET_VARS['sort']);

 

while ($filterlist = tep_db_fetch_array($filterlist_query)) {

 

$options[] = array('id' => $filterlist['id'], 'text' => $filterlist['name']);

 

}

 

echo tep_draw_pull_down_menu('filter_id', $options, (isset($HTTP_GET_VARS['filter_id']) ? $HTTP_GET_VARS['filter_id'] : ''), 'onchange="this.form.submit()"');

 

echo '</form></td>' . "\n";

 

}

 

}

 

 

 

// Get the right image for the top-right

 

// $image = DIR_WS_IMAGES . 'table_background_list.gif';

 

// if (isset($HTTP_GET_VARS['manufacturers_id'])) {

 

// $image = tep_db_query("select manufacturers_image from " . TABLE_MANUFACTURERS . " where manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'");

 

// $image = tep_db_fetch_array($image);

 

// $image = $image['manufacturers_image'];

 

// } elseif ($current_category_id) {

 

// $image = tep_db_query("select categories_image from " . TABLE_CATEGORIES . " where categories_id = '" . (int)$current_category_id . "'");

 

// $image = tep_db_fetch_array($image);

 

// $image = $image['categories_image'];

 

// }

 

?>

 

<td align="right"><?php echo tep_image(DIR_WS_IMAGES . $image, HEADING_TITLE, HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>

 

</tr>

 

</table></td>

 

</tr>

 

<tr>

 

<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>

 

</tr>

 

<tr>

 

<td><?php include(DIR_WS_MODULES . FILENAME_PRODUCT_LISTING); ?></td>

 

</tr>

 

</table></td>

 

<?php

 

} else { // default page

 

?>

 

<td width="100%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="0">

 

<tr>

 

<td><table border="0" width="100%" cellspacing="0" cellpadding="0">

 

<tr>

 

<td class="pageHeading"><?php echo HEADING_TITLE . ' ' . tep_get_categories_name($cPath); ?></td>

 

<td class="pageHeading" align="right"><?php echo tep_image(DIR_WS_IMAGES . 'table_background_default.gif', HEADING_TITLE, HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>

 

</tr>

 

</table></td>

 

</tr>

 

<tr>

 

<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>

 

</tr>

 

<tr>

 

<td><table border="0" width="100%" cellspacing="0" cellpadding="0">

 

<tr>

 

<td class="main"><?php echo tep_customer_greeting(); ?></td>

 

</tr>

 

<tr>

 

<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>

 

</tr>

 

<tr>

 

<td class="main"><?php include(DIR_WS_LANGUAGES . $language . '/' . FILENAME_DEFINE_MAINPAGE); ?></td>

 

</tr>

 

<tr>

 

<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>

 

</tr>

 

<tr>

 

<td><?php include(DIR_WS_MODULES . FILENAME_NEW_PRODUCTS); ?></td>

 

</tr>

 

<?php

 

include(DIR_WS_MODULES . FILENAME_UPCOMING_PRODUCTS);

 

?>

 

</table></td>

 

</tr>

 

</table></td>

 

<?php

 

}

 

?>

 

<!-- body_text_eof //-->

 

<td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2">

 

<!-- right_navigation //-->

 

<?php require(DIR_WS_INCLUDES . 'column_right.php'); ?>

 

<!-- right_navigation_eof //-->

 

</table></td>

 

</tr>

 

</table>

 

<!-- body_eof //-->

 

 

 

<!-- footer //-->

 

<?php require(DIR_WS_INCLUDES . 'footer.php'); ?>

 

<!-- footer_eof //-->

 

<br>

 

</body>

 

</html>

 

<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>

 

*********************** end of index.php *********

 

 

**********product_listing.php****************

<?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 © 2003 osCommerce

 

 

 

Master Products - JOHNSON - 05/07/2003 matti@suomedia.com

 

 

 

Copyright © 2003 Suomedia - Dynamic Content Management

 

 

 

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_AVAILABILITY':

$lc_text = 'AVAILABILITY';

 

$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' => ' ' . $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';

 

$pf->parse($listing);

 

$lc_text = $pf->getPriceStringShort();

 

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_QUANTITY':

$lc_align = 'center';

$prod_quantity = $listing['products_quantity'];

$minus = ($prod_quantity <= 0);

$red = ($prod_quantity == NULL);

$yellow = ($prod_quantity == 12);

$green = ($prod_quantity == 14);

 

switch ($prod_quantity) {

case $minu:

$img = tep_image(DIR_WS_ICONS . 'icon_status_red.gif', TEXT_NOT_AVAIBLE).'<br>'.TEXT_NOT_AVAIBLE ;

break;

case $red:

$img = tep_image(DIR_WS_ICONS . 'icon_status_red.gif', TEXT_NOT_AVAIBLE).'<br>'.TEXT_NOT_AVAIBLE ;

break;

case $yellow :

$img = tep_image(DIR_WS_ICONS . 'icon_status_yellow.gif', TEXT_FEW_QTY).'<br>'.TEXT_FEW_QTY ;

break;

case $green :

$img = tep_image(DIR_WS_ICONS . 'icon_status_green.gif', TEXT_BIG_QTY).'<br>'.TEXT_BIG_QTY ;

break;

}

$lc_text = $img ;

break; */

 

case 'PRODUCT_LIST_AVAILABILITY':

$lc_align = 'right';

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

break;

 

case 'PRODUCT_LIST_WEIGHT':

 

$lc_align = 'right';

 

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

 

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';

 

//Master Products

 

if ($listing['products_master_status'] != '1' && $listing['products_master'] == '0') {

 

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

 

} elseif ($listing['products_master'] != '0') {

 

$lc_text = ' <a href="' . tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&' : '') . 'products_id=' . $listing['products_master']) . '">' . tep_image_button('button_buy_now.gif', IMAGE_BUTTON_BUY_NOW) . '</a> ';

 

} else {

 

$lc_text = ' <a href="' . tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&' : '') . 'products_id=' . $listing['products_id']) . '">' . tep_image_button('button_buy_now.gif', IMAGE_BUTTON_BUY_NOW) . '</a> ';

 

}

 

//Master Products EOF

 

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

 

}

 

?>

*****************end of product_listing.php***************

 

 

Hope someone can help me soon....

 

 

Christine

Link to comment
Share on other sites

Sorted - sort of...

 

 

I found a posting eventually about adding new fields... and realised that I needed to match the database change that the availability contribution had made to admin configuration - so I changed everywhere I had product_list_availability to product_list_products_availability and hey presto...

 

I now get the product availability id - now I just need to work out how to make it the name!

 

 

Christine

Link to comment
Share on other sites

Hmmm... spoke too soon...

 

When I click on my Availibility heading (to sort by availability) this is what I get...

 

1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'limit 0, 20' at line 1

 

select p.products_image, pd.products_name, p.products_quantity, p.products_availability_id, p.products_id, p.manufacturers_id, p.products_price, p.products_master, p.products_master_status, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_listing_status = '1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '1' and p2c.categories_id = '7' order by limit 0, 20

 

 

Any ideas?

 

 

Christine

Link to comment
Share on other sites

Hi

 

As well as the above problem could someone take a look at this please and point me in the right direction?

 

I have defined in general.php a function as follows:

 

// TABLES: PRODUCTS and PRODUCT_AVAILABILITY

 

function tep_get_products_availability_name($product_id) {

 

global $languages_id;

 

 

 

if (empty($language)) $language = $languages_id;

 

 

 

$product_query = tep_db_query("select products_availability_name from " . TABLE_PRODUCTS_AVAILABILITY . " where products_availability_id = '" . $product_id . "' and language_id = '" . (int)$language . "'");

 

$product_availability_name = tep_db_fetch_array($product_query);

 

 

 

return $product_availability_name['products_availabiltiy'];

 

}

 

and I am trying to use it in product_listing.php

 

 

case 'PRODUCT_LIST_PRODUCTS_AVAILABILITY':

 

$lc_align = 'right';

 

$lc_text = ' ' . tep_get_products_availability_name($listing['products_availability_id']) . ' ';

break;

 

 

Its obviously wrong - but how?

 

 

Christine

Link to comment
Share on other sites

Archived

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

×
×
  • Create New...