Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Compare side by side problem with product_listing.php


radhavallabh

Recommended Posts

Hi I was adding Compare Side by Side contribution to my store oscommerce 2.2rca but the product_listing.php showed on your package are way too different from mines which I have modded too;

the product_listing code is below cud u help me to where the code has to be added as it completely differs in few places which I will mention below after pasting it;

Please help me I would be very elated to use this addon to my website.

 

My orignal product_listing.php that i use -

<?php
/*
$Id: product_listing.php 1739 2007-12-20 00:52:16Z hpdl $
osCommerce, Open Source E-Commerce Solutions
http://www.oscommerce.com
Copyright (c) 2003 osCommerce
Released under the GNU General Public License
*/
// added for New Product Icon contribution
$today_time = time();
// end addition
if (!defined('PRODUCT_LIST_COLUMNS')) {
tep_db_query(
"insert into configuration
(configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added)
VALUES ('Number of products per row', 'PRODUCT_LIST_COLUMNS', '5', 'Set the number of products per row to display?', '8', '11', now());"
);
define('PRODUCT_LIST_COLUMNS', '5');
}

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

if (tep_not_null($_GET['manufacturers_id'])) {
$manufacturer_query = tep_db_query(
"select manufacturers_name
from " . TABLE_MANUFACTURERS . "
where manufacturers_id = '" . tep_db_input($_GET['manufacturers_id']) . "';"
);
$manufacturer = tep_db_fetch_array($manufacturer_query);
$info_box_header = $manufacturer['manufacturers_name'];
if (tep_not_null($_GET['filter_id'])) {
$category_query = tep_db_query(
"select cd.categories_name
from
" . TABLE_CATEGORIES . " c,
" . TABLE_CATEGORIES_DESCRIPTION . " cd
where c.categories_id = '" . tep_db_input($_GET['filter_id']) . "'
and cd.categories_id = '" . tep_db_input($_GET['filter_id']) . "'
and cd.language_id = '" . (int)$languages_id . "'"
);
$category = tep_db_fetch_array($category_query);
$info_box_header .= ' > '. $category['categories_name'];
}
}

if (tep_not_null($current_category_id)) {
$category_query = tep_db_query(
"select cd.categories_name
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);
$info_box_header = $category['categories_name'];
}

$info_box_contents = array();
$info_box_contents[] = array('text' => $info_box_header);
new contentBoxHeading($info_box_contents);
$row = 0;
$col = 0;
$list_box_contents = array();
if ($listing_split->number_of_rows > 0) {
$listing_query = tep_db_query($listing_split->sql_query);
while ($listing = tep_db_fetch_array($listing_query)) {

$lc_align = 'center';
$lc_text = '<table cellpadding="2" cellspacing="0" border="0" style="font:Times New Roman; font-size:12px;">' . "rn";

foreach ($column_list as $column) {
switch($column) {

// Row: Products model
case 'PRODUCT_LIST_MODEL':
$lc_text .= ' <tr>' . "rn"
. ' <td align="center">'. $listing['products_model'] . '</td>' . "rn"
. ' </tr>' . "rn";
break;
// Row: Product's image
case 'PRODUCT_LIST_IMAGE':
$lc_text .= ' <tr>' . "rn"
. ' <td align="center"><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, (isset($_GET['manufacturers_id']) ? 'manufacturers_id=' . $_GET['manufacturers_id'] : ($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></td>' . "rn"
. ' </tr>' . "rn";
break;

// Row: Product's name
case 'PRODUCT_LIST_NAME':
// added for New Product Icon contribution
// 2592000 = 30 days in the unix timestamp format
if ( ($today_time - strtotime($listing['products_date_added'])) < 2592000) {
$listing['products_name'] .= ' ' . tep_image_button('icon_newarrival.gif', TEXT_ICON_NEW_PRODUCT. ' : ' . $listing['products_name'], 'align="middle"');
}
// end addition
$lc_text .= ' <tr>' . "rn"
. ' <td align="center">Item- <a href="' . tep_href_link(FILENAME_PRODUCT_INFO, (isset($_GET['manufacturers_id']) ? 'manufacturers_id=' . $_GET['manufacturers_id'] : ($cPath ? 'cPath=' . $cPath : '')) . '&products_id=' . $listing['products_id']) . '">' . $listing['products_name'] . '</a></td>' . "rn"
. ' </tr>' . "rn";
break;

// Row: Manufacturer's name
case 'PRODUCT_LIST_MANUFACTURER':
$lc_text .= ' <tr>' . "rn"
. ' <td align="center"><span style="color: #666666;">'. $listing['manufacturers_name'] . '</span></td>' . "rn"
. ' </tr>' . "rn";
break;

// Row: Price
case 'PRODUCT_LIST_PRICE':
if (tep_not_null($listing['specials_new_products_price'])) {
$lc_text .= ' <tr>' . "rn"
. ' <td align="center">Price- <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></td>' . "rn"
. ' </tr>' . "rn";
} else {
$lc_text .= ' <tr>' . "rn"
. ' <td align="center">Price- ' . $currencies->display_price($listing['products_price'], tep_get_tax_rate($listing['products_tax_class_id'])) . '</td>' . "rn"
. ' </tr>' . "rn";
}
break;

// Row: Product's quantity
case 'PRODUCT_LIST_QUANTITY':
$lc_text .= ' <tr>' . "rn"
. ' <td align="center">Item Quantity- '. TABLE_HEADING_QUANTITY .': '. $listing['products_quantity'] . '</td>' . "rn"
. ' </tr>' . "rn";
break;

// Row: Product's weight
case 'PRODUCT_LIST_WEIGHT':
$lc_text .= ' <tr>' . "rn"
. ' <td align="center">'. TABLE_HEADING_WEIGHT .': '. $listing['products_weight'] . '</td>' . "rn"
. ' </tr>' . "rn";
break;
// Row: Buy now button
case 'PRODUCT_LIST_BUY_NOW':
$lc_text .= ' <tr>' . "rn"
. ' <td align="center">Purchase Item- <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></td>' . "rn"
. ' </tr>' . "rn";
break;
break;
}
}

$lc_text .= '</table>' . "rn";

$list_box_contents[$row][$col] = array(
'align' => $lc_align,
'params' => 'width="'. round(100/PRODUCT_LIST_COLUMNS) .'%" class="productListing-data"',
'text' => $lc_text
);

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

while ($col != 0 && sizeof($list_box_contents[$row]) < PRODUCT_LIST_COLUMNS) {
$list_box_contents[$row][$col] = array(
'align' => 'center',
'params' => 'width="'. round(100/PRODUCT_LIST_COLUMNS) .'%"',
'text' => ' '
);

$col ++;
}

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

 

This below step was easily located above and I was able to edit it-

 

3.1 Find (~line 22)
</table>
<?php
}

Replace With
</table>
<?php
}
/* BoF Compare Products side-by-side */
echo tep_draw_form('compare', tep_href_link("compare.php", tep_get_all_get_params(array('action')))); ?> </td>
<?php
/* EoF Compare Products side-by-side */

 

Now all below steps cannot be done as the code parts to be changed cannot be found in my document I pasted above

Please help me where I can paste the below codes:-

 


3.2 Find (~line 26)
$list_box_contents = array();

Replace With
$list_box_contents = array();
/* BoF Compare Products side-by-side
Insert first column to add checkbox to compare products */
$list_box_contents[0][] = array('align' => "center",
'params' => 'class="productListing-heading"',
'text' => TABLE_HEADING_COMPARE . '
' . tep_image_submit('button_continue.gif', IMAGE_BUTTON_CONTINUE) . '</form>');
/* EoF Compare Products side-by-side */

3.3 Find
if ($listing_split->number_of_rows > 0) {
$rows = 0;

Replace with
if ($listing_split->number_of_rows > 0) {
$rows = 0;
/* BoF Compare Products side-by-side
Generate hidden fields to submit with each checkbox */
$hidden_get_variables = '';
reset($HTTP_GET_VARS);
while (list($key, $value) = each($HTTP_GET_VARS)) {
if ((substr($key,0,8) != 'columns_') && ($key != tep_session_name()) && ($key != 'x') && ($key != 'y')) {
$hidden_get_variables .= tep_draw_hidden_field($key, $value);
}
}
/* EoF Compare Products side-by-side */
3.4 Find
while ($listing = tep_db_fetch_array($listing_query)) {
$rows++;
Replace with
while ($listing = tep_db_fetch_array($listing_query)) {
$rows++;
/* BoF Compare Products side-by-side
Hide all columns selected except for this product, which will be generated by the checkbox form is needed */
$hidden_get_columns = '';
reset($HTTP_GET_VARS);
while (list($key, $value) = each($HTTP_GET_VARS)) {
if ((substr($key,0,8) == 'columns_') && ($key != 'columns_'.$listing['products_id']) ) {
$hidden_get_columns .= tep_draw_hidden_field($key, $value);
}
}
/* EoF Compare Products side-by-side */

3.5 Find (~line 85)
$cur_row = sizeof($list_box_contents) - 1;

Replace with
$cur_row = sizeof($list_box_contents) - 1;
/* BoF Compare Products side-by-side
Add checkbox to compare products */
$lc_align = 'center';
$lc_text = tep_draw_checkbox_field('columns[]',$listing['products_id']);
$list_box_contents[$cur_row][] = array('align' => $lc_align,
'params' => 'class="productListing-data"',
'text' => $lc_text);
/* EoF Compare Products side-by-side */

 

 

 

Please help me I would be very elated to use this addon to my website.

Edited by Jan Zonjee
spam
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...