osCommerce and osCMax shopping cart software forums

Shopping Cart Software

osCommerce with teeth!

 
 

Need help converting 'Scrolling best sellers' to BTS

This is a discussion on Need help converting 'Scrolling best sellers' to BTS within the osCMax v2 Customization/Mods forums, part of the osCMax v2.0 Forums category; I've found a standard contrib on the osc site that provides a scrolling best sellers infobox with images. I have ...


Go Back   osCommerce and osCMax shopping cart software forums > osCMax v2.0 Forums > osCMax v2 Customization/Mods

Register FAQ Members List Calendar Mark Forums Read


Free community membership! Fast easy FREE membership
Reply

 

LinkBack Thread Tools
  #1  
Old 05-25-2008, 12:20 PM
typhus's Avatar
osCMax Testing Team
 
Join Date: Aug 2005
Location: Midlands, UK
Posts: 28
Thanks: 15
Thanked 5 Times in 3 Posts
Rep Power: 0
typhus is on a distinguished road
Default Need help converting 'Scrolling best sellers' to BTS

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

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). '&nbsp;-&nbsp;<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
  }
?>
And this is what I've got to so far...

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). '&nbsp;-&nbsp;<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 //-->
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).

Thanks to anyone who can help.

Regards, J.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Sponsored Links
Advertisement
  #2  
Old 05-25-2008, 04:34 PM
typhus's Avatar
osCMax Testing Team
 
Join Date: Aug 2005
Location: Midlands, UK
Posts: 28
Thanks: 15
Thanked 5 Times in 3 Posts
Rep Power: 0
typhus is on a distinguished road
Default Re: Need help converting 'Scrolling best sellers' to BTS

Looks like I should have persevered a bit longer, or in this case taken a break.

I'd already made a copy of /catalog/templates/mytemplate/boxes/best_sellers.tpl.php but I've only just thought of putting the marquee tag in there, and guess what, it works.

For anyone who happens to stumble across this here's the code I ended up with..

/catalog/includes/boxes/best_sellers_scroll.php
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). '&nbsp;-&nbsp;<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 //-->
/catalog/templates/mytemplate/boxes/best_sellers_sroll.tpl.php
Code:
<?php if (!defined ('DIR_FS_CATALOG')) die ("Access denied."); ?>

<?php /* infobox template  */ ?>

          <tr>

            <td>

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

                <tr>

                  <td height="20" class="infoBoxHeadingLeft"><img src="images/infobox/<?php switch ($corner_left) { case 'square': echo 'corner_right_left.gif';    break; case 'rounded': echo 'corner_left.gif'; break;} ?>" border="0" alt="" width="11" height="14"></td>

                  <td width="100%" height="20" class="infoBoxHeadingLeft"><?php echo $boxHeading; ?></td>

                  <td height="20" class="infoBoxHeadingLeft" nowrap><?php echo $boxLink; ?><img src="images/<?php switch ($corner_right) { case 'square': echo 'pixel_trans.gif';    break; case 'rounded': echo 'infobox/corner_right.gif'; break;} ?>" border="0" alt="" width="11" height="14"></td>

                </tr>

              </table>

              <table border="0" width="100%" cellspacing="0" cellpadding="1" class="infoBoxLeft">

              <tr>

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

              <tr>

                <td><img src="images/pixel_trans.gif" border="0" alt="" width="100%" height="1"></td>

              </tr>

              <tr>

                <td class="boxTextLeft"<?php echo $boxContent_attributes; ?>><MARQUEE behavior= "scroll" align= "center" direction= "up" height="160" scrollamount= "2" scrolldelay= "70" onmouseover="this.stop()" onmouseout="this.start()"><?php echo $boxContent; ?></MARQUEE></td>

              </tr>

              <tr>

                <td><img src="images/pixel_trans.gif" border="0" alt="" width="100%" height="1"></td>

              </tr>

            </table>

            </td>

              </tr>

            </table>

            </td>

          </tr>
And then add the infobox using 'Infobox Admin' in the usual manner.

Hope this helps someone, J.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
The Following 2 Users Say Thank You to typhus For This Useful Post:
met00 (05-26-2008), michael_s (05-25-2008)
Sponsored Links
Advertisement
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Similar Threads

Thread Thread Starter Forum Replies Last Post
Best Sellers on Vertical Scroll michael_s New osCommerce Contributions 0 05-14-2008 12:22 PM
Converting contribs to BTS templating system aaanativearts osCMax v2 Installation issues 1 08-20-2007 11:59 PM
How to add sellers? astallings osCMax v2 Customization/Mods 1 08-13-2007 02:28 AM
Converting Affiliate Infobox to BTS Stu osCMax v1.7 Discussion 4 11-25-2003 07:15 AM


All times are GMT -8. The time now is 02:13 AM.


Powered by vBulletin®
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
SEO by vBSEO
http://www.oscmax.com/forums/
Copyright 2008 osCMax