I've found a standard contrib on the osc site that provides a scrolling best sellers infobox with images. I have had a go at trying to port it to bts format, but I'm not getting very far.
I started by opening the standard /includes/boxes/best_sellers.php from osCMax and comparing the code. The parts I have merged/replaced seems to be working, but there are four 'array' lines missing from the bts layout, of which one includes the marquee to make the images scroll. I can't work out where the marquee line needs to go as the array lines aren't in a bts boxes file.
Anyway, here is the code for the standard contrib I downloaded
And this is what I've got to so far...Code:<?php /* $Id: best_sellers.php,v 1.21 2003/06/09 22:07:52 hpdl Exp $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2003 osCommerce Released under the GNU General Public License Thorsten Wunsch 2006-12-29 <br> between the pictures 2006-12-29 html href double deleted 2006-12-29 IMG Title added and tep_image error corrected */ if (isset($current_category_id) && ($current_category_id > 0)) { $best_sellers_query = tep_db_query("select distinct p.products_id, p.products_image, pd.products_name from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_CATEGORIES . " c where p.products_status = '1' and p.products_ordered > 0 and p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "' and p.products_id = p2c.products_id and p2c.categories_id = c.categories_id and '" . (int)$current_category_id . "' in (c.categories_id, c.parent_id) order by p.products_ordered desc, pd.products_name limit " . MAX_DISPLAY_BESTSELLERS); } else { $best_sellers_query = tep_db_query("select distinct p.products_id, p.products_image, pd.products_name from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_ordered > 0 and p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "' order by p.products_ordered desc, pd.products_name limit " . MAX_DISPLAY_BESTSELLERS); } if (tep_db_num_rows($best_sellers_query) >= MIN_DISPLAY_BESTSELLERS) { ?> <!-- best_sellers_scroll //--> <tr> <td> <?php $info_box_contents = array(); $info_box_contents[] = array('text' => BOX_HEADING_BESTSELLERS); new infoBoxHeading($info_box_contents, false, false); $rows = 0; $bestsellers_list = '<table border="0" width="100%" cellspacing="0" cellpadding="1">'; while ($best_sellers = tep_db_fetch_array($best_sellers_query)) { $rows++; $bestsellers_list .= '<tr><td class="infoBoxContents" valign="top">' . '</td><td class="infoBoxContents" align="center"><br>' .tep_row_number_format($rows). ' - <a align="center" href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $best_sellers['products_id']) . '" alt="' . $best_sellers['products_name'] . '" title="' . $best_sellers['products_name'] . '">' . $best_sellers['products_name'] . '<br>' . tep_image(DIR_WS_IMAGES . $best_sellers['products_image'], $best_sellers['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a></td></tr>'; } $bestsellers_list .= '</table>'; $info_box_contents = array(); $info_box_contents[] = array('text' => '<MARQUEE behavior= "scroll" align= "center" direction= "up" height="160" scrollamount= "2" scrolldelay= "70" onmouseover=\'this.stop()\' onmouseout=\'this.start()\'>'.$bestsellers_list.'</MARQUEE>'); new infoBox($info_box_contents); ?> </td> </tr> <!-- best_sellers_scroll_eof //--> <?php } ?>
I've made a copy of box.tpl.php in the templates folder and that is working, i just can't work out where to put the marquee to get the images to scroll (they are just in a long list atm, which has tripled the length of my page).Code:<?php /* $Id: best_sellers.php 3 2006-05-27 04:59:07Z user $ osCMax Power E-Commerce http://oscdox.com Copyright 2006 osCMax Released under the GNU General Public License */ // Most of this file is changed or moved to BTS - Basic Template System - format. // if (isset($HTTP_GET_VARS['products_id'])) { if (isset($current_category_id) && ($current_category_id > 0)) { $best_sellers_query = tep_db_query("select distinct p.products_id, p.products_image, pd.products_name from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_CATEGORIES . " c where p.products_status = '1' and p.products_ordered > 0 and p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "' and p.products_id = p2c.products_id and p2c.categories_id = c.categories_id and '" . (int)$current_category_id . "' in (c.categories_id, c.parent_id) order by p.products_ordered desc, pd.products_name limit " . MAX_DISPLAY_BESTSELLERS); } else { $best_sellers_query = tep_db_query("select distinct p.products_id, p.products_image, pd.products_name from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_ordered > 0 and p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "' order by p.products_ordered desc, pd.products_name limit " . MAX_DISPLAY_BESTSELLERS); } if (tep_db_num_rows($best_sellers_query) >= MIN_DISPLAY_BESTSELLERS) { ?> <!-- best_sellers_scroll //--> <?php $boxHeading = BOX_HEADING_BESTSELLERS; $corner_left = 'square'; $corner_right = 'square'; $box_base_name = 'best_sellers_scroll'; // for easy unique box template setup (added BTSv1.2) $box_id = $box_base_name . 'Box'; // for CSS styling paulm (editted BTSv1.2) $rows = 0; $boxContent = '<table border="0" width="100%" cellspacing="0" cellpadding="1">'; while ($best_sellers = tep_db_fetch_array($best_sellers_query)) { $rows++; $boxContent .= '<tr><td class="infoBoxContentsLeft" valign="top">' . '</td><td class="infoBoxContentsLeft" align="center"><br>' .tep_row_number_format($rows). ' - <a align="center" href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $best_sellers['products_id']) . '" alt="' . $best_sellers['products_name'] . '" title="' . $best_sellers['products_name'] . '">' . $best_sellers['products_name'] . '<br>' . tep_image(DIR_WS_IMAGES . $best_sellers['products_image'], $best_sellers['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a></td></tr>'; } $boxContent .= '</table>'; include (bts_select('boxes', $box_base_name)); // BTS 1.5 } //} ?> <!-- best_sellers eof //-->
Thanks to anyone who can help.
Regards, J.




LinkBack URL
About LinkBacks






Bookmarks