donthecat Posted May 26, 2004 Posted May 26, 2004 My product info / description page has been erratic. I been at this for a couple of days. I'm sure that it is overlapping tables or tr / td tags , b'cos all the information needed on the products info page is appearing; just that the layout is haywire. I've included my product_info.php code here. I tried various permutations and combinations, but all in vain.Any help would be welcome. <?php/* $Id: product_info.php,v 1.98 2003/09/02 18:52:33 project3000 Exp $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright © 2003 osCommerce Released under the GNU General Public License */ require('includes/application_top.php'); require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_PRODUCT_INFO); $product_check_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'"); $product_check = tep_db_fetch_array($product_check_query); ?> <!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"> <script language="javascript"><!-- function popupWindow(url) { window.open(url,'popupWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,res izable=yes,copyhistory=no,width=100,height=100,screenX=150,screenY=150,top=150,le ft=150') } //--></script> </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 //--> <td width="100%" valign="top"><?php echo tep_draw_form('cart_quantity', tep_href_link(FILENAME_PRODUCT_INFO, tep_get_all_get_params(array('action')) . 'action=add_product')); ?><table border="0" width="100%" cellspacing="0" cellpadding="0"> <?php if ($product_check['total'] < 1) { ?> <tr> <td><?php new infoBox(array(array('text' => TEXT_PRODUCT_NOT_FOUND))); ?></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <tr> <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox"> <tr class="infoBoxContents"> <td><table border="0" width="100%" cellspacing="0" cellpadding="2"> <tr bgcolor="#CCFFCC"> <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td> <td align="right"><?php echo '<a href="' . tep_href_link(FILENAME_DEFAULT) . '">' . tep_image_button('button_continue.gif', IMAGE_BUTTON_CONTINUE) . '</a>'; ?></td> <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td> </tr> </table></td> </tr> </table></td> </tr> <?php } else { // BOF MaxiDVD: Modified For Ultimate Images Pack! $product_info_query = tep_db_query("select p.products_retail_price, p.products_id, pd.products_name, pd.products_description, p.products_model, p.products_quantity, p.products_image, p.products_image_med, p.products_image_lrg, p.products_image_sm_1, p.products_image_xl_1, p.products_image_sm_2, p.products_image_xl_2, p.products_image_sm_3, p.products_image_xl_3, p.products_image_sm_4, p.products_image_xl_4, p.products_image_sm_5, p.products_image_xl_5, p.products_image_sm_6, p.products_image_xl_6, pd.products_url, p.products_price, p.products_tax_class_id, p.products_date_added, p.products_date_available, p.manufacturers_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'"); // EOF MaxiDVD: Modified For Ultimate Images Pack! $product_info = tep_db_fetch_array($product_info_query); tep_db_query("update " . TABLE_PRODUCTS_DESCRIPTION . " set products_viewed = products_viewed+1 where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and language_id = '" . (int)$languages_id . "'"); if ($new_price = tep_get_products_special_price($product_info['products_id'])) { $products_price = '<s>' . $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) . '</s> <span class="productSpecialPrice">' . $currencies->display_price($new_price, tep_get_tax_rate($product_info['products_tax_class_id'])) . '</span>'; } else { $products_price = $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])); } if (tep_not_null($product_info['products_model'])) { $products_name = $product_info['products_name'] . '<br><span class="smallText">[' . $product_info['products_model'] . ']</span>'; } else { $products_name = $product_info['products_name']; } ?> <tr> <td><table width="100%" border="6" cellpadding="2" cellspacing="0"> <tr bordercolor="#663366"> <td valign="top" bordercolor="#CCFFCC" bgcolor="#CCFFCC" class="pageHeading"><?php echo $products_name; ?></td> <td align="right" valign="top" bordercolor="#CCFFCC" bgcolor="#CCFFCC" class="pageHeading"><?php echo $products_price; ?></td> </tr> </table></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <table align =center width=100%> <tr><td align = "left" class="main"> <?php if ($product_info['products_retail_price'] != 0) { { // Get the retail price & clean up the decimal places $retail = ($currencies->display_price($product_info['products_retail_price'],tep_get_tax_rate($product_info['products_tax_class_id']))); $strlen = strlen($retail); if (NEW_FIELDS_DECIMAL == 0) { ($strlen = ($strlen - 3)); } // Set the decimal places if (NEW_FIELDS_DECIMAL == 1) { ($strlen = ($strlen - 1)); } // We don't need em here $retail = substr(($currencies->display_price($product_info['products_retail_price'],tep_get_tax_rate($product_info['products_tax_class_id']))),0,$strlen) ; // Couldn't think of a better way to do the next part, if you can think of one, let me know... if ($new_price = tep_get_products_special_price($product_info['products_id'])) { // If there is a special ... Special Overrides customer discount... $our = ((tep_get_products_special_price($product_info['products_id']))); $save = ((($our) / ($product_info['products_retail_price'])) * 100); $our = ($currencies->display_price($our,tep_get_tax_rate($product_info['products_tax_class_id']))); $strlen = strlen($our); if (NEW_FIELDS_DECIMAL == 0) { ($strlen = ($strlen - 3)); } // Set the decimal places if (NEW_FIELDS_DECIMAL == 1) { ($strlen = ($strlen - 1)); } // We don't need em here $our = substr(($currencies->display_price($new_price,tep_get_tax_rate($product_info['products_tax_class_id']))),0,$strlen); } if ((strstr($customer_discount, "-") != 0)) // && ((tep_get_products_special_price($product_info['products_id'])) == null)) { // If there isn't a special, but still a customer discount... We'll need those decimals.... $our = ($product_info['products_price']); $our = $our - $our * abs($customer_discount) / 100; $save = ((($our) / ($product_info['products_retail_price'])) * 100); $our = ($currencies->display_price_nodiscount($our,tep_get_tax_rate($product_info['products_tax_class_id']))); } // End cust discount if ((strstr($customer_discount, "-") == 0) && ((tep_get_products_special_price($product_info['products_id'])) == null)) { // Just a regular price $our = ($product_info['products_price']); $save = ((($our) / ($product_info['products_retail_price'])) * 100); $our = ($currencies->display_price($our,tep_get_tax_rate($product_info['products_tax_class_id']))); $strlen = strlen($our); if (NEW_FIELDS_DECIMAL == 0) { ($strlen = ($strlen - 3)); } // Set the decimal places if (NEW_FIELDS_DECIMAL == 1) { ($strlen = ($strlen - 1)); } // We don't need em here $our = substr(($currencies->display_price($product_info['products_price'],tep_get_tax_rate($product_info['products_tax_class_id']))),0,$strlen); } // End of regular price $save = (100 - $save); $save = round($save); ?> <?php echo TEXT_PRODUCTS_RETAIL_PRICE_INFO . $retail ; echo TEXT_PRODUCTS_PRICE_INFO . $our; echo TEXT_PRODUCTS_SAVE_INFO . $save . '%</font>'; } ?> </td> <?php } ?> <?php if (tep_not_null($product_info['products_image'])) { ?> <td align="right" class="smallText"> <!-- // BOF MaxiDVD: Modified For Ultimate Images Pack! //--> <?php if ($product_info['products_image_med']!='') { $new_image = $product_info['products_image_med']; $image_width = MEDIUM_IMAGE_WIDTH; $image_height = MEDIUM_IMAGE_HEIGHT; } else { $new_image = $product_info['products_image']; $image_width = SMALL_IMAGE_WIDTH; $image_height = SMALL_IMAGE_HEIGHT;}?> <script language="javascript"><!-- document.write('<?php echo '<a href="java script:popupWindow(\\\'' . tep_href_link(FILENAME_POPUP_IMAGE, 'pID=' . $product_info['products_id'] . 'ℑ=0') . '\\\')">' . TEXT_CLICK_TO_ENLARGE .'<br>' .tep_image(DIR_WS_IMAGES . $new_image, addslashes($product_info['products_name']), $image_width, $image_height, 'hspace="5" vspace="5"'); ?>'); //--></script> <noscript> <?php echo '<a href="' . tep_href_link(DIR_WS_IMAGES . $product_info['products_image_med']) . '">' . tep_image(DIR_WS_IMAGES . $new_image . 'ℑ=0', addslashes($product_info['products_name']), $image_width, $image_height, 'hspace="5" vspace="5"') . '<br>' . tep_image_button('image_enlarge.gif', TEXT_CLICK_TO_ENLARGE) . '</a>'; } ?> </noscript> <!-- // EOF MaxiDVD: Modified For Ultimate Images Pack! //--> </td></tr> <table width="100%" border="0" cellpadding="2" cellspacing="0"><tr><td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> <td><p><?php echo stripslashes($product_info['products_description']); ?></p></td></tr></table> <?php if (OPTIONS_AS_IMAGES_ENABLED == 'false'){ $products_attributes_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$languages_id . "'"); $products_attributes = tep_db_fetch_array($products_attributes_query); if ($products_attributes['total'] > 0) { ?> <?php $products_options_name_query = tep_db_query("select distinct popt.products_options_id, popt.products_options_name from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$languages_id . "' order by popt.products_options_id"); while ($products_options_name = tep_db_fetch_array($products_options_name_query)) { $products_options_array = array(); $products_options_query = tep_db_query("select pov.products_options_values_id, pov.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov where pa.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pa.options_id = '" . (int)$products_options_name['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . (int)$languages_id . "'"); while ($products_options = tep_db_fetch_array($products_options_query)) { $products_options_array[] = array('id' => $products_options['products_options_values_id'], 'text' => $products_options['products_options_values_name']); if ($products_options['options_values_price'] != '0') { $products_options_array[sizeof($products_options_array)-1]['text'] .= ' (' . $products_options['price_prefix'] . $currencies->display_price($products_options['options_values_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) .') '; } } if (isset($cart->contents[$HTTP_GET_VARS['products_id']]['attributes'][$products_options_name['products_options_id']])) { $selected_attribute = $cart->contents[$HTTP_GET_VARS['products_id']]['attributes'][$products_options_name['products_options_id']]; } else { $selected_attribute = false; } ?> <tr> <td class="main"><?php echo $products_options_name['products_options_name'] . ':'; ?></td> <td class="main"><?php echo tep_draw_pull_down_menu('id[' . $products_options_name['products_options_id'] . ']', $products_options_array, $selected_attribute); ?></td> </tr> <?php } ?> <?php } //Options as Images. Add the curly bracket as shown on the next line } ?> <?php //Options as Images. This whole php clause needs to be added if (OPTIONS_AS_IMAGES_ENABLED == 'true') include ('options_images.php'); ?> <?php // BOF MaxiDVD: Modified For Ultimate Images Pack! if (ULTIMATE_ADDITIONAL_IMAGES == 'Enable') { include(DIR_WS_MODULES . 'additional_images.php'); } // BOF MaxiDVD: Modified For Ultimate Images Pack! ; ?> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <?php $reviews_query = tep_db_query("select count(*) as count from " . TABLE_REVIEWS . " r, " . TABLE_REVIEWS_DESCRIPTION . " rd where r.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and r.reviews_id = rd.reviews_id and rd.languages_id = '" . (int)$languages_id . "'"); $reviews = tep_db_fetch_array($reviews_query); if ($reviews['count'] > 0) { ?> <tr> <td class="main"><?php echo TEXT_CURRENT_REVIEWS . ' ' . $reviews['count']; ?></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <?php } if (tep_not_null($product_info['products_url'])) { ?> <tr> <td class="main"><?php echo sprintf(TEXT_MORE_INFORMATION, tep_href_link(FILENAME_REDIRECT, 'action=url&goto=' . urlencode($product_info['products_url']), 'NONSSL', true, false)); ?></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <?php } if ($product_info['products_date_available'] > date('Y-m-d H:i:s')) { ?> <tr> <td align="center" class="smallText"><?php echo sprintf(TEXT_DATE_AVAILABLE, tep_date_long($product_info['products_date_available'])); ?></td> </tr> <?php } else { ?> <tr> <td align="center" class="smallText"><?php echo sprintf(TEXT_DATE_ADDED, tep_date_long($product_info['products_date_added'])); ?></td> </tr> <?php } ?> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <tr> <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox"> <tr class="infoBoxContents"> <td><table border="0" width="100%" cellspacing="0" cellpadding="2"> <tr> <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td> <td class="main"><?php echo '<a href="' . tep_href_link(FILENAME_PRODUCT_REVIEWS, tep_get_all_get_params()) . '">' . tep_image_button('button_reviews.gif', IMAGE_BUTTON_REVIEWS) . '</a>'; ?></td> <td class="main" align="right"><?php echo tep_draw_hidden_field('products_id', $product_info['products_id']) . tep_image_submit('button_in_cart.gif', IMAGE_BUTTON_IN_CART); ?></td> <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td> </tr> </table></td> </tr> </table></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td> </tr> <tr> <td> <?php if ((USE_CACHE == 'true') && empty($SID)) { echo tep_cache_also_purchased(3600); } else { include(DIR_WS_MODULES . FILENAME_ALSO_PURCHASED_PRODUCTS); } } ?> </td> </tr> </table></form></td> <!-- 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> </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'); ?> Thanks a Mil :D --- DontheCat --- Obviously the truth is what's so Not so obviously, it's also so what.
Jack_mcs Posted May 26, 2004 Posted May 26, 2004 If you think you have an extra <td> or something like that, you can try using an editor like HTML-Kit that will show you the matching tags. Although in this case it would probably still be a chore. How about going through the code and removing everything that is correct (obviously using a backup file)? So if you look in the code and see <tr><td>Hello There</td></tr> remove it since it is fine. Eventually, hopefully, you will get down to a more manageable section of code and the problem will pop out at you. HTH, Jack Support Links: For Hire: Contact me for anything you need help with for your shop: upgrading, hosting, repairs, code written, etc. All of My Addons Get the latest versions of my addons Recommended SEO Addons
nrlatsha Posted May 26, 2004 Posted May 26, 2004 I think I know where your problem lies: $save = (100 - $save); $save = round($save); ?> <?php echo TEXT_PRODUCTS_RETAIL_PRICE_INFO . $retail; echo TEXT_PRODUCTS_PRICE_INFO . $our; echo TEXT_PRODUCTS_SAVE_INFO . $save . '%</font>'; } ?> </td> <?php } ?> Replace with: $save = (100 - $save); $save = round($save); ?> </td> </tr> </table> <?php echo TEXT_PRODUCTS_RETAIL_PRICE_INFO . '<s>' . $retail; echo '</s>' . TEXT_PRODUCTS_PRICE_INFO . $our; echo TEXT_PRODUCTS_SAVE_INFO . $save . '%</font>'; } } else { ?> </td> </tr> </table> <?php } // End EZier new fields contrib (Noel Latsha) ?> See if that works...Or helps...But its probably around that area... Also, do you have a link? 9 times out of 10 its a PEBCAK Error (Problem exists between chair and keyboard) Replace that and you're fine...
donthecat Posted May 26, 2004 Author Posted May 26, 2004 Jack> I use Dreamweaver MX Latest Version which can easily ID nested tags or braces, but as you say it's a chore still. And here my tags are matching, just that there is some problems with the tables placement. Thanks for the tip Noel>I'll try out your suggestion and revert. I really liked your Ezier Contrib and so don't want to remove it. That's why this is taking time. As I'd written to you, there is a clash when i integrate the HTML WYSIWYG Editor Contrib and yours. The eshop is Opposite the Cafe . Though the particular problem will not be visible there as I'm still struggling at the local level. :blink: I'll make the changes and upload by 4 PM IST. Thanks folks for the suggestions Cheers --- DontheCat --- Obviously the truth is what's so Not so obviously, it's also so what.
nrlatsha Posted May 26, 2004 Posted May 26, 2004 Noel>I'll try out your suggestion and revert. I really liked your Ezier Contrib and so don't want to remove it. That's why this is taking time. As I'd written to you, there is a clash when i integrate the HTML WYSIWYG Editor Contrib and yours. Cool, let me know what you had to do and I'll incorporate that into the next release, 4.0. That'll probably be out in a couple of days (maybe) 9 times out of 10 its a PEBCAK Error (Problem exists between chair and keyboard) Replace that and you're fine...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.