here is the new code I tried, and this is the one I got the errors on. I tried to fix them, and the errors are not showing anymore, but if you look at the site there is now the same problem only it doesn't look as good.
Are there any glaring errors here?
drive_type.php
<?php
/**
* drive_type sidebox - displays a list of drive_type so customer can choose to filter on their products only
*
* @package templateSystem
* @copyright Copyright 2003-2005 Zen Cart Development Team
* @copyright Portions Copyright 2003 osCommerce
* @license [URL]http://www.zen-cart.com/license/2_0.txt[/URL] GNU Public License V2.0
* @version $Id: drive_type.php 2834 2006-01-11 22:16:37Z birdbrain $
*/
// test if drive_type sidebox should show
$show_drive_type= true;
// for large lists of drive_type uncomment this section
/*
if (($_GET['main_page']==FILENAME_DEFAULT and ($_GET['cPath'] == '' or $_GET['cPath'] == 0)) or ($request_type == 'SSL')) {
$show_drive_type= false;
} else {
$show_drive_type= true;
}
*/
if ($show_drive_type) {
// only check products if requested - this may slow down the processing of the drive_type sidebox
if ('PRODUCTS_DRIVE_TYPE_STATUS' == '1') {
$drive_type_sidebox_query = "select distinct m.drive_type_ID, m.drive_type_name
from " . DRIVE_TYPE . " m
left join " . TABLE_PRODUCTS . " p on m.drive_type_ID = p.drive_type_ID
where m.drive_type_ID = p.drive_type_ID and p.products_status= 1'
order by drive_type_name";
} else {
$drive_type_sidebox_query = "select m.drive_type_ID, m.drive_type_name
from " . DRIVE_TYPE . " m
order by drive_type_name";
}
$drive_type_sidebox = $db->Execute($drive_type_sidebox_query);
if ($drive_type_sidebox->RecordCount()>0) {
$number_of_rows = $drive_type_sidebox->RecordCount()+1;
// Display a list
$drive_type_sidebox_array = array();
if (!isset($_GET['drive_type_ID']) || $_GET['drive_type_ID'] == '' ) {
$drive_type_sidebox_array[] = array('id' => '', 'text' => PULL_DOWN_ALL);
} else {
$drive_type_sidebox_array[] = array('id' => '', 'text' => 'PULL_DOWN_DRIVE_TYPE');
}
while (!$drive_type_sidebox->EOF) {
$drive_type_sidebox_name = ((strlen($drive_type_sidebox->fields['drive_type_name']) > 'MAX_DISPLAY_DRIVE_TYPE_NAME_LEN') ? substr($drive_type_sidebox->fields['drive_type_name'], 0, 'MAX_DISPLAY_DRIVE_TYPE_NAME_LEN') . '..' : $drive_type_sidebox->fields['drive_type_name']);
$drive_type_sidebox_array[] = array('id' => $drive_type_sidebox->fields['drive_type_ID'],
'text' => $drive_type_sidebox_name);
$drive_type_sidebox->MoveNext();
}
require($template->get_template_dir('tpl_drive_type_select.php',DIR_WS_TEMPLATE, $current_page_base,'sideboxes'). '/tpl_drive_type_select.php');
$title = '<label>' . BOX_HEADING_DRIVE_TYPE . '</label>';
$title_link = false;
require($template->get_template_dir($column_box_default, DIR_WS_TEMPLATE, $current_page_base,'common') . '/' . $column_box_default);
}
} // $show_drive_type
?>
```drive_type_filter.php
<?php
/**
* drive_type_filter.php for index filters
*
* index filter for the drive product type
* show the products of a specified drive type
*
* @package productTypes
* @copyright Copyright 2003-2005 Zen Cart Development Team
* @copyright Portions Copyright 2003 osCommerce
* @todo Need to add/fine-tune ability to override or insert entry-points on a per-product-type basis
* @license [URL]http://www.zen-cart.com/license/2_0.txt[/URL] GNU Public License V2.0
*
@version $Id: drive_type_filter.php 4254 2006-08-25 00:30:56Z ajeh $
*/
if (!defined('IS_ADMIN_FLAG')) {
die('Illegal Access');
}
if (!isset($select_column_list)) $select_column_list = "";
// show the products of a specified drive_type
if (isset($_GET['drive_type_ID']))
{
if (isset($_GET['filter_id']) && zen_not_null($_GET['filter_id']))
{
// We are asked to show only a specific category
$listing_sql = "select " . $select_column_list . " p.products_id, p.products_type, p.products_price, p.products_tax_class_id, pd.products_description, if(s.status = 1, s.specials_new_products_price, NULL) AS specials_new_products_price, IF(s.status = 1, s.specials_new_products_price, p.products_price) as final_price, p.products_sort_order, p.product_is_call, p.product_is_always_free_shipping, p.products_qty_box_status
from " . TABLE_PRODUCTS . " p, " .
TABLE_PRODUCTS_DESCRIPTION . " pd, " .
PRODUCT_DRIVE_EXTRA . " pme left join " . TABLE_SPECIALS . " s on pme.products_id = s.products_id, " .
TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " .
DRIVE_TYPE . " m
where m.drive_type_ID = '" . (int)$_GET['drive_type_ID'] . "'
and p.products_id = pme.products_id
and p.products_status = 1
and pme.drive_type_ID = '" . (int)$_GET['drive_type_ID'] . "'
and pme.products_id = p2c.products_id
and pd.products_id = p2c.products_id
and pd.language_id = '" . (int)$_SESSION['languages_id'] . "'
and p2c.categories_id = '" . (int)$_GET['filter_id'] . "'";
} else {
// We show them all
$listing_sql = "select " . $select_column_list . " pme.products_id, p.products_type, p.products_price, p.products_tax_class_id, pd.products_description, IF(s.status = 1, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status = 1, s.specials_new_products_price, p.products_price) as final_price, p.products_sort_order, p.product_is_call, p.product_is_always_free_shipping, p.products_qty_box_status
from " . TABLE_PRODUCTS . " p, " .
TABLE_PRODUCTS_DESCRIPTION . " pd, " .
PRODUCT_DRIVE_EXTRA . " pme left join " . TABLE_SPECIALS . " s on pme.products_id = s.products_id, " .
DRIVE_TYPE . " m
where m.drive_type_ID = '" . (int)$_GET['drive_type_ID'] . "'
and p.products_id = pme.products_id
and p.products_status = 1
and pd.products_id = pme.products_id
and pd.language_id = '" . (int)$_SESSION['languages_id'] . "'
and pme.drive_type_ID = '" . (int)$_GET['drive_type_ID'] . "'";
}
} else {
// show the products in a given category
if (isset($_GET['filter_id']) && zen_not_null($_GET['filter_id']))
{
// We are asked to show only specific category
$listing_sql = "select " . $select_column_list . " p.products_id, p.products_type, p.products_price, p.products_tax_class_id, pd.products_description, IF(s.status = 1, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status = 1, s.specials_new_products_price, p.products_price) as final_price, p.products_sort_order, p.product_is_call, p.product_is_always_free_shipping, p.products_qty_box_status
from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " .
TABLE_PRODUCTS_DESCRIPTION . " pd, " .
DRIVE_TYPE . " m, " .
PRODUCTS_DRIVE_EXTRA . " pme, " .
TABLE_PRODUCTS_TO_CATEGORIES . " p2c
where p.products_status = 1
and pme.drive_type_ID = m.drive_type_ID
and m.drive_type_ID = '" . (int)$_GET['filter_id'] . "'
and p.products_id = p2c.products_id
and pd.products_id = p2c.products_id
and pd.language_id = '" . (int)$_SESSION['languages_id'] . "'
and p2c.categories_id = '" . (int)$current_category_id . "'";
} else {
// We show them all
if ($current_categories_id) {
$listing_sql = "select " . $select_column_list . " p.products_id, p.products_type, p.products_price, p.products_tax_class_id, pd.products_description, IF(s.status = 1, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status = 1, s.specials_new_products_price, p.products_price) as final_price, p.products_sort_order, p.product_is_call, p.product_is_always_free_shipping, p.products_qty_box_status
from " . TABLE_PRODUCTS_DESCRIPTION . " pd, " .
TABLE_PRODUCTS . " p left join " . DRIVE_TYPE . " m, " . PRODUCT_DRIVE_EXTRA . " pme on pme.drive_type_ID = m.drive_type_ID, " .
TABLE_PRODUCTS_TO_CATEGORIES . " p2c left join " . TABLE_SPECIALS . " s on p2c.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)$_SESSION['languages_id'] . "'
and p2c.categories_id = '" . (int)$current_category_id . "'";
} else {
$listing_sql = "select " . $select_column_list . " p.products_id, p.products_type, p.products_price, p.products_tax_class_id, pd.products_description, IF(s.status = 1, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status = 1, s.specials_new_products_price, p.products_price) as final_price, p.products_sort_order, p.product_is_call, p.product_is_always_free_shipping, p.products_qty_box_status
from " . TABLE_PRODUCTS_DESCRIPTION . " pd, " .
TABLE_PRODUCTS . " p left join " . DRIVE_TYPE . " m, " . PRODUCT_DRIVE_EXTRA . " pme on pme.drive_type_ID = m.drive_type_ID, " .
TABLE_PRODUCTS_TO_CATEGORIES . " p2c left join " . TABLE_SPECIALS . " s on p2c.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)$_SESSION['languages_id'] . "'";
}
}
}
// set the default sort order setting from the Admin when not defined by customer
if (!isset($_GET['sort']) and PRODUCT_LISTING_DEFAULT_SORT_ORDER != '') {
$_GET['sort'] = PRODUCT_LISTING_DEFAULT_SORT_ORDER;
}
$listing_sql = str_replace('m.manufacturers_name', 'm.drive_type_name as manufacturers_name', $listing_sql);
if (isset($column_list)) {
if ( (!isset($_GET['sort'])) || (!ereg('[1-8][ad]', $_GET['sort'])) || (substr($_GET['sort'], 0, 1) > sizeof($column_list)) )
{
for ($i=0, $n=sizeof($column_list); $i<$n; $i++)
{
if ($column_list[$i] == 'PRODUCT_LIST_NAME')
{
$_GET['sort'] = $i+1 . 'a';
$listing_sql .= " order by p.products_sort_order, pd.products_name";
break;
}
}
// if set to nothing use products_sort_order and PRODUCTS_LIST_NAME is off
if (PRODUCT_LISTING_DEFAULT_SORT_ORDER == '') {
$_GET['sort'] = '20a';
}
} else {
$sort_col = substr($_GET['sort'], 0 , 1);
$sort_order = substr($_GET['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.drive_type_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_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";
$listing_sql .= "p.products_price_sorter " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
break;
}
}
}
// optional Product List Filter
if (PRODUCT_LIST_FILTER > 0)
{
if (isset($_GET['drive_type_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, " .
PRODUCT_DRIVE_EXTRA . " pme
where p.products_status = 1
and pme.products_id = p2c.products_id
and p2c.categories_id = c.categories_id
and p2c.categories_id = cd.categories_id
and cd.language_id = '" . (int)$_SESSION['languages_id'] . "'
and pme.drive_type_ID = '" . (int)$_GET['drive_type_ID'] . "'
order by cd.categories_name";
} else {
$filterlist_sql= "select distinct m.drive_type_ID as id, m.drive_type_name as name
from " . TABLE_PRODUCTS . " p, " .
TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " .
PRODUCT_DRIVE_EXTRA . " pme, " .
DRIVE_TYPE . " m
where p.products_status = 1
and pme.drive_type_ID = m.drive_type_ID
and p.products_id = p2c.products_id
and p2c.categories_id = '" . (int)$current_category_id . "'
order by m.drive_type_name";
}
$getoption_set = false;
$do_filter_list = false;
$filterlist = $db->Execute($filterlist_sql);
if ($filterlist->RecordCount() > 1)
{
$do_filter_list = true;
if (isset($_GET['drive_type_ID']))
{
$getoption_set = true;
$get_option_variable = 'drive_type_ID';
$options = array(array('id' => '', 'text' => TEXT_ALL_CATEGORIES));
} else {
$options = array(array('id' => '', 'text' => TEXT_ALL_DRIVE_TYPE));
}
while (!$filterlist->EOF) {
$options[] = array('id' => $filterlist->fields['id'], 'text' => $filterlist->fields['name']);
$filterlist->MoveNext();
}
}
}
// Get the right image for the top-right
$image = DIR_WS_TEMPLATE_IMAGES . 'table_background_list.gif';
if ($current_category_id) {
$sql = "select categories_image from " . TABLE_CATEGORIES . "
where categories_id = '" . (int)$current_category_id . "'";
$image_name = $db->Execute($sql);
$image = $image_name->fields['categories_image'];
}
?>
<?php
/**
* Side Box Template
*
* @package templateSystem
* @copyright Copyright 2003-2006 Zen Cart Development Team
* @copyright Portions Copyright 2003 osCommerce
* @license [URL]http://www.zen-cart.com/license/2_0.txt[/URL] GNU Public License V2.0
*
@version $Id: tpl_drive_type_select.php 4771 2006-10-17 05:32:42Z ajeh $
*/
$content = "";
$content .= '<div id="' . str_replace('_', '-', $box_id . 'Content') . '" class="sideBoxContent centeredContent">';
$content.= zen_draw_form('drive_type_form', zen_href_link(FILENAME_DEFAULT, '', 'NONSSL', false), 'get');
$content .= zen_draw_hidden_field('main_page', FILENAME_DEFAULT);
$content .= zen_draw_pull_down_menu('drive_type_ID', $drive_type_sidebox_array, (isset($_GET['drive_type_ID']) ? $_GET['drive_type_ID'] : ''), 'onchange="this.form.submit();" size="' . 'MAX_DRIVE_TYPE_LIST' . '" style="width: 90%; margin: auto;"') . zen_hide_session_id();
$content .= '</form>';
$content .= '</div>';
?>