Full service web hosting, great prices and support. Starts at $1.99/month!
Page 2 of 5 First 1234 ... LastLast
Results 11 to 20 of 45

Thread: New Products Project

  1. #11
    Chitman
    Guest


    Default Re: New Products Project

    Thanx pgmarshall for this thread. I am having issues editing the admin/categories.php I cant find what your are reffering to in STEP 3: A, B, C, & D. Can you please help me.
    Here's my categories.php file:

    PHP Code:
    <?php
    /*
    $Id: categories.php 16 2006-07-30 03:27:26Z user $

      osCMax Power E-Commerce
      http://oscdox.com

      Copyright 2006 osCMax

      Released under the GNU General Public License
    */

      
    require('includes/application_top.php');
    // LINE ADDED: Categories Description 1.5
      
    require('includes/functions/categories_description.php');

    // LINE ADDED: FCKEditor
      
    require(DIR_FCKEDITOR 'fckeditor.php');
      require(
    DIR_WS_CLASSES 'currencies.php');
      
    $currencies = new currencies();

      
    $action = (isset($HTTP_GET_VARS['action']) ? $HTTP_GET_VARS['action'] : '');

      if (
    tep_not_null($action)) {
        switch (
    $action) {
          case 
    'setflag':
            if ( (
    $HTTP_GET_VARS['flag'] == '0') || ($HTTP_GET_VARS['flag'] == '1') ) {
              if (isset(
    $HTTP_GET_VARS['pID'])) {
                
    tep_set_product_status($HTTP_GET_VARS['pID'], $HTTP_GET_VARS['flag']);
              }

              if (
    USE_CACHE == 'true') {
                
    tep_reset_cache_block('categories');
                
    tep_reset_cache_block('also_purchased');
              }
            }

            
    tep_redirect(tep_href_link(FILENAME_CATEGORIES'cPath=' $HTTP_GET_VARS['cPath'] . '&pID=' $HTTP_GET_VARS['pID']));
            break;
    // BOF: MOD for Categories Description 1.5
          
    case 'new_category':
          case 
    'edit_category':
            if (
    ALLOW_CATEGORY_DESCRIPTIONS == 'true')
              
    $HTTP_GET_VARS['action']=$HTTP_GET_VARS['action'] . '_ACD';
            break;
    // EOF: MOD for Categories Description 1.5
          
    case 'insert_category':
          case 
    'update_category':
    // BOF: MOD for Categories Description 1.5
            
    if ( ($HTTP_POST_VARS['edit_x']) || ($HTTP_POST_VARS['edit_y']) ) {
              
    $HTTP_GET_VARS['action'] = 'edit_category_ACD';
            } else {
    // EOF: MOD for Categories Description 1.5
              
    if (isset($HTTP_POST_VARS['categories_id'])) $categories_id tep_db_prepare_input($HTTP_POST_VARS['categories_id']);
    // BOF: MOD for Categories Description 1.5
              
    if ($categories_id == '') {
                 
    $categories_id tep_db_prepare_input($HTTP_GET_VARS['cID']);
               }
    // EOF: MOD for Categories Description 1.5
              
    $sort_order tep_db_prepare_input($HTTP_POST_VARS['sort_order']);

              
    $sql_data_array = array('sort_order' => $sort_order);

              if (
    $action == 'insert_category') {
                
    $insert_sql_data = array('parent_id' => $current_category_id,
                                         
    'date_added' => 'now()');

                
    $sql_data_array array_merge($sql_data_array$insert_sql_data);

                
    tep_db_perform(TABLE_CATEGORIES$sql_data_array);

                
    $categories_id tep_db_insert_id();
                } elseif (
    $action == 'update_category') {
                  
    $update_sql_data = array('last_modified' => 'now()');

                  
    $sql_data_array array_merge($sql_data_array$update_sql_data);

                  
    tep_db_perform(TABLE_CATEGORIES$sql_data_array'update'"categories_id = '" . (int)$categories_id "'");
                }

                
    $languages tep_get_languages();
                for (
    $i=0$n=sizeof($languages); $i<$n$i++) {
                  
    $categories_name_array $HTTP_POST_VARS['categories_name'];

                  
    $language_id $languages[$i]['id'];

                  
    $sql_data_array = array('categories_name' => tep_db_prepare_input($categories_name_array[$language_id]));

    // BOF: MOD for Categories Description 1.5
                  
    if (ALLOW_CATEGORY_DESCRIPTIONS == 'true') {
                    
    $sql_data_array = array('categories_name' => tep_db_prepare_input($HTTP_POST_VARS['categories_name'][$language_id]),
                                            
    'categories_heading_title' => tep_db_prepare_input($HTTP_POST_VARS['categories_heading_title'][$language_id]),
                                            
    'categories_description' => tep_db_prepare_input($HTTP_POST_VARS['categories_description'][$language_id]));
                  }
    // EOF: MOD for Categories Description 1.5
                  
    if ($action == 'insert_category') {
                    
    $insert_sql_data = array('categories_id' => $categories_id,
                                             
    'language_id' => $languages[$i]['id']);

                    
    $sql_data_array array_merge($sql_data_array$insert_sql_data);

                    
    tep_db_perform(TABLE_CATEGORIES_DESCRIPTION$sql_data_array);
                  } elseif (
    $action == 'update_category') {
                    
    tep_db_perform(TABLE_CATEGORIES_DESCRIPTION$sql_data_array'update'"categories_id = '" . (int)$categories_id "' and language_id = '" . (int)$languages[$i]['id'] . "'");
                  }
                }

    // BOF: MOD for Categories Description 1.5
    //OLD-    if ($categories_image = new upload('categories_image', DIR_FS_CATALOG_IMAGES)) {
    //          tep_db_query("update " . TABLE_CATEGORIES . " set categories_image = '" . //tep_db_input($categories_image->filename) . "' where categories_id = '" . (int)$categories_id . "'");
    //Added the following to replacce above code
              
    if (ALLOW_CATEGORY_DESCRIPTIONS == 'true') {
                
    tep_db_query("update " TABLE_CATEGORIES " set categories_image = '" $HTTP_POST_VARS['categories_image'] . "' where categories_id = '" .  tep_db_input($categories_id) . "'");
                
    $categories_image '';
              } else {
                if (
    $categories_image = new upload('categories_image'DIR_FS_CATALOG_IMAGES)) {
                  
    tep_db_query("update " TABLE_CATEGORIES " set categories_image = '" tep_db_input($categories_image->filename) . "' where categories_id = '" . (int)$categories_id "'");
                }
    // EOF: MOD for Categories Description 1.5
              
    }

              if (
    USE_CACHE == 'true') {
                
    tep_reset_cache_block('categories');
                
    tep_reset_cache_block('also_purchased');
              }

              
    tep_redirect(tep_href_link(FILENAME_CATEGORIES'cPath=' $cPath '&cID=' $categories_id));
    // BOF: MOD for Categories Description 1.5
            
    }
    // EOF: MOD for Categories Description 1.5
            
    break;
          case 
    'delete_category_confirm':
            if (isset(
    $HTTP_POST_VARS['categories_id'])) {
              
    $categories_id tep_db_prepare_input($HTTP_POST_VARS['categories_id']);

              
    $categories tep_get_category_tree($categories_id'''0'''true);
              
    $products = array();
              
    $products_delete = array();

              for (
    $i=0$n=sizeof($categories); $i<$n$i++) {
                
    $product_ids_query tep_db_query("select products_id from " TABLE_PRODUCTS_TO_CATEGORIES " where categories_id = '" . (int)$categories[$i]['id'] . "'");

                while (
    $product_ids tep_db_fetch_array($product_ids_query)) {
                  
    $products[$product_ids['products_id']]['categories'][] = $categories[$i]['id'];
                }
              }

              
    reset($products);
              while (list(
    $key$value) = each($products)) {
                
    $category_ids '';

                for (
    $i=0$n=sizeof($value['categories']); $i<$n$i++) {
                  
    $category_ids .= "'" . (int)$value['categories'][$i] . "', ";
                }
                
    $category_ids substr($category_ids0, -2);

                
    $check_query tep_db_query("select count(*) as total from " TABLE_PRODUCTS_TO_CATEGORIES " where products_id = '" . (int)$key "' and categories_id not in (" $category_ids ")");
                
    $check tep_db_fetch_array($check_query);
                if (
    $check['total'] < '1') {
                  
    $products_delete[$key] = $key;
                }
              }

    // removing categories can be a lengthy process
              
    tep_set_time_limit(0);
              for (
    $i=0$n=sizeof($categories); $i<$n$i++) {
                
    tep_remove_category($categories[$i]['id']);
              }

              
    reset($products_delete);
              while (list(
    $key) = each($products_delete)) {
                
    tep_remove_product($key);
              }
            }

            if (
    USE_CACHE == 'true') {
              
    tep_reset_cache_block('categories');
              
    tep_reset_cache_block('also_purchased');
            }

            
    tep_redirect(tep_href_link(FILENAME_CATEGORIES'cPath=' $cPath));
            break;
          case 
    'delete_product_confirm':
            if (isset(
    $HTTP_POST_VARS['products_id']) && isset($HTTP_POST_VARS['product_categories']) && is_array($HTTP_POST_VARS['product_categories'])) {
              
    $product_id tep_db_prepare_input($HTTP_POST_VARS['products_id']);
              
    $product_categories $HTTP_POST_VARS['product_categories'];

              for (
    $i=0$n=sizeof($product_categories); $i<$n$i++) {
                
    tep_db_query("delete from " TABLE_PRODUCTS_TO_CATEGORIES " where products_id = '" . (int)$product_id "' and categories_id = '" . (int)$product_categories[$i] . "'");
            
    // LINE ADDED: MOD - Separate Price per Customer
               
    tep_db_query("delete from " TABLE_PRODUCTS_GROUPS " where products_id = '" tep_db_input($product_id) . "' ");
              }

              
    $product_categories_query tep_db_query("select count(*) as total from " TABLE_PRODUCTS_TO_CATEGORIES " where products_id = '" . (int)$product_id "'");
              
    $product_categories tep_db_fetch_array($product_categories_query);

              if (
    $product_categories['total'] == '0') {
                
    tep_remove_product($product_id);
              }
            }

            if (
    USE_CACHE == 'true') {
              
    tep_reset_cache_block('categories');
              
    tep_reset_cache_block('also_purchased');
            }

            
    tep_redirect(tep_href_link(FILENAME_CATEGORIES'cPath=' $cPath));
            break;
          case 
    'move_category_confirm':
            if (isset(
    $HTTP_POST_VARS['categories_id']) && ($HTTP_POST_VARS['categories_id'] != $HTTP_POST_VARS['move_to_category_id'])) {
              
    $categories_id tep_db_prepare_input($HTTP_POST_VARS['categories_id']);
              
    $new_parent_id tep_db_prepare_input($HTTP_POST_VARS['move_to_category_id']);

              
    $path explode('_'tep_get_generated_category_path_ids($new_parent_id));

              if (
    in_array($categories_id$path)) {
                
    $messageStack->add_session(ERROR_CANNOT_MOVE_CATEGORY_TO_PARENT'error');

                
    tep_redirect(tep_href_link(FILENAME_CATEGORIES'cPath=' $cPath '&cID=' $categories_id));
              } else {
                
    tep_db_query("update " TABLE_CATEGORIES " set parent_id = '" . (int)$new_parent_id "', last_modified = now() where categories_id = '" . (int)$categories_id "'");

                if (
    USE_CACHE == 'true') {
                  
    tep_reset_cache_block('categories');
                  
    tep_reset_cache_block('also_purchased');
                }

                
    tep_redirect(tep_href_link(FILENAME_CATEGORIES'cPath=' $new_parent_id '&cID=' $categories_id));
              }
            }

            break;
          case 
    'move_product_confirm':
            
    $products_id tep_db_prepare_input($HTTP_POST_VARS['products_id']);
            
    $new_parent_id tep_db_prepare_input($HTTP_POST_VARS['move_to_category_id']);

            
    $duplicate_check_query tep_db_query("select count(*) as total from " TABLE_PRODUCTS_TO_CATEGORIES " where products_id = '" . (int)$products_id "' and categories_id = '" . (int)$new_parent_id "'");
            
    $duplicate_check tep_db_fetch_array($duplicate_check_query);
            if (
    $duplicate_check['total'] < 1tep_db_query("update " TABLE_PRODUCTS_TO_CATEGORIES " set categories_id = '" . (int)$new_parent_id "' where products_id = '" . (int)$products_id "' and categories_id = '" . (int)$current_category_id "'");

            if (
    USE_CACHE == 'true') {
              
    tep_reset_cache_block('categories');
              
    tep_reset_cache_block('also_purchased');
            }

            
    tep_redirect(tep_href_link(FILENAME_CATEGORIES'cPath=' $new_parent_id '&pID=' $products_id));
            break;
          case 
    'insert_product':
          case 
    'update_product':
            if (isset(
    $HTTP_POST_VARS['edit_x']) || isset($HTTP_POST_VARS['edit_y'])) {
              
    $action 'new_product';
            } else {
              if (isset(
    $HTTP_GET_VARS['pID'])) $products_id tep_db_prepare_input($HTTP_GET_VARS['pID']);
              
    $products_date_available tep_db_prepare_input($HTTP_POST_VARS['products_date_available']);

              
    $products_date_available = (date('Y-m-d') < $products_date_available) ? $products_date_available 'null';

              
    $sql_data_array = array('products_quantity' => tep_db_prepare_input($HTTP_POST_VARS['products_quantity']),
    //LINE ADDED: MOD - indvship
                                      
    'products_ship_price' => tep_db_prepare_input($HTTP_POST_VARS['products_ship_price']), //indvship
                                      
    'products_model' => tep_db_prepare_input($HTTP_POST_VARS['products_model']),
                                      
    'products_price' => tep_db_prepare_input($HTTP_POST_VARS['products_price']),
                                      
    'products_date_available' => $products_date_available,
                                      
    'products_weight' => tep_db_prepare_input($HTTP_POST_VARS['products_weight']),
                                      
    'products_status' => tep_db_prepare_input($HTTP_POST_VARS['products_status']),
                                      
    'products_tax_class_id' => tep_db_prepare_input($HTTP_POST_VARS['products_tax_class_id']),
                                      
    'manufacturers_id' => tep_db_prepare_input($HTTP_POST_VARS['manufacturers_id']));

              if (isset(
    $HTTP_POST_VARS['products_image']) && tep_not_null($HTTP_POST_VARS['products_image']) && ($HTTP_POST_VARS['products_image'] != 'none')) {
                
    $sql_data_array['products_image'] = tep_db_prepare_input($HTTP_POST_VARS['products_image']);
              }

              if (
    $action == 'insert_product') {
                
    $insert_sql_data = array('products_date_added' => 'now()');

                
    $sql_data_array array_merge($sql_data_array$insert_sql_data);

                
    tep_db_perform(TABLE_PRODUCTS$sql_data_array);
                
    $products_id tep_db_insert_id();

                
    tep_db_query("insert into " TABLE_PRODUCTS_TO_CATEGORIES " (products_id, categories_id) values ('" . (int)$products_id "', '" . (int)$current_category_id "')");
              } elseif (
    $action == 'update_product') {
                
    $update_sql_data = array('products_last_modified' => 'now()');

                
    $sql_data_array array_merge($sql_data_array$update_sql_data);

                
    tep_db_perform(TABLE_PRODUCTS$sql_data_array'update'"products_id = '" . (int)$products_id "'");
              }

    // BOF: MOD - Separate Price per Customer
              
    $customers_group_query tep_db_query("select customers_group_id, customers_group_name from " TABLE_CUSTOMERS_GROUPS " where customers_group_id != '0' order by customers_group_id");
              while (
    $customers_group tep_db_fetch_array($customers_group_query))  { // Gets all of the customers groups
                
    $attributes_query tep_db_query("select customers_group_id, customers_group_price from " TABLE_PRODUCTS_GROUPS " where ((products_id = '" $products_id "') && (customers_group_id = " $customers_group['customers_group_id'] . ")) order by customers_group_id");
                
    $attributes tep_db_fetch_array($attributes_query);
                if (
    tep_db_num_rows($attributes_query) > 0) {
                  if (
    $HTTP_POST_VARS['sppcoption'][$customers_group['customers_group_id']]) {// this is checking if the check box is checked
                    
    if ( ($HTTP_POST_VARS['sppcprice'][$customers_group['customers_group_id']] <> $attributes['customers_group_price']) && ($attributes['customers_group_id'] == $customers_group['customers_group_id']) ) {
                    
    tep_db_query("update " TABLE_PRODUCTS_GROUPS " set customers_group_price = '" $HTTP_POST_VARS['sppcprice'][$customers_group['customers_group_id']] . "' where customers_group_id = '" $attributes['customers_group_id'] . "' and products_id = '" $products_id "'");
                      
    $attributes tep_db_fetch_array($attributes_query);
                    }
                    elseif ((
    $HTTP_POST_VARS['sppcprice'][$customers_group['customers_group_id']] == $attributes['customers_group_price'])) {
                    
    $attributes tep_db_fetch_array($attributes_query);
                    }
                  }
                  else {
                    
    tep_db_query("delete from " TABLE_PRODUCTS_GROUPS " where customers_group_id = '" $customers_group['customers_group_id'] . "' and products_id = '" $products_id "'");
                    
    $attributes tep_db_fetch_array($attributes_query);
                  }
                }
                elseif ((
    $HTTP_POST_VARS['sppcoption'][$customers_group['customers_group_id']]) && ($HTTP_POST_VARS['sppcprice'][$customers_group['customers_group_id']] != '')) {
                  
    tep_db_query("insert into " TABLE_PRODUCTS_GROUPS " (products_id, customers_group_id, customers_group_price) values ('" $products_id "', '" $customers_group['customers_group_id'] . "', '" $HTTP_POST_VARS['sppcprice'][$customers_group['customers_group_id']] . "')");
                  
    $attributes tep_db_fetch_array($attributes_query);
                }
              }
    // EOF: MOD - Separate Price per Customer

              
    $languages tep_get_languages();
              for (
    $i=0$n=sizeof($languages); $i<$n$i++) {
                
    $language_id $languages[$i]['id'];

                
    $sql_data_array = array('products_name' => tep_db_prepare_input($HTTP_POST_VARS['products_name'][$language_id]),
                                        
    'products_description' => tep_db_prepare_input($HTTP_POST_VARS['products_description'][$language_id]),
                                        
    'products_url' => tep_db_prepare_input($HTTP_POST_VARS['products_url'][$language_id]));

                if (
    $action == 'insert_product') {
                  
    $insert_sql_data = array('products_id' => $products_id,
                                           
    'language_id' => $language_id);

                  
    $sql_data_array array_merge($sql_data_array$insert_sql_data);

                  
    tep_db_perform(TABLE_PRODUCTS_DESCRIPTION$sql_data_array);
                } elseif (
    $action == 'update_product') {
                  
    tep_db_perform(TABLE_PRODUCTS_DESCRIPTION$sql_data_array'update'"products_id = '" . (int)$products_id "' and language_id = '" . (int)$language_id "'");
                }
              }

              if (
    USE_CACHE == 'true') {
                
    tep_reset_cache_block('categories');
                
    tep_reset_cache_block('also_purchased');
              }

              
    tep_redirect(tep_href_link(FILENAME_CATEGORIES'cPath=' $cPath '&pID=' $products_id));
            }
            break;
          case 
    'copy_to_confirm':
            if (isset(
    $HTTP_POST_VARS['products_id']) && isset($HTTP_POST_VARS['categories_id'])) {
              
    $products_id tep_db_prepare_input($HTTP_POST_VARS['products_id']);
              
    $categories_id tep_db_prepare_input($HTTP_POST_VARS['categories_id']);

              if (
    $HTTP_POST_VARS['copy_as'] == 'link') {
                if (
    $categories_id != $current_category_id) {
                  
    $check_query tep_db_query("select count(*) as total from " TABLE_PRODUCTS_TO_CATEGORIES " where products_id = '" . (int)$products_id "' and categories_id = '" . (int)$categories_id "'");
                  
    $check tep_db_fetch_array($check_query);
                  if (
    $check['total'] < '1') {
                    
    tep_db_query("insert into " TABLE_PRODUCTS_TO_CATEGORIES " (products_id, categories_id) values ('" . (int)$products_id "', '" . (int)$categories_id "')");
                  }
                } else {
                  
    $messageStack->add_session(ERROR_CANNOT_LINK_TO_SAME_CATEGORY'error');
                }
              } elseif (
    $HTTP_POST_VARS['copy_as'] == 'duplicate') {
    // LINE MODED: Added "products_ship_price"
                
    $product_query tep_db_query("select products_ship_price, products_quantity, products_model, products_image, products_price, products_date_available, products_weight, products_tax_class_id, manufacturers_id from " TABLE_PRODUCTS " where products_id = '" . (int)$products_id "'");
                
    $product tep_db_fetch_array($product_query);

    // LINE CHANGED: MS2 update 501112 - Added :(empty($product['products_date_available']) ? "null" : ...{some code}... ") . "
    // LINE MODED: Added "products_ship_price"
                
    tep_db_query("insert into " TABLE_PRODUCTS " (products_quantity, products_model, products_ship_price, products_image, products_price, products_date_added, products_date_available, products_weight, products_status, products_tax_class_id, manufacturers_id) values ('" tep_db_input($product['products_quantity']) . "', '" tep_db_input($product['products_model']) . "', '" $product['products_ship_price'] . "', '" tep_db_input($product['products_image']) . "', '" tep_db_input($product['products_price']) . "', now(), " . (empty($product['products_date_available']) ? "null" "'" tep_db_input($product['products_date_available']) . "'") . ", '" tep_db_input($product['products_weight']) . "', '0', '" . (int)$product['products_tax_class_id'] . "', '" . (int)$product['manufacturers_id'] . "')");           
                
    $dup_products_id tep_db_insert_id();

                
    $description_query tep_db_query("select language_id, products_name, products_description, products_url from " TABLE_PRODUCTS_DESCRIPTION " where products_id = '" . (int)$products_id "'");
                while (
    $description tep_db_fetch_array($description_query)) {
                  
    tep_db_query("insert into " TABLE_PRODUCTS_DESCRIPTION " (products_id, language_id, products_name, products_description, products_url, products_viewed) values ('" . (int)$dup_products_id "', '" . (int)$description['language_id'] . "', '" tep_db_input($description['products_name']) . "', '" tep_db_input($description['products_description']) . "', '" tep_db_input($description['products_url']) . "', '0')");
                }

                
    tep_db_query("insert into " TABLE_PRODUCTS_TO_CATEGORIES " (products_id, categories_id) values ('" . (int)$dup_products_id "', '" . (int)$categories_id "')");
                
    $products_id $dup_products_id;
              }

              if (
    USE_CACHE == 'true') {
                
    tep_reset_cache_block('categories');
                
    tep_reset_cache_block('also_purchased');
              }
            }

            
    tep_redirect(tep_href_link(FILENAME_CATEGORIES'cPath=' $categories_id '&pID=' $products_id));
            break;
          case 
    'new_product_preview':
    // copy image only if modified
            
    $products_image = new upload('products_image');
            
    $products_image->set_destination(DIR_FS_CATALOG_IMAGES);
            if (
    $products_image->parse() && $products_image->save()) {
              
    $products_image_name $products_image->filename;
            } else {
              
    $products_image_name = (isset($HTTP_POST_VARS['products_previous_image']) ? $HTTP_POST_VARS['products_previous_image'] : '');
            }
            break;
        }
      }

    // check if the catalog image directory exists
      
    if (is_dir(DIR_FS_CATALOG_IMAGES)) {
        if (!
    is_writeable(DIR_FS_CATALOG_IMAGES)) $messageStack->add(ERROR_CATALOG_IMAGE_DIRECTORY_NOT_WRITEABLE'error');
      } else {
        
    $messageStack->add(ERROR_CATALOG_IMAGE_DIRECTORY_DOES_NOT_EXIST'error');
      }
    ?>
    <!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>
    <link rel="stylesheet" type="text/css" href="includes/stylesheet.css">
    <script language="javascript" src="includes/general.js"></script>
    </head>
    <body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" bgcolor="#FFFFFF" onload="SetFocus();">
    <div id="spiffycalendar" class="text"></div>
    <!-- header //-->
    <?php require(DIR_WS_INCLUDES 'header.php'); ?>
    <!-- header_eof //-->

    <!-- body //-->
    <table border="0" width="100%" cellspacing="2" cellpadding="2">
      <tr>
        <td width="<?php echo BOX_WIDTH?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH?>" cellspacing="1" cellpadding="1" class="columnLeft">
    <!-- left_navigation //-->
    <?php require(DIR_WS_INCLUDES 'column_left.php'); ?>
    <!-- left_navigation_eof //-->
        </table></td>
    <!-- body_text //-->
    <?php // BOF: MOD  new_category / edit_category (when ALLOW_CATEGORY_DESCRIPTIONS is 'true') 
    //    <td width="100%" valign="top">
    //  if ($action == 'new_product') {
    ?>
           <td width="100%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
      <?php   //----- new_category / edit_category (when ALLOW_CATEGORY_DESCRIPTIONS is 'true') -----
      
    if ($HTTP_GET_VARS['action'] == 'new_category_ACD' || $HTTP_GET_VARS['action'] == 'edit_category_ACD') {
        if ( (
    $HTTP_GET_VARS['cID']) && (!$HTTP_POST_VARS) ) {
          
    $categories_query tep_db_query("select c.categories_id, cd.categories_name, cd.categories_heading_title, cd.categories_description, c.categories_image, c.parent_id, c.sort_order, c.date_added, c.last_modified from " TABLE_CATEGORIES " c, " TABLE_CATEGORIES_DESCRIPTION " cd where c.categories_id = '" $HTTP_GET_VARS['cID'] . "' and c.categories_id = cd.categories_id and cd.language_id = '" $languages_id "' order by c.sort_order, cd.categories_name");
          
    $category tep_db_fetch_array($categories_query);

          
    $cInfo = new objectInfo($category);
        } elseif (
    $HTTP_POST_VARS) {
          
    $cInfo = new objectInfo($HTTP_POST_VARS);
          
    $categories_name $HTTP_POST_VARS['categories_name'];
          
    $categories_heading_title $HTTP_POST_VARS['categories_heading_title'];
          
    $categories_description $HTTP_POST_VARS['categories_description'];
          
    $categories_url $HTTP_POST_VARS['categories_url'];
        } else {
          
    $cInfo = new objectInfo(array());
        }

        
    $languages tep_get_languages();

        
    $text_new_or_edit = ($HTTP_GET_VARS['action']=='new_category_ACD') ? TEXT_INFO_HEADING_NEW_CATEGORY TEXT_INFO_HEADING_EDIT_CATEGORY;
    ?>
          <tr>
            <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
              <tr>
                <td class="pageHeading"><?php echo sprintf($text_new_or_edittep_output_generated_category_path($current_category_id)); ?></td>
                <td class="pageHeading" align="right"><?php echo tep_draw_separator('pixel_trans.gif'HEADING_IMAGE_WIDTHHEADING_IMAGE_HEIGHT); ?></td>
              </tr>
            </table></td>
          </tr>
          <tr>
            <td><?php echo tep_draw_separator('pixel_trans.gif''1''10'); ?></td>
          </tr>
          <tr><?php echo tep_draw_form('new_category'FILENAME_CATEGORIES'cPath=' $cPath '&cID=' $HTTP_GET_VARS['cID'] . '&action=new_category_preview''post''enctype="multipart/form-data"'); ?>
            <td><table border="0" cellspacing="0" cellpadding="2">
    <?php
        
    for ($i=0$i<sizeof($languages); $i++) {
    ?>
              <tr>
                <td class="main"><?php if ($i == 0) echo TEXT_EDIT_CATEGORIES_NAME?></td>
                <td class="main"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES $languages[$i]['directory'] . '/images/' $languages[$i]['image'], $languages[$i]['name']) . '&nbsp;' tep_draw_input_field('categories_name[' $languages[$i]['id'] . ']', (($categories_name[$languages[$i]['id']]) ? stripslashes($categories_name[$languages[$i]['id']]) : tep_get_category_name($cInfo->categories_id$languages[$i]['id']))); ?></td>
              </tr>
    <?php
        
    }
    ?>
              <tr>
                <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif''1''10'); ?></td>
              </tr>
    <?php
        
    for ($i=0$i<sizeof($languages); $i++) {
    ?>
              <tr>
                <td class="main"><?php if ($i == 0) echo TEXT_EDIT_CATEGORIES_HEADING_TITLE?></td>
                <td class="main"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES $languages[$i]['directory'] . '/images/' $languages[$i]['image'], $languages[$i]['name']) . '&nbsp;' tep_draw_input_field('categories_heading_title[' $languages[$i]['id'] . ']', (($categories_name[$languages[$i]['id']]) ? stripslashes($categories_name[$languages[$i]['id']]) : tep_get_category_heading_title($cInfo->categories_id$languages[$i]['id']))); ?></td>
              </tr>
    <?php
        
    }
    ?>
              <tr>
                <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif''1''10'); ?></td>
              </tr>
    <?php
        
    for ($i=0$i<sizeof($languages); $i++) {
    ?>
              <tr>
                <td class="main" valign="top"><?php if ($i == 0) echo TEXT_EDIT_CATEGORIES_DESCRIPTION?></td>
                <td><table border="0" cellspacing="0" cellpadding="0">
                  <tr>
                    <td class="main" valign="top"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES $languages[$i]['directory'] . '/images/' $languages[$i]['image'], $languages[$i]['name']); ?>&nbsp;</td>
                    <td class="main">
                    <?php if(HTML_AREA_WYSIWYG_DISABLE == 'Enable') {
                      echo 
    tep_draw_fckeditor ('categories_description[' $languages[$i]['id'] . ']''550''300', (isset($categories_description[$languages[$i]['id']]) ? stripslashes($categories_description[$languages[$i]['id']]) : tep_get_category_description($cInfo->categories_id$languages[$i]['id']))) . '</td>';
                      } else { echo 
    tep_draw_textarea_field('categories_description[' $languages[$i]['id'].']','soft','70','15',(isset($categories_description[$languages[$i]['id']]) ? $categories_description[$languages[$i]['id']] : tep_get_category_description($cInfo->categories_id$languages[$i]['id']))) . '</td>';
                    }
                    
    ?>
                  </tr>
                </table></td>
              </tr>
    <?php
        
    }
    ?>
              <tr>
                <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif''1''10'); ?></td>
              </tr>
              <tr>
              <tr>
                <td class="main"><?php echo TEXT_EDIT_CATEGORIES_IMAGE?></td>
                <td class="main"><?php echo tep_draw_separator('pixel_trans.gif''24''15') . '&nbsp;' tep_draw_file_field('categories_image') . '<br>' tep_draw_separator('pixel_trans.gif''24''15') . '&nbsp;' $cInfo->categories_image tep_draw_hidden_field('categories_previous_image'$cInfo->categories_image); ?></td>
              </tr>
              <tr>
                <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif''1''10'); ?></td>
              </tr>
              <tr>
                <td class="main"><?php echo TEXT_EDIT_SORT_ORDER?></td>
                <td class="main"><?php echo tep_draw_separator('pixel_trans.gif''24''15') . '&nbsp;' tep_draw_input_field('sort_order'$cInfo->sort_order'size="2"'); ?></td>
              </tr>
              <tr>
                <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif''1''10'); ?></td>
              </tr>
            </table></td>
          </tr>
          <tr>
            <td><?php echo tep_draw_separator('pixel_trans.gif''1''10'); ?></td>
          </tr>
          <tr>
            <td class="main" align="right"><?php echo tep_draw_hidden_field('categories_date_added', (($cInfo->date_added) ? $cInfo->date_added date('Y-m-d'))) . tep_draw_hidden_field('parent_id'$cInfo->parent_id) . tep_image_submit('button_preview.gif'IMAGE_PREVIEW) . '&nbsp;&nbsp;<a href="' tep_href_link(FILENAME_CATEGORIES'cPath=' $cPath '&cID=' $HTTP_GET_VARS['cID']) . '">' tep_image_button('button_cancel.gif'IMAGE_CANCEL) . '</a>'?></td>
          </form></tr>
    <?php

      
    //----- new_category_preview (active when ALLOW_CATEGORY_DESCRIPTIONS is 'true') -----
      
    } elseif ($HTTP_GET_VARS['action'] == 'new_category_preview') {
        if (
    $HTTP_POST_VARS) {
          
    $cInfo = new objectInfo($HTTP_POST_VARS);
          
    $categories_name $HTTP_POST_VARS['categories_name'];
          
    $categories_heading_title $HTTP_POST_VARS['categories_heading_title'];
          
    $categories_description $HTTP_POST_VARS['categories_description'];

    // copy image only if modified
            
    $categories_image = new upload('categories_image');
            
    $categories_image->set_destination(DIR_FS_CATALOG_IMAGES);
            if (
    $categories_image->parse() && $categories_image->save()) {
              
    $categories_image_name $categories_image->filename;
            } else {
            
    $categories_image_name $HTTP_POST_VARS['categories_previous_image'];
          }
    #     if ( ($categories_image != 'none') && ($categories_image != '') ) {
    #       $image_location = DIR_FS_CATALOG_IMAGES . $categories_image_name;
    #       if (file_exists($image_location)) @unlink($image_location);
    #       copy($categories_image, $image_location);
    #     } else {
    #       $categories_image_name = $HTTP_POST_VARS['categories_previous_image'];
    #     }
        
    } else {
          
    $category_query tep_db_query("select c.categories_id, cd.language_id, cd.categories_name, cd.categories_heading_title, cd.categories_description, c.categories_image, c.sort_order, c.date_added, c.last_modified from " TABLE_CATEGORIES " c, " TABLE_CATEGORIES_DESCRIPTION " cd where c.categories_id = cd.categories_id and c.categories_id = '" $HTTP_GET_VARS['cID'] . "'");
          
    $category tep_db_fetch_array($category_query);

          
    $cInfo = new objectInfo($category);
          
    $categories_image_name $cInfo->categories_image;
        }

        
    $form_action = ($HTTP_GET_VARS['cID']) ? 'update_category' 'insert_category';

        echo 
    tep_draw_form($form_actionFILENAME_CATEGORIES'cPath=' $cPath '&cID=' $HTTP_GET_VARS['cID'] . '&action=' $form_action'post''enctype="multipart/form-data"');

        
    $languages tep_get_languages();
        for (
    $i=0$i<sizeof($languages); $i++) {
          if (
    $HTTP_GET_VARS['read'] == 'only') {
            
    $cInfo->categories_name tep_get_category_name($cInfo->categories_id$languages[$i]['id']);
            
    $cInfo->categories_heading_title tep_get_category_heading_title($cInfo->categories_id$languages[$i]['id']);
            
    $cInfo->categories_description tep_get_category_description($cInfo->categories_id$languages[$i]['id']);
          } else {
            
    $cInfo->categories_name tep_db_prepare_input($categories_name[$languages[$i]['id']]);
            
    $cInfo->categories_heading_title tep_db_prepare_input($categories_heading_title[$languages[$i]['id']]);
            
    $cInfo->categories_description tep_db_prepare_input($categories_description[$languages[$i]['id']]);
          }
    ?>
          <tr>
            <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
              <tr>
                <td class="pageHeading"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES $languages[$i]['directory'] . '/images/' $languages[$i]['image'], $languages[$i]['name']) . '&nbsp;' $cInfo->categories_heading_title?></td>
              </tr>
            </table></td>
          </tr>
          <tr>
            <td><?php echo tep_draw_separator('pixel_trans.gif''1''10'); ?></td>
          </tr>
          <tr>
            <td class="main"><?php echo tep_image(DIR_WS_CATALOG_IMAGES $categories_image_name$cInfo->categories_nameSMALL_IMAGE_WIDTHSMALL_IMAGE_HEIGHT'align="right" hspace="5" vspace="5"') . $cInfo->categories_description?></td>
          </tr>

    <?php
        
    }
        if (
    $HTTP_GET_VARS['read'] == 'only') {
          if (
    $HTTP_GET_VARS['origin']) {
            
    $pos_params strpos($HTTP_GET_VARS['origin'], '?'0);
            if (
    $pos_params != false) {
              
    $back_url substr($HTTP_GET_VARS['origin'], 0$pos_params);
              
    $back_url_params substr($HTTP_GET_VARS['origin'], $pos_params 1);
            } else {
              
    $back_url $HTTP_GET_VARS['origin'];
              
    $back_url_params '';
            }
          } else {
            
    $back_url FILENAME_CATEGORIES;
            
    $back_url_params 'cPath=' $cPath '&cID=' $cInfo->categories_id;
          }
    ?>
          <tr>
            <td align="right"><?php echo '<a href="' tep_href_link($back_url$back_url_params'NONSSL') . '">' tep_image_button('button_back.gif'IMAGE_BACK) . '</a>'?></td>
          </tr>
    <?php
        
    } else {
    ?>
          <tr>
            <td align="right" class="smallText">
    <?php
    /* Re-Post all POST'ed variables */
          
    reset($HTTP_POST_VARS);
          while (list(
    $key$value) = each($HTTP_POST_VARS)) {
            if (!
    is_array($HTTP_POST_VARS[$key])) {
              echo 
    tep_draw_hidden_field($keyhtmlspecialchars(stripslashes($value)));
            }
          }
          
    $languages tep_get_languages();
          for (
    $i=0$i<sizeof($languages); $i++) {
            echo 
    tep_draw_hidden_field('categories_name[' $languages[$i]['id'] . ']'htmlspecialchars(stripslashes($categories_name[$languages[$i]['id']])));
            echo 
    tep_draw_hidden_field('categories_heading_title[' $languages[$i]['id'] . ']'htmlspecialchars(stripslashes($categories_heading_title[$languages[$i]['id']])));
            echo 
    tep_draw_hidden_field('categories_description[' $languages[$i]['id'] . ']'htmlspecialchars(stripslashes($categories_description[$languages[$i]['id']])));
          }
          echo 
    tep_draw_hidden_field('X_categories_image'stripslashes($categories_image_name));
          echo 
    tep_draw_hidden_field('categories_image'stripslashes($categories_image_name));

          echo 
    tep_image_submit('button_back.gif'IMAGE_BACK'name="edit"') . '&nbsp;&nbsp;';

          if (
    $HTTP_GET_VARS['cID']) {
            echo 
    tep_image_submit('button_update.gif'IMAGE_UPDATE);
          } else {
            echo 
    tep_image_submit('button_insert.gif'IMAGE_INSERT);
          }
          echo 
    '&nbsp;&nbsp;<a href="' tep_href_link(FILENAME_CATEGORIES'cPath=' $cPath '&cID=' $HTTP_GET_VARS['cID']) . '">' tep_image_button('button_cancel.gif'IMAGE_CANCEL) . '</a>';
    ?></td>
          </form></tr>
    <?php
        
    }

      } elseif (
    $action == 'new_product') {
    // EOF: MOD  new_category / edit_category (when ALLOW_CATEGORY_DESCRIPTIONS is 'true') 
        
    $parameters = array('products_name' => '',
                           
    'products_description' => '',
                           
    'products_url' => '',
                           
    'products_id' => '',
                           
    'products_quantity' => '',
                           
    'products_model' => '',
                           
    'products_image' => '',
                           
    'products_price' => '',
                           
    'products_weight' => '',
                           
    'products_date_added' => '',
                           
    'products_last_modified' => '',
                           
    'products_date_available' => '',
                           
    'products_status' => '',
                               
    'products_tax_class_id' => '',
                           
    'manufacturers_id' => '');

        
    $pInfo = new objectInfo($parameters);

        if (isset(
    $HTTP_GET_VARS['pID']) && empty($HTTP_POST_VARS)) {
    //LINE MODED: Added "p.products_ship_price"
          
    $product_query tep_db_query("select p.products_ship_price, pd.products_name, pd.products_description, pd.products_url, p.products_id, p.products_quantity, p.products_model, p.products_image, p.products_price, p.products_weight, p.products_date_added, p.products_last_modified, date_format(p.products_date_available, '%Y-%m-%d') as products_date_available, p.products_status, p.products_tax_class_id, p.manufacturers_id from " TABLE_PRODUCTS " p, " TABLE_PRODUCTS_DESCRIPTION " pd where p.products_id = '" . (int)$HTTP_GET_VARS['pID'] . "' and p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id "'");
          
    $product tep_db_fetch_array($product_query);

          
    $pInfo->objectInfo($product);
        } elseif (
    tep_not_null($HTTP_POST_VARS)) {
          
    $pInfo->objectInfo($HTTP_POST_VARS);
          
    $products_name $HTTP_POST_VARS['products_name'];
          
    $products_description $HTTP_POST_VARS['products_description'];
          
    $products_url $HTTP_POST_VARS['products_url'];
        }

        
    $manufacturers_array = array(array('id' => '''text' => TEXT_NONE));
        
    $manufacturers_query tep_db_query("select manufacturers_id, manufacturers_name from " TABLE_MANUFACTURERS " order by manufacturers_name");
        while (
    $manufacturers tep_db_fetch_array($manufacturers_query)) {
          
    $manufacturers_array[] = array('id' => $manufacturers['manufacturers_id'],
                                         
    'text' => $manufacturers['manufacturers_name']);
        }

        
    $tax_class_array = array(array('id' => '0''text' => TEXT_NONE));
        
    $tax_class_query tep_db_query("select tax_class_id, tax_class_title from " TABLE_TAX_CLASS " order by tax_class_title");
        while (
    $tax_class tep_db_fetch_array($tax_class_query)) {
          
    $tax_class_array[] = array('id' => $tax_class['tax_class_id'],
                                     
    'text' => $tax_class['tax_class_title']);
        }

        
    $languages tep_get_languages();

        if (!isset(
    $pInfo->products_status)) $pInfo->products_status '1';
        switch (
    $pInfo->products_status) {
          case 
    '0'$in_status false$out_status true; break;
          case 
    '1':
          default: 
    $in_status true$out_status false;
        }
    ?>
    <link rel="stylesheet" type="text/css" href="includes/javascript/spiffyCal/spiffyCal_v2_1.css">
    <script language="JavaScript" src="includes/javascript/spiffyCal/spiffyCal_v2_1.js"></script>
    <script language="javascript"><!--
      var dateAvailable = new ctlSpiffyCalendarBox("dateAvailable", "new_product", "products_date_available","btnDate1","<?php echo $pInfo->products_date_available?>",scBTNMODE_CUSTOMBLUE);
    //--></script>
    <script language="javascript"><!--
    var tax_rates = new Array();
    <?php
        
    for ($i=0$n=sizeof($tax_class_array); $i<$n$i++) {
          if (
    $tax_class_array[$i]['id'] > 0) {
            echo 
    'tax_rates["' $tax_class_array[$i]['id'] . '"] = ' tep_get_tax_rate_value($tax_class_array[$i]['id']) . ';' "n";
          }
        }
    ?>

    function doRound(x, places) {
      return Math.round(x * Math.pow(10, places)) / Math.pow(10, places);
    }

    function getTaxRate() {
      var selected_value = document.forms["new_product"].products_tax_class_id.selectedIndex;
      var parameterVal = document.forms["new_product"].products_tax_class_id[selected_value].value;

      if ( (parameterVal > 0) && (tax_rates[parameterVal] > 0) ) {
        return tax_rates[parameterVal];
      } else {
        return 0;
      }
    }

    function updateGross() {
      var taxRate = getTaxRate();
      var grossValue = document.forms["new_product"].products_price.value;

      if (taxRate > 0) {
        grossValue = grossValue * ((taxRate / 100) + 1);
      }

      document.forms["new_product"].products_price_gross.value = doRound(grossValue, 4);
    }

    function updateNet() {
      var taxRate = getTaxRate();
      var netValue = document.forms["new_product"].products_price_gross.value;

      if (taxRate > 0) {
        netValue = netValue / ((taxRate / 100) + 1);
      }

      document.forms["new_product"].products_price.value = doRound(netValue, 4);
    }
    //--></script>
        <?php echo tep_draw_form('new_product'FILENAME_CATEGORIES'cPath=' $cPath . (isset($HTTP_GET_VARS['pID']) ? '&pID=' $HTTP_GET_VARS['pID'] : '') . '&action=new_product_preview''post''enctype="multipart/form-data"'); ?>
        <table border="0" width="100%" cellspacing="0" cellpadding="2">
          <tr>
            <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
              <tr>
                <td class="pageHeading"><?php echo sprintf(TEXT_NEW_PRODUCTtep_output_generated_category_path($current_category_id)); ?></td>
                <td class="pageHeading" align="right"><?php echo tep_draw_separator('pixel_trans.gif'HEADING_IMAGE_WIDTHHEADING_IMAGE_HEIGHT); ?></td>
              </tr>
            </table></td>
          </tr>
          <tr>
            <td><?php echo tep_draw_separator('pixel_trans.gif''1''10'); ?></td>
          </tr>
          <tr>
            <td><table border="0" cellspacing="0" cellpadding="2">
              <tr>
                <td class="main"><?php echo TEXT_PRODUCTS_STATUS?></td>
                <td class="main"><?php echo tep_draw_separator('pixel_trans.gif''24''15') . '&nbsp;' tep_draw_radio_field('products_status''1'$in_status) . '&nbsp;' TEXT_PRODUCT_AVAILABLE '&nbsp;' tep_draw_radio_field('products_status''0'$out_status) . '&nbsp;' TEXT_PRODUCT_NOT_AVAILABLE?></td>
              </tr>
              <tr>
                <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif''1''10'); ?></td>
              </tr>
              <tr>
                <td class="main"><?php echo TEXT_PRODUCTS_DATE_AVAILABLE?><br><small>(YYYY-MM-DD)</small></td>
                <td class="main"><?php echo tep_draw_separator('pixel_trans.gif''24''15') . '&nbsp;'?><script language="javascript">dateAvailable.writeControl(); dateAvailable.dateFormat="yyyy-MM-dd";</script></td>
              </tr>
              <tr>
                <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif''1''10'); ?></td>
              </tr>
              <tr>
                <td class="main"><?php echo TEXT_PRODUCTS_MANUFACTURER?></td>
                <td class="main"><?php echo tep_draw_separator('pixel_trans.gif''24''15') . '&nbsp;' tep_draw_pull_down_menu('manufacturers_id'$manufacturers_array$pInfo->manufacturers_id); ?></td>
              </tr>
              <tr>
                <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif''1''10'); ?></td>
              </tr>
    <?php
        
    for ($i=0$n=sizeof($languages); $i<$n$i++) {
    ?>
              <tr>
                <td class="main"><?php if ($i == 0) echo TEXT_PRODUCTS_NAME?></td>
    <?php /* LINE CHANGED: MS2 update 501112 - Added: stripslashes(...) */ ?>
                <td class="main"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES $languages[$i]['directory'] . '/images/' $languages[$i]['image'], $languages[$i]['name']) . '&nbsp;' tep_draw_input_field('products_name[' $languages[$i]['id'] . ']', (isset($products_name[$languages[$i]['id']]) ? stripslashes($products_name[$languages[$i]['id']]) : tep_get_products_name($pInfo->products_id$languages[$i]['id']))); ?></td>
              </tr>
    <?php
        
    }
    ?>
              <tr>
                <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif''1''10'); ?></td>
              </tr>
              <tr bgcolor="#ebebff">
                <td class="main"><?php echo TEXT_PRODUCTS_TAX_CLASS?></td>
                <td class="main"><?php echo tep_draw_separator('pixel_trans.gif''24''15') . '&nbsp;' tep_draw_pull_down_menu('products_tax_class_id'$tax_class_array$pInfo->products_tax_class_id'onchange="updateGross()"'); ?></td>
              </tr>
              <tr bgcolor="#ebebff">
                <td class="main"><?php echo TEXT_PRODUCTS_PRICE_NET?></td>
                <td class="main"><?php echo tep_draw_separator('pixel_trans.gif''24''15') . '&nbsp;' tep_draw_input_field('products_price'$pInfo->products_price'onKeyUp="updateGross()"'); ?></td>
              </tr>
              <tr bgcolor="#ebebff">
                <td class="main"><?php echo TEXT_PRODUCTS_PRICE_GROSS?></td>
                <td class="main"><?php echo tep_draw_separator('pixel_trans.gif''24''15') . '&nbsp;' tep_draw_input_field('products_price_gross'$pInfo->products_price'OnKeyUp="updateNet()"'); ?></td>
              </tr>
    <?php // EOF: MOD - indvship ?>
              <tr>
                <td class="main"><?php echo 'Indv. Shipping Price:'?></td>
                <td class="main"><?php echo tep_draw_separator('pixel_trans.gif''24''15') . '&nbsp;' tep_draw_input_field('products_ship_price'$pInfo->products_ship_price); ?></td>
              </tr>
    <?php // EOF: MOD - indvship ?>
              <tr>
                <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif''1''10'); ?></td>
              </tr>
    <script language="javascript"><!--
    updateGross();
    //--></script>
    <?php
    // BOF: MOD - Separate Pricing Per Customer
        
    $customers_group_query tep_db_query("select customers_group_id, customers_group_name from " TABLE_CUSTOMERS_GROUPS " where customers_group_id != '0' order by customers_group_id");
        
    $header false;
        while (
    $customers_group tep_db_fetch_array($customers_group_query)) {

         if (
    tep_db_num_rows($customers_group_query) > 0) {
           
    $attributes_query tep_db_query("select customers_group_id, customers_group_price from " TABLE_PRODUCTS_GROUPS " where products_id = '" $pInfo->products_id "' and customers_group_id = '" $customers_group['customers_group_id'] . "' order by customers_group_id");
         } else {
             
    $attributes = array('customers_group_id' => 'new');
         }
     if (!
    $header) { ?>

        <tr bgcolor="#ebebff">
        <td class="main" colspan="2" style="font-style: italic">Note that if a field is left empty, no price for that customer group will be inserted in the database.<br />
    If a field is filled, but the checkbox is unchecked no price will be inserted either.<br />
    If a price is already inserted in the database, but the checkbox unchecked it will be removed from the database.
    <?php if (isset($pInfo->sppcoption[$customers_group['customers_group_id']])) { // when a preview was done and the back button used
    print ("<br />n<strong>Make sure you uncheck the appropriate boxes again!</strong>n");
    ?>
    </td>
        </tr>
     <?php
     $header 
    true;
     } 
    // end if (!header), makes sure this is only shown once
     
    ?>
          <tr bgcolor="#ebebff">
          <td class="main"><?php
          
    echo tep_draw_checkbox_field('sppcoption[' $customers_group['customers_group_id'] . ']''sppcoption[' $customers_group['customers_group_id'] . ']'true) . '&nbsp;' $customers_group['customers_group_name'];
    ?>
     &nbsp;</td>
           <td class="main"><?php
           
    if ($attributes tep_db_fetch_array($attributes_query)) {
           echo 
    tep_draw_separator('pixel_trans.gif''24''15') . '&nbsp;' tep_draw_input_field('sppcprice[' $customers_group['customers_group_id'] . ']'$attributes['customers_group_price']);
           }  else {
             if (isset(
    $pInfo->sppcprice[$customers_group['customers_group_id']])) { // when a preview was done and the back button used
               
    $sppc_cg_price $pInfo->sppcprice[$customers_group['customers_group_id']];
             } else { 
    // nothing in the db, nothing in the post variables
               
    $sppc_cg_price '';
             }
         echo 
    tep_draw_separator('pixel_trans.gif''24''15') . '&nbsp;' tep_draw_input_field('sppcprice[' $customers_group['customers_group_id'] . ']'$sppc_cg_price );
       }  
    ?></td>
        </tr>
    <?php
            
    // end while ($customers_group = tep_db_fetch_array($customers_group_query))
    ?>
              <tr>
                <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif''1''10'); ?></td>
              </tr>
    <?php
    // EOF: MOD - Separate Pricing Per Customer
        
    for ($i=0$n=sizeof($languages); $i<$n$i++) {
    ?>
              <tr>
                <td class="main" valign="top"><?php if ($i == 0) echo TEXT_PRODUCTS_DESCRIPTION?></td>
                <td><table border="0" cellspacing="0" cellpadding="0">
                  <tr>
                    <td class="main" valign="top"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES $languages[$i]['directory'] . '/images/' $languages[$i]['image'], $languages[$i]['name']); ?>&nbsp;</td>
    <?php // BOF: MOD WYSIWYG Editor
    /*              <td class="main"><?php echo tep_draw_textarea_field('products_description[' . $languages[$i]['id'] . ']', 'soft', '70', '15', (isset($products_description[$languages[$i]['id']]) ? $products_description[$languages[$i]['id']] : tep_get_products_description($pInfo->products_id, $languages[$i]['id']))); ?></td> */
    ?>
                    <td class="main"><?php if(HTML_AREA_WYSIWYG_DISABLE == 'Enable') {
          echo 
    tep_draw_fckeditor ('products_description[' $languages[$i]['id'] . ']''550''300', (isset($products_description[$languages[$i]['id']]) ? stripslashes($products_description[$languages[$i]['id']]) : tep_get_products_description($pInfo->products_id$languages[$i]['id']))) . '</td>';
    // LINE MODIFIED: BUGFIX 0000083 - Not using fck Editor in admin categ/products won't save description
        
    } else {
    // LINE CHANGED: MS2 update 501112 - Added: stripslashes(...)
          
    echo tep_draw_textarea_field('products_description[' $languages[$i]['id'].']','soft','70','15',(isset($products_description[$languages[$i]['id']]) ? stripslashes($products_description[$languages[$i]['id']]) : tep_get_products_description($pInfo->products_id$languages[$i]['id']))) . '</td>';
        }
    // EOF: MOD WYSIWYG Editor ?>
                  </tr>
                </table></td>
              </tr>
    <?php
        
    }
    ?>
              <tr>
                <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif''1''10'); ?></td>
              </tr>
              <tr>
                <td class="main"><?php echo TEXT_PRODUCTS_QUANTITY?></td>
                <td class="main"><?php echo tep_draw_separator('pixel_trans.gif''24''15') . '&nbsp;' tep_draw_input_field('products_quantity'$pInfo->products_quantity); ?></td>
              </tr>
              <tr>
                <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif''1''10'); ?></td>
              </tr>
              <tr>
                <td class="main"><?php echo TEXT_PRODUCTS_MODEL?></td>
                <td class="main"><?php echo tep_draw_separator('pixel_trans.gif''24''15') . '&nbsp;' tep_draw_input_field('products_model'$pInfo->products_model); ?></td>
              </tr>
              <tr>
                <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif''1''10'); ?></td>
              </tr>
              <tr>
                <td class="main"><?php echo TEXT_PRODUCTS_IMAGE?></td>
                <td class="main"><?php echo tep_draw_separator('pixel_trans.gif''24''15') . '&nbsp;' tep_draw_file_field('products_image') . '<br>' tep_draw_separator('pixel_trans.gif''24''15') . '&nbsp;' $pInfo->products_image tep_draw_hidden_field('products_previous_image'$pInfo->products_image); ?></td>
              </tr>
              <tr>
                <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif''1''10'); ?></td>
              </tr>
    <?php
        
    for ($i=0$n=sizeof($languages); $i<$n$i++) {
    ?>
              <tr>
                <td class="main"><?php if ($i == 0) echo TEXT_PRODUCTS_URL '<br><small>' TEXT_PRODUCTS_URL_WITHOUT_HTTP '</small>'?></td>
    <?php /* LINE CHANGED: MS2 update 501112 - Added: stripslashes(...) */ ?>
                <td class="main"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES $languages[$i]['directory'] . '/images/' $languages[$i]['image'], $languages[$i]['name']) . '&nbsp;' tep_draw_input_field('products_url[' $languages[$i]['id'] . ']', (isset($products_url[$languages[$i]['id']]) ? stripslashes($products_url[$languages[$i]['id']]) : tep_get_products_url($pInfo->products_id$languages[$i]['id']))); ?></td>
              </tr>
    <?php
        
    }
    ?>
              <tr>
                <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif''1''10'); ?></td>
              </tr>
              <tr>
                <td class="main"><?php echo TEXT_PRODUCTS_WEIGHT?></td>
                <td class="main"><?php echo tep_draw_separator('pixel_trans.gif''24''15') . '&nbsp;' tep_draw_input_field('products_weight'$pInfo->products_weight); ?></td>
              </tr>
            </table></td>
          </tr>
          <tr>
            <td><?php echo tep_draw_separator('pixel_trans.gif''1''10'); ?></td>
          </tr>
          <tr>
            <td class="main" align="right"><?php echo tep_draw_hidden_field('products_date_added', (tep_not_null($pInfo->products_date_added) ? $pInfo->products_date_added date('Y-m-d'))) . tep_image_submit('button_preview.gif'IMAGE_PREVIEW) . '&nbsp;&nbsp;<a href="' tep_href_link(FILENAME_CATEGORIES'cPath=' $cPath . (isset($HTTP_GET_VARS['pID']) ? '&pID=' $HTTP_GET_VARS['pID'] : '')) . '">' tep_image_button('button_cancel.gif'IMAGE_CANCEL) . '</a>'?></td>
          </tr>
        </table></form>
    <?php
      
    } elseif ($action == 'new_product_preview') {
        if (
    tep_not_null($HTTP_POST_VARS)) {
          
    $pInfo = new objectInfo($HTTP_POST_VARS);
          
    $products_name $HTTP_POST_VARS['products_name'];
          
    $products_description $HTTP_POST_VARS['products_description'];
          
    $products_url $HTTP_POST_VARS['products_url'];
        } else {
    // LINE CHANGED: Added p.products_shipped_price
          
    $product_query tep_db_query("select p.products_ship_price, p.products_id, pd.language_id, pd.products_name, pd.products_description, pd.products_url, p.products_quantity, p.products_model, p.products_image, p.products_price, p.products_weight, p.products_date_added, p.products_last_modified, p.products_date_available, p.products_status, p.manufacturers_id  from " TABLE_PRODUCTS " p, " TABLE_PRODUCTS_DESCRIPTION " pd where p.products_id = pd.products_id and p.products_id = '" . (int)$HTTP_GET_VARS['pID'] . "'");
          
    $product tep_db_fetch_array($product_query);

          
    $pInfo = new objectInfo($product);
          
    $products_image_name $pInfo->products_image;
        }

        
    $form_action = (isset($HTTP_GET_VARS['pID'])) ? 'update_product' 'insert_product';

        echo 
    tep_draw_form($form_actionFILENAME_CATEGORIES'cPath=' $cPath . (isset($HTTP_GET_VARS['pID']) ? '&pID=' $HTTP_GET_VARS['pID'] : '') . '&action=' $form_action'post''enctype="multipart/form-data"');

        
    $languages tep_get_languages();
        for (
    $i=0$n=sizeof($languages); $i<$n$i++) {
          if (isset(
    $HTTP_GET_VARS['read']) && ($HTTP_GET_VARS['read'] == 'only')) {
            
    $pInfo->products_name tep_get_products_name($pInfo->products_id$languages[$i]['id']);
            
    $pInfo->products_description tep_get_products_description($pInfo->products_id$languages[$i]['id']);
            
    $pInfo->products_url tep_get_products_url($pInfo->products_id$languages[$i]['id']);
          } else {
            
    $pInfo->products_name tep_db_prepare_input($products_name[$languages[$i]['id']]);
            
    $pInfo->products_description tep_db_prepare_input($products_description[$languages[$i]['id']]);
            
    $pInfo->products_url tep_db_prepare_input($products_url[$languages[$i]['id']]);
          }
    ?>
        <table border="0" width="100%" cellspacing="0" cellpadding="2">
          <tr>
            <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
              <tr>
                <td class="pageHeading"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES $languages[$i]['directory'] . '/images/' $languages[$i]['image'], $languages[$i]['name']) . '&nbsp;' $pInfo->products_name?></td>
                <td class="pageHeading" align="right"><?php echo $currencies->format($pInfo->products_price); ?></td>
              </tr>
            </table></td>
          </tr>
          <tr>
            <td><?php echo tep_draw_separator('pixel_trans.gif''1''10'); ?></td>
          </tr>
          <tr>
            <td class="main"><?php echo tep_image(DIR_WS_CATALOG_IMAGES $products_image_name$pInfo->products_nameSMALL_IMAGE_WIDTHSMALL_IMAGE_HEIGHT'align="right" hspace="5" vspace="5"') . $pInfo->products_description?></td>
          </tr>
    <?php
          
    if ($pInfo->products_url) {
    ?>
          <tr>
            <td><?php echo tep_draw_separator('pixel_trans.gif''1''10'); ?></td>
          </tr>
          <tr>
            <td class="main"><?php echo sprintf(TEXT_PRODUCT_MORE_INFORMATION$pInfo->products_url); ?></td>
          </tr>
    <?php
          
    }
    ?>
          <tr>
            <td><?php echo tep_draw_separator('pixel_trans.gif''1''10'); ?></td>
          </tr>
    <?php
          
    if ($pInfo->products_date_available date('Y-m-d')) {
    ?>
          <tr>
            <td align="center" class="smallText"><?php echo sprintf(TEXT_PRODUCT_DATE_AVAILABLEtep_date_long($pInfo->products_date_available)); ?></td>
          </tr>
    <?php
          
    } else {
    ?>
          <tr>
            <td align="center" class="smallText"><?php echo sprintf(TEXT_PRODUCT_DATE_ADDEDtep_date_long($pInfo->products_date_added)); ?></td>
          </tr>
    <?php
          
    }
    ?>
          <tr>
            <td><?php echo tep_draw_separator('pixel_trans.gif''1''10'); ?></td>
          </tr>
    <?php
        
    }

        if (isset(
    $HTTP_GET_VARS['read']) && ($HTTP_GET_VARS['read'] == 'only')) {
          if (isset(
    $HTTP_GET_VARS['origin'])) {
            
    $pos_params strpos($HTTP_GET_VARS['origin'], '?'0);
            if (
    $pos_params != false) {
              
    $back_url substr($HTTP_GET_VARS['origin'], 0$pos_params);
              
    $back_url_params substr($HTTP_GET_VARS['origin'], $pos_params 1);
            } else {
              
    $back_url $HTTP_GET_VARS['origin'];
              
    $back_url_params '';
            }
          } else {
            
    $back_url FILENAME_CATEGORIES;
            
    $back_url_params 'cPath=' $cPath '&pID=' $pInfo->products_id;
          }
    ?>
          <tr>
            <td align="right"><?php echo '<a href="' tep_href_link($back_url$back_url_params'NONSSL') . '">' tep_image_button('button_back.gif'IMAGE_BACK) . '</a>'?></td>
          </tr>
    <?php
        
    } else {
    ?>
          <tr>
            <td align="right" class="smallText">
    <?php
    /* Re-Post all POST'ed variables */
          
    reset($HTTP_POST_VARS);
          while (list(
    $key$value) = each($HTTP_POST_VARS)) {
    // BOF: MOD - Separate Pricing Per Customer
    //        if (!is_array($HTTP_POST_VARS[$key])) {
              
    if (is_array($value)) {
                while (list(
    $k$v) = each($value)) {
                  echo 
    tep_draw_hidden_field($key '[' $k ']'htmlspecialchars(stripslashes($v)));
                }
              } else {
    // EOF: MOD - Separate Pricing Per Customer

              
    echo tep_draw_hidden_field($keyhtmlspecialchars(stripslashes($value)));
            }
           }
          
    $languages tep_get_languages();
          for (
    $i=0$n=sizeof($languages); $i<$n$i++) {
            echo 
    tep_draw_hidden_field('products_name[' $languages[$i]['id'] . ']'htmlspecialchars(stripslashes($products_name[$languages[$i]['id']])));
            echo 
    tep_draw_hidden_field('products_description[' $languages[$i]['id'] . ']'htmlspecialchars(stripslashes($products_description[$languages[$i]['id']])));
            echo 
    tep_draw_hidden_field('products_url[' $languages[$i]['id'] . ']'htmlspecialchars(stripslashes($products_url[$languages[$i]['id']])));
          }
          echo 
    tep_draw_hidden_field('products_image'stripslashes($products_image_name));

          echo 
    tep_image_submit('button_back.gif'IMAGE_BACK'name="edit"') . '&nbsp;&nbsp;';

          if (isset(
    $HTTP_GET_VARS['pID'])) {
            echo 
    tep_image_submit('button_update.gif'IMAGE_UPDATE);
          } else {
            echo 
    tep_image_submit('button_insert.gif'IMAGE_INSERT);
          }
          echo 
    '&nbsp;&nbsp;<a href="' tep_href_link(FILENAME_CATEGORIES'cPath=' $cPath . (isset($HTTP_GET_VARS['pID']) ? '&pID=' $HTTP_GET_VARS['pID'] : '')) . '">' tep_image_button('button_cancel.gif'IMAGE_CANCEL) . '</a>';
    ?></td>
          </tr>
        </table></form>
    <?php
        
    }
      } else {
    ?>
        <table border="0" width="100%" cellspacing="0" cellpadding="2">
          <tr>
            <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
              <tr>
                <td class="pageHeading"><?php echo HEADING_TITLE?></td>
                <td class="pageHeading" align="right"><?php echo tep_draw_separator('pixel_trans.gif'1HEADING_IMAGE_HEIGHT); ?></td>
                <td align="right"><table border="0" width="100%" cellspacing="0" cellpadding="0">
                  <tr>
                    <td class="smallText" align="right">
    <?php
        
    echo tep_draw_form('search'FILENAME_CATEGORIES'''get');
        echo 
    HEADING_TITLE_SEARCH ' ' tep_draw_input_field('search');
        echo 
    '</form>';
    ?>
                    </td>
                  </tr>
                  <tr>
                    <td class="smallText" align="right">
    <?php
        
    echo tep_draw_form('goto'FILENAME_CATEGORIES'''get');
        echo 
    HEADING_TITLE_GOTO ' ' tep_draw_pull_down_menu('cPath'tep_get_category_tree(), $current_category_id'onChange="this.form.submit();"');
        echo 
    '</form>';
    ?>
                    </td>
                  </tr>
                </table></td>
              </tr>
            </table></td>
          </tr>
          <tr>
            <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
              <tr>
                <td valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
                  <tr class="dataTableHeadingRow">
                    <td class="dataTableHeadingContent"><?php echo TABLE_HEADING_CATEGORIES_PRODUCTS?></td>
                    <td class="dataTableHeadingContent" align="center"><?php echo TABLE_HEADING_STATUS?></td>
                    <td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_ACTION?>&nbsp;</td>
                  </tr>
    <?php
        $categories_count 
    0;
        
    $rows 0;
        if (isset(
    $HTTP_GET_VARS['search'])) {
          
    $search tep_db_prepare_input($HTTP_GET_VARS['search']);

          
    $categories_query tep_db_query("select c.categories_id, cd.categories_name, c.categories_image, c.parent_id, c.sort_order, c.date_added, c.last_modified from " TABLE_CATEGORIES " c, " TABLE_CATEGORIES_DESCRIPTION " cd where c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id "' and cd.categories_name like '%" tep_db_input($search) . "%' order by c.sort_order, cd.categories_name");
        } else {
          
    $categories_query tep_db_query("select c.categories_id, cd.categories_name, c.categories_image, c.parent_id, c.sort_order, c.date_added, c.last_modified from " TABLE_CATEGORIES " c, " TABLE_CATEGORIES_DESCRIPTION " cd where c.parent_id = '" . (int)$current_category_id "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id "' order by c.sort_order, cd.categories_name");
        }
        while (
    $categories tep_db_fetch_array($categories_query)) {
          
    $categories_count++;
          
    $rows++;

    // Get parent_id for subcategories if search
          
    if (isset($HTTP_GET_VARS['search'])) $cPath$categories['parent_id'];

          if ((!isset(
    $HTTP_GET_VARS['cID']) && !isset($HTTP_GET_VARS['pID']) || (isset($HTTP_GET_VARS['cID']) && ($HTTP_GET_VARS['cID'] == $categories['categories_id']))) && !isset($cInfo) && (substr($action03) != 'new')) {
            
    $category_childs = array('childs_count' => tep_childs_in_category_count($categories['categories_id']));
            
    $category_products = array('products_count' => tep_products_in_category_count($categories['categories_id']));

            
    $cInfo_array array_merge($categories$category_childs$category_products);
            
    $cInfo = new objectInfo($cInfo_array);
          }

          if (isset(
    $cInfo) && is_object($cInfo) && ($categories['categories_id'] == $cInfo->categories_id) ) {
            echo 
    '              <tr id="defaultSelected" class="dataTableRowSelected" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href='' . tep_href_link(FILENAME_CATEGORIES, tep_get_path($categories['categories_id'])) . ''">' "n";
          } else {
            echo 
    '              <tr class="dataTableRow" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href='' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&cID=' . $categories['categories_id']) . ''">' "n";
          }
    ?>
                    <td class="dataTableContent"><?php echo '<a href="' tep_href_link(FILENAME_CATEGORIEStep_get_path($categories['categories_id'])) . '">' tep_image(DIR_WS_ICONS 'folder.gif'ICON_FOLDER) . '</a>&nbsp;<b>' $categories['categories_name'] . '</b>'?></td>
                    <td class="dataTableContent" align="center">&nbsp;</td>
                    <td class="dataTableContent" align="right"><?php if (isset($cInfo) && is_object($cInfo) && ($categories['categories_id'] == $cInfo->categories_id) ) { echo tep_image(DIR_WS_IMAGES 'icon_arrow_right.gif'''); } else { echo '<a href="' tep_href_link(FILENAME_CATEGORIES'cPath=' $cPath '&cID=' $categories['categories_id']) . '">' tep_image(DIR_WS_IMAGES 'icon_info.gif'IMAGE_ICON_INFO) . '</a>'; } ?>&nbsp;</td>
                  </tr>
    <?php
        
    }

        
    $products_count 0;
        if (isset(
    $HTTP_GET_VARS['search'])) {
    // LINE CHANGED: Added p.products_shipped_price
         
    $products_query tep_db_query("select p.products_id, pd.products_name, p.products_quantity, p.products_image, p.products_price, p.products_date_added, p.products_last_modified, p.products_date_available, p.products_status, p2c.categories_id from " TABLE_PRODUCTS " p, " TABLE_PRODUCTS_DESCRIPTION " pd, " TABLE_PRODUCTS_TO_CATEGORIES " p2c where p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id "' and p.products_id = p2c.products_id and (pd.products_name like '%" tep_db_input($search) . "%' or p.products_model like '%" tep_db_input($search) . "%') order by pd.products_name");
        } else {
    // LINE CHANGED: Added p.products_shipped_price   
         
    $products_query tep_db_query("select p.products_id, pd.products_name, p.products_quantity, p.products_image, p.products_price, p.products_date_added, p.products_last_modified, p.products_date_available, p.products_status from " TABLE_PRODUCTS " p, " TABLE_PRODUCTS_DESCRIPTION " pd, " TABLE_PRODUCTS_TO_CATEGORIES " p2c where p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id "' and p.products_id = p2c.products_id and p2c.categories_id = '" . (int)$current_category_id "' order by pd.products_name");
        }
        while (
    $products tep_db_fetch_array($products_query)) {
          
    $products_count++;
          
    $rows++;

    // Get categories_id for product if search
          
    if (isset($HTTP_GET_VARS['search'])) $cPath $products['categories_id'];

          if ( (!isset(
    $HTTP_GET_VARS['pID']) && !isset($HTTP_GET_VARS['cID']) || (isset($HTTP_GET_VARS['pID']) && ($HTTP_GET_VARS['pID'] == $products['products_id']))) && !isset($pInfo) && !isset($cInfo) && (substr($action03) != 'new')) {
    // find out the rating average from customer reviews
            
    $reviews_query tep_db_query("select (avg(reviews_rating) / 5 * 100) as average_rating from " TABLE_REVIEWS " where products_id = '" . (int)$products['products_id'] . "'");
            
    $reviews tep_db_fetch_array($reviews_query);
            
    $pInfo_array array_merge($products$reviews);
            
    $pInfo = new objectInfo($pInfo_array);
          }

          if (isset(
    $pInfo) && is_object($pInfo) && ($products['products_id'] == $pInfo->products_id) ) {
            echo 
    '              <tr id="defaultSelected" class="dataTableRowSelected" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href='' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $products['products_id'] . '&action=new_product_preview&read=only') . ''">' "n";
          } else {
            echo 
    '              <tr class="dataTableRow" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href='' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $products['products_id']) . ''">' "n";
          }
    ?>
                    <td class="dataTableContent"><?php echo '<a href="' tep_href_link(FILENAME_CATEGORIES'cPath=' $cPath '&pID=' $products['products_id'] . '&action=new_product_preview&read=only') . '">' tep_image(DIR_WS_ICONS 'preview.gif'ICON_PREVIEW) . '</a>&nbsp;' $products['products_name']; ?></td>
                    <td class="dataTableContent" align="center">
    <?php
          
    if ($products['products_status'] == '1') {
            echo 
    tep_image(DIR_WS_IMAGES 'icon_status_green.gif'IMAGE_ICON_STATUS_GREEN1010) . '&nbsp;&nbsp;<a href="' tep_href_link(FILENAME_CATEGORIES'action=setflag&flag=0&pID=' $products['products_id'] . '&cPath=' $cPath) . '">' tep_image(DIR_WS_IMAGES 'icon_status_red_light.gif'IMAGE_ICON_STATUS_RED_LIGHT1010) . '</a>';
          } else {
            echo 
    '<a href="' tep_href_link(FILENAME_CATEGORIES'action=setflag&flag=1&pID=' $products['products_id'] . '&cPath=' $cPath) . '">' tep_image(DIR_WS_IMAGES 'icon_status_green_light.gif'IMAGE_ICON_STATUS_GREEN_LIGHT1010) . '</a>&nbsp;&nbsp;' tep_image(DIR_WS_IMAGES 'icon_status_red.gif'IMAGE_ICON_STATUS_RED1010);
          }
    ?></td>
                    <td class="dataTableContent" align="right"><?php if (isset($pInfo) && is_object($pInfo) && ($products['products_id'] == $pInfo->products_id)) { echo tep_image(DIR_WS_IMAGES 'icon_arrow_right.gif'''); } else { echo '<a href="' tep_href_link(FILENAME_CATEGORIES'cPath=' $cPath '&pID=' $products['products_id']) . '">' tep_image(DIR_WS_IMAGES 'icon_info.gif'IMAGE_ICON_INFO) . '</a>'; } ?>&nbsp;</td>
                  </tr>
    <?php
        
    }

        
    $cPath_back '';
        if (
    sizeof($cPath_array) > 0) {
          for (
    $i=0$n=sizeof($cPath_array)-1$i<$n$i++) {
            if (empty(
    $cPath_back)) {
              
    $cPath_back .= $cPath_array[$i];
            } else {
              
    $cPath_back .= '_' $cPath_array[$i];
            }
          }
        }

        
    $cPath_back = (tep_not_null($cPath_back)) ? 'cPath=' $cPath_back '&' '';
    ?>
                  <tr>
                    <td colspan="3"><table border="0" width="100%" cellspacing="0" cellpadding="2">
                      <tr>
                        <td class="smallText"><?php echo TEXT_CATEGORIES '&nbsp;' $categories_count '<br>' TEXT_PRODUCTS '&nbsp;' $products_count?></td>
                        <td align="right" class="smallText"><?php if (sizeof($cPath_array) > 0) echo '<a href="' tep_href_link(FILENAME_CATEGORIES$cPath_back 'cID=' $current_category_id) . '">' tep_image_button('button_back.gif'IMAGE_BACK) . '</a>&nbsp;'; if (!isset($HTTP_GET_VARS['search'])) echo '<a href="' tep_href_link(FILENAME_CATEGORIES'cPath=' $cPath '&action=new_category') . '">' tep_image_button('button_new_category.gif'IMAGE_NEW_CATEGORY) . '</a>&nbsp;<a href="' tep_href_link(FILENAME_CATEGORIES'cPath=' $cPath '&action=new_product') . '">' tep_image_button('button_new_product.gif'IMAGE_NEW_PRODUCT) . '</a>'?>&nbsp;</td>
                      </tr>
                    </table></td>
                  </tr>
                </table></td>
    <?php
        $heading 
    = array();
        
    $contents = array();
        switch (
    $action) {
          case 
    'new_category':
            
    $heading[] = array('text' => '<b>' TEXT_INFO_HEADING_NEW_CATEGORY '</b>');

            
    $contents = array('form' => tep_draw_form('newcategory'FILENAME_CATEGORIES'action=insert_category&cPath=' $cPath'post''enctype="multipart/form-data"'));
            
    $contents[] = array('text' => TEXT_NEW_CATEGORY_INTRO);

            
    $category_inputs_string '';
            
    $languages tep_get_languages();
            for (
    $i 0$n sizeof($languages); $i $n$i++) {
              
    $category_inputs_string .= '<br>' tep_image(DIR_WS_CATALOG_LANGUAGES $languages[$i]['directory'] . '/images/' $languages[$i]['image'], $languages[$i]['name']) . '&nbsp;' tep_draw_input_field('categories_name[' $languages[$i]['id'] . ']');
            }

            
    $contents[] = array('text' => '<br>' TEXT_CATEGORIES_NAME $category_inputs_string);
            
    $contents[] = array('text' => '<br>' TEXT_CATEGORIES_IMAGE '<br>' tep_draw_file_field('categories_image'));
            
    $contents[] = array('text' => '<br>' TEXT_SORT_ORDER '<br>' tep_draw_input_field('sort_order''''size="2"'));
            
    $contents[] = array('align' => 'center''text' => '<br>' tep_image_submit('button_save.gif'IMAGE_SAVE) . ' <a href="' tep_href_link(FILENAME_CATEGORIES'cPath=' $cPath) . '">' tep_image_button('button_cancel.gif'IMAGE_CANCEL) . '</a>');
            break;
          case 
    'edit_category':
            
    $heading[] = array('text' => '<b>' TEXT_INFO_HEADING_EDIT_CATEGORY '</b>');

            
    $contents = array('form' => tep_draw_form('categories'FILENAME_CATEGORIES'action=update_category&cPath=' $cPath'post''enctype="multipart/form-data"') . tep_draw_hidden_field('categories_id'$cInfo->categories_id));
            
    $contents[] = array('text' => TEXT_EDIT_INTRO);

            
    $category_inputs_string '';
            
    $languages tep_get_languages();
            for (
    $i 0$n sizeof($languages); $i $n$i++) {
              
    $category_inputs_string .= '<br>' tep_image(DIR_WS_CATALOG_LANGUAGES $languages[$i]['directory'] . '/images/' $languages[$i]['image'], $languages[$i]['name']) . '&nbsp;' tep_draw_input_field('categories_name[' $languages[$i]['id'] . ']'tep_get_category_name($cInfo->categories_id$languages[$i]['id']));
            }

            
    $contents[] = array('text' => '<br>' TEXT_EDIT_CATEGORIES_NAME $category_inputs_string);
            
    $contents[] = array('text' => '<br>' tep_image(DIR_WS_CATALOG_IMAGES $cInfo->categories_image$cInfo->categories_name) . '<br>' DIR_WS_CATALOG_IMAGES '<br><b>' $cInfo->categories_image '</b>');
            
    $contents[] = array('text' => '<br>' TEXT_EDIT_CATEGORIES_IMAGE '<br>' tep_draw_file_field('categories_image'));
            
    $contents[] = array('text' => '<br>' TEXT_EDIT_SORT_ORDER '<br>' tep_draw_input_field('sort_order'$cInfo->sort_order'size="2"'));
            
    $contents[] = array('align' => 'center''text' => '<br>' tep_image_submit('button_save.gif'IMAGE_SAVE) . ' <a href="' tep_href_link(FILENAME_CATEGORIES'cPath=' $cPath '&cID=' $cInfo->categories_id) . '">' tep_image_button('button_cancel.gif'IMAGE_CANCEL) . '</a>');
            break;
          case 
    'delete_category':
            
    $heading[] = array('text' => '<b>' TEXT_INFO_HEADING_DELETE_CATEGORY '</b>');

            
    $contents = array('form' => tep_draw_form('categories'FILENAME_CATEGORIES'action=delete_category_confirm&cPath=' $cPath) . tep_draw_hidden_field('categories_id'$cInfo->categories_id));
            
    $contents[] = array('text' => TEXT_DELETE_CATEGORY_INTRO);
            
    $contents[] = array('text' => '<br><b>' $cInfo->categories_name '</b>');
            if (
    $cInfo->childs_count 0$contents[] = array('text' => '<br>' sprintf(TEXT_DELETE_WARNING_CHILDS$cInfo->childs_count));
            if (
    $cInfo->products_count 0$contents[] = array('text' => '<br>' sprintf(TEXT_DELETE_WARNING_PRODUCTS$cInfo->products_count));
            
    $contents[] = array('align' => 'center''text' => '<br>' tep_image_submit('button_delete.gif'IMAGE_DELETE) . ' <a href="' tep_href_link(FILENAME_CATEGORIES'cPath=' $cPath '&cID=' $cInfo->categories_id) . '">' tep_image_button('button_cancel.gif'IMAGE_CANCEL) . '</a>');
            break;
          case 
    'move_category':
            
    $heading[] = array('text' => '<b>' TEXT_INFO_HEADING_MOVE_CATEGORY '</b>');

            
    $contents = array('form' => tep_draw_form('categories'FILENAME_CATEGORIES'action=move_category_confirm&cPath=' $cPath) . tep_draw_hidden_field('categories_id'$cInfo->categories_id));
            
    $contents[] = array('text' => sprintf(TEXT_MOVE_CATEGORIES_INTRO$cInfo->categories_name));
            
    $contents[] = array('text' => '<br>' sprintf(TEXT_MOVE$cInfo->categories_name) . '<br>' tep_draw_pull_down_menu('move_to_category_id'tep_get_category_tree(), $current_category_id));
            
    $contents[] = array('align' => 'center''text' => '<br>' tep_image_submit('button_move.gif'IMAGE_MOVE) . ' <a href="' tep_href_link(FILENAME_CATEGORIES'cPath=' $cPath '&cID=' $cInfo->categories_id) . '">' tep_image_button('button_cancel.gif'IMAGE_CANCEL) . '</a>');
            break;
          case 
    'delete_product':
            
    $heading[] = array('text' => '<b>' TEXT_INFO_HEADING_DELETE_PRODUCT '</b>');

            
    $contents = array('form' => tep_draw_form('products'FILENAME_CATEGORIES'action=delete_product_confirm&cPath=' $cPath) . tep_draw_hidden_field('products_id'$pInfo->products_id));
            
    $contents[] = array('text' => TEXT_DELETE_PRODUCT_INTRO);
            
    $contents[] = array('text' => '<br><b>' $pInfo->products_name '</b>');

            
    $product_categories_string '';
            
    $product_categories tep_generate_category_path($pInfo->products_id'product');
            for (
    $i 0$n sizeof($product_categories); $i $n$i++) {
              
    $category_path '';
              for (
    $j 0$k sizeof($product_categories[$i]); $j $k$j++) {
                
    $category_path .= $product_categories[$i][$j]['text'] . '&nbsp;&gt;&nbsp;';
              }
              
    $category_path substr($category_path0, -16);
              
    $product_categories_string .= tep_draw_checkbox_field('product_categories[]'$product_categories[$i][sizeof($product_categories[$i])-1]['id'], true) . '&nbsp;' $category_path '<br>';
            }
            
    $product_categories_string substr($product_categories_string0, -4);

            
    $contents[] = array('text' => '<br>' $product_categories_string);
            
    $contents[] = array('align' => 'center''text' => '<br>' tep_image_submit('button_delete.gif'IMAGE_DELETE) . ' <a href="' tep_href_link(FILENAME_CATEGORIES'cPath=' $cPath '&pID=' $pInfo->products_id) . '">' tep_image_button('button_cancel.gif'IMAGE_CANCEL) . '</a>');
            break;
          case 
    'move_product':
            
    $heading[] = array('text' => '<b>' TEXT_INFO_HEADING_MOVE_PRODUCT '</b>');

            
    $contents = array('form' => tep_draw_form('products'FILENAME_CATEGORIES'action=move_product_confirm&cPath=' $cPath) . tep_draw_hidden_field('products_id'$pInfo->products_id));
            
    $contents[] = array('text' => sprintf(TEXT_MOVE_PRODUCTS_INTRO$pInfo->products_name));
            
    $contents[] = array('text' => '<br>' TEXT_INFO_CURRENT_CATEGORIES '<br><b>' tep_output_generated_category_path($pInfo->products_id'product') . '</b>');
            
    $contents[] = array('text' => '<br>' sprintf(TEXT_MOVE$pInfo->products_name) . '<br>' tep_draw_pull_down_menu('move_to_category_id'tep_get_category_tree(), $current_category_id));
            
    $contents[] = array('align' => 'center''text' => '<br>' tep_image_submit('button_move.gif'IMAGE_MOVE) . ' <a href="' tep_href_link(FILENAME_CATEGORIES'cPath=' $cPath '&pID=' $pInfo->products_id) . '">' tep_image_button('button_cancel.gif'IMAGE_CANCEL) . '</a>');
            break;
          case 
    'copy_to':
            
    $heading[] = array('text' => '<b>' TEXT_INFO_HEADING_COPY_TO '</b>');

            
    $contents = array('form' => tep_draw_form('copy_to'FILENAME_CATEGORIES'action=copy_to_confirm&cPath=' $cPath) . tep_draw_hidden_field('products_id'$pInfo->products_id));
            
    $contents[] = array('text' => TEXT_INFO_COPY_TO_INTRO);
            
    $contents[] = array('text' => '<br>' TEXT_INFO_CURRENT_CATEGORIES '<br><b>' tep_output_generated_category_path($pInfo->products_id'product') . '</b>');
            
    $contents[] = array('text' => '<br>' TEXT_CATEGORIES '<br>' tep_draw_pull_down_menu('categories_id'tep_get_category_tree(), $current_category_id));
            
    $contents[] = array('text' => '<br>' TEXT_HOW_TO_COPY '<br>' tep_draw_radio_field('copy_as''link'true) . ' ' TEXT_COPY_AS_LINK '<br>' tep_draw_radio_field('copy_as''duplicate') . ' ' TEXT_COPY_AS_DUPLICATE);
            
    $contents[] = array('align' => 'center''text' => '<br>' tep_image_submit('button_copy.gif'IMAGE_COPY) . ' <a href="' tep_href_link(FILENAME_CATEGORIES'cPath=' $cPath '&pID=' $pInfo->products_id) . '">' tep_image_button('button_cancel.gif'IMAGE_CANCEL) . '</a>');
            break;
          default:
            if (
    $rows 0) {
              if (isset(
    $cInfo) && is_object($cInfo)) { // category info box contents
                
    $heading[] = array('text' => '<b>' $cInfo->categories_name '</b>');

                
    $contents[] = array('align' => 'center''text' => '<a href="' tep_href_link(FILENAME_CATEGORIES'cPath=' $cPath '&cID=' $cInfo->categories_id '&action=edit_category') . '">' tep_image_button('button_edit.gif'IMAGE_EDIT) . '</a> <a href="' tep_href_link(FILENAME_CATEGORIES'cPath=' $cPath '&cID=' $cInfo->categories_id '&action=delete_category') . '">' tep_image_button('button_delete.gif'IMAGE_DELETE) . '</a> <a href="' tep_href_link(FILENAME_CATEGORIES'cPath=' $cPath '&cID=' $cInfo->categories_id '&action=move_category') . '">' tep_image_button('button_move.gif'IMAGE_MOVE) . '</a>');
                
    $contents[] = array('text' => '<br>' TEXT_DATE_ADDED ' ' tep_date_short($cInfo->date_added));
                if (
    tep_not_null($cInfo->last_modified)) $contents[] = array('text' => TEXT_LAST_MODIFIED ' ' tep_date_short($cInfo->last_modified));
                
    $contents[] = array('text' => '<br>' tep_info_image($cInfo->categories_image$cInfo->categories_nameHEADING_IMAGE_WIDTHHEADING_IMAGE_HEIGHT) . '<br>' $cInfo->categories_image);
                
    $contents[] = array('text' => '<br>' TEXT_SUBCATEGORIES ' ' $cInfo->childs_count '<br>' TEXT_PRODUCTS ' ' $cInfo->products_count);
              } elseif (isset(
    $pInfo) && is_object($pInfo)) { // product info box contents
                
    $heading[] = array('text' => '<b>' tep_get_products_name($pInfo->products_id$languages_id) . '</b>');

    // LINE CHANGED: MOD - QT Pro
    //          $contents[] = array('align' => 'center', 'text' => '<a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $pInfo->products_id . '&action=new_product') . '">' . tep_image_button('button_edit.gif', IMAGE_EDIT) . '</a> <a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $pInfo->products_id . '&action=delete_product') . '">' . tep_image_button('button_delete.gif', IMAGE_DELETE) . '</a> <a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $pInfo->products_id . '&action=move_product') . '">' . tep_image_button('button_move.gif', IMAGE_MOVE) . '</a> <a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $pInfo->products_id . '&action=copy_to') . '">' . tep_image_button('button_copy_to.gif', IMAGE_COPY_TO) . '</a>');
                
    $contents[] = array('align' => 'center''text' => '<a href="' tep_href_link(FILENAME_CATEGORIES'cPath=' $cPath '&pID=' $pInfo->products_id '&action=new_product') . '">' tep_image_button('button_edit.gif'IMAGE_EDIT) . '</a> <a href="' tep_href_link(FILENAME_CATEGORIES'cPath=' $cPath '&pID=' $pInfo->products_id '&action=delete_product') . '">' tep_image_button('button_delete.gif'IMAGE_DELETE) . '</a> <a href="' tep_href_link(FILENAME_CATEGORIES'cPath=' $cPath '&pID=' $pInfo->products_id '&action=move_product') . '">' tep_image_button('button_move.gif'IMAGE_MOVE) . '</a> <a href="' tep_href_link(FILENAME_CATEGORIES'cPath=' $cPath '&pID=' $pInfo->products_id '&action=copy_to') . '">' tep_image_button('button_copy_to.gif'IMAGE_COPY_TO) . '</a><a href="' tep_href_link("stock.php"'product_id=' $pInfo->products_id) . '">' tep_image_button('button_stock.gif'"Stock") . '</a>');
                
    $contents[] = array('text' => '<br>' TEXT_DATE_ADDED ' ' tep_date_short($pInfo->products_date_added));
                if (
    tep_not_null($pInfo->products_last_modified)) $contents[] = array('text' => TEXT_LAST_MODIFIED ' ' tep_date_short($pInfo->products_last_modified));
                if (
    date('Y-m-d') < $pInfo->products_date_available$contents[] = array('text' => TEXT_DATE_AVAILABLE ' ' tep_date_short($pInfo->products_date_available));
                
    $contents[] = array('text' => '<br>' tep_info_image($pInfo->products_image$pInfo->products_nameSMALL_IMAGE_WIDTHSMALL_IMAGE_HEIGHT) . '<br>' $pInfo->products_image);
                
    $contents[] = array('text' => '<br>' TEXT_PRODUCTS_PRICE_INFO ' ' $currencies->format($pInfo->products_price) . '<br>' TEXT_PRODUCTS_QUANTITY_INFO ' ' $pInfo->products_quantity);
                
    $contents[] = array('text' => '<br>' TEXT_PRODUCTS_AVERAGE_RATING ' ' number_format($pInfo->average_rating2) . '%');
              }
            } else { 
    // create category/product info
              
    $heading[] = array('text' => '<b>' EMPTY_CATEGORY '</b>');

              
    $contents[] = array('text' => TEXT_NO_CHILD_CATEGORIES_OR_PRODUCTS);
            }
            break;
        }

        if ( (
    tep_not_null($heading)) && (tep_not_null($contents)) ) {
          echo 
    '            <td width="25%" valign="top">' "n";

          
    $box = new box;
          echo 
    $box->infoBox($heading$contents);

          echo 
    '            </td>' "n";
        }
    ?>
              </tr>
            </table></td>
          </tr>
        </table>
    <?php
      
    }
    ?>
        </td>
    <!-- body_text_eof //-->
      </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');
    ?>
    Thank you very much.

  2. #12
    osCMax Development Team

    New Products Project

    pgmarshall's Avatar
    Join Date
    Feb 2009
    Location
    London
    Posts
    3,517
    Contribute If you enjoy reading the
    content here, click the below
    image to support our site.
    Click Here To Contribute To Our Site

    Total Contributions For

    pgmarshall     $ 35.00
    Rep Power
    77


    Default Re: New Products Project

    Chitman - which version of OSCMAX are you running?

    Regards,
    pgmarshall
    _______________________________

  3. #13
    osCMax Development Team

    New Products Project

    pgmarshall's Avatar
    Join Date
    Feb 2009
    Location
    London
    Posts
    3,517
    Contribute If you enjoy reading the
    content here, click the below
    image to support our site.
    Click Here To Contribute To Our Site

    Total Contributions For

    pgmarshall     $ 35.00
    Rep Power
    77


    Smile Re: New Products Project

    ptt81,

    I used the images from Mouserunner.com here

    In the header.php file catalog/admin/includes/ - I have just changed the links and added some images ... code below:

    Code:
    <?php
    /*
    $Id: header.php 3 2006-05-27 04:59:07Z user $
      osCMax Power E-Commerce
      osCommerce Documentation by OSCdox :: osCommerce and osCMax documentation
      Copyright 2006 osCMax2005 osCMax, 2002 osCommerce
      Released under the GNU General Public License
    */
      if ($messageStack->size > 0) {
        echo $messageStack->output();
      }
    ?>
    <table border="0" width="100%" cellspacing="0" cellpadding="0">
      <tr>
        <td><?php echo ' &nbsp;&nbsp;&nbsp;
     <a href="' . tep_href_link(FILENAME_DEFAULT, '', 'NONSSL') . '">' . tep_image(DIR_WS_IMAGES . 'dashboard.png', 'Admin Home') . '</a>&nbsp;
     &nbsp;&nbsp;<a href="https://www.google.com/analytics/reporting/" target="_blank">' . tep_image(DIR_WS_IMAGES . 'webtools.png', 'Google Analytics') . '</a>&nbsp;
     &nbsp;&nbsp;<a href="https://www.google.com/webmasters/tools/dashboard" target="_blank">' . tep_image(DIR_WS_IMAGES . 'analytics.png', 'Google WebTools') . '</a>&nbsp;
     &nbsp;<a href="' . tep_catalog_href_link('admin/admin_account.php') . '">' . tep_image(DIR_WS_IMAGES . 'myaccount.png', 'My Account') . '</a>&nbsp;
     <a href="' . tep_catalog_href_link('admin/logoff.php') . '">' . tep_image(DIR_WS_IMAGES . 'logoff.png', 'Log Off') . '</a>';
     ?></td>
        <td align="right"><?php echo '
     
     <a href="' . tep_catalog_href_link('admin/categories.php') . '">' . tep_image(DIR_WS_IMAGES . 'categories.png', 'Edit Catalog') . '</a>&nbsp;
     <a href="' . tep_catalog_href_link('admin/xsell.php') . '">' . tep_image(DIR_WS_IMAGES . 'xsell.png', 'X Sell Products') . '</a>&nbsp;
     <a href="' . tep_catalog_href_link('admin/backup.php') . '">' . tep_image(DIR_WS_IMAGES . 'backup.png', 'Backup') . '</a>&nbsp;
     <a href="' . tep_catalog_href_link('admin/orders.php') . '">' . tep_image(DIR_WS_IMAGES . 'orders.png', 'Orders') . '</a>&nbsp;&nbsp;
     <a href="' . tep_catalog_href_link('admin/customers.php') . '">' . tep_image(DIR_WS_IMAGES . 'customers.png', 'Customers') . '</a>&nbsp;&nbsp;&nbsp;
     <a href="' . tep_catalog_href_link('admin/newsletters.php') . '">' . tep_image(DIR_WS_IMAGES . 'newsletters.png', 'Newsletters') . '</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
     <a href="' . tep_catalog_href_link() . '">' . tep_image(DIR_WS_IMAGES . 'catalog.png', HEADER_TITLE_ONLINE_CATALOG) . '</a>&nbsp;&nbsp;&nbsp;&nbsp;';
     
      ?>&nbsp;</td>
      </tr>
      <tr class="headerBar">
    <?php /* BOF: MOD - Admin Security */ ?>
    <?php /* old- <td class="headerBarContent">&nbsp;&nbsp;<?php echo '<a href="' . tep_href_link(FILENAME_DEFAULT, '', 'NONSSL') . '" class="headerLink">' . HEADER_TITLE_TOP . '</a>'; ?></td> */ ?>
    <?php /* old- <td class="headerBarContent" align="right"><?php echo '<a href="osCMax - osCommerce Maximized" class="headerLink">' . HEADER_TITLE_SUPPORT_SITE . '</a> &nbsp;|&nbsp; <a href="' . tep_catalog_href_link() . '" class="headerLink">' . HEADER_TITLE_ONLINE_CATALOG . '</a> &nbsp;|&nbsp; <a href="' . tep_href_link(FILENAME_DEFAULT, '', 'NONSSL') . '" class="headerLink">' . HEADER_TITLE_ADMINISTRATION . '</a>'; ?>&nbsp;&nbsp;</td> */ ?>
        <td class="headerBarContent">&nbsp;&nbsp;<?php echo '
     <a href="' . tep_href_link(FILENAME_DEFAULT, '', 'NONSSL') . '">'; ?> Dashboard</a> | <a href="https://www.google.com/analytics/reporting/" target="_blank">Analytics</a> | <a href="https://www.google.com/webmasters/tools/dashboard" target="_blank">Webtools</a> |
    <?php
      if (tep_session_is_registered('login_id')) {
        echo '<a href="' . tep_href_link(FILENAME_ADMIN_ACCOUNT, '', 'SSL') . '" class="headerLink">Password</a> | <a href="' . tep_href_link(FILENAME_LOGOFF, '', 'NONSSL') . '" class="headerLink">' . HEADER_TITLE_LOGOFF . '</a>';
      } else {
        echo '<a href="' . tep_href_link(FILENAME_DEFAULT, '', 'NONSSL') . '" class="headerLink">' . HEADER_TITLE_TOP . '</a>';
      }
        ?></td>
        <td class="headerBarContent" align="right"><?php echo 'Catalog | Cross Sell | Backup | Orders | Customers | Newletters | Go to Catalog'; ?>&nbsp;&nbsp;</td>
    <?php /* EOF: MOD - Admin Security */ ?>
      </tr>
    </table>
    Sorry it is a bit messy - I haven't finished it yet!

    I have editted the index.php in catalog/admin/ to the following

    Code:
    <?php
    /*
    $Id: stats_products_viewed.php 3 2006-05-27 04:59:07Z user $
      osCMax Power E-Commerce
      osCommerce Documentation by OSCdox :: osCommerce and osCMax documentation
      Copyright 2006 osCMax
      Released under the GNU General Public License
    */
      require('includes/application_top.php');
    ?>
    <!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>
    <link rel="stylesheet" type="text/css" href="includes/stylesheet.css">
    <script language="javascript" src="includes/general.js"></script>
    </head>
    <body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" bgcolor="#FFFFFF">
    <!-- header //-->
    <?php require(DIR_WS_INCLUDES . 'header.php'); ?>
    <!-- header_eof //-->
    <!-- body //-->
    <table border="0" width="100%" cellspacing="2" cellpadding="2">
      <tr>
        <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="1" cellpadding="1" class="columnLeft">
    <!-- left_navigation //-->
    <?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
    <!-- left_navigation_eof //-->
        </table></td>
    <!-- body_text //-->
        <td width="100%" valign="top">
     
    <!-- START OF CONTENT FRAME TABLE -->
        <table width="100%" border="0" cellpadding="0" align="left">
      <tr align="right">
     
      <td colspan="2">
      <?php
      if (getenv('HTTPS') == 'on') {
           echo tep_image(DIR_WS_ICONS . 'locked.gif', ICON_LOCKED, '', '', 'align="right"');
      } else {
           echo tep_image(DIR_WS_ICONS . 'unlocked.gif', ICON_UNLOCKED, '', '', 'align="right"');
      }
      ?>
      </td>
      </tr>
      <tr>
        <td class="pageHeading" width="50%">Order Snapshot</td>
        <td class="pageHeading" width="50%">Database Snapshot</td>
      </tr>
      <tr>
      <td>
      <table border="0" width="500" cellspacing="0" cellpadding="2" align="center">
      <tr class="dataTableHeadingRow">
          <td class="dataTableHeadingContent">Order Status</td>
          <td class="dataTableHeadingContent" align="center">Qty</td>
      <tr>        
      <?php
    $orders_contents = '';
      $orders_status_query = tep_db_query("select orders_status_name, orders_status_id from " . TABLE_ORDERS_STATUS . " where language_id = '" . $languages_id . "'");
      while ($orders_status = tep_db_fetch_array($orders_status_query)) {
        $orders_pending_query = tep_db_query("select count(*) as count from " . TABLE_ORDERS . " where orders_status = '" . $orders_status['orders_status_id'] . "'");
        $orders_pending = tep_db_fetch_array($orders_pending_query);
    if (tep_admin_check_boxes(FILENAME_ORDERS, 'sub_boxes') == true) {
          $orders_contents .= '<tr class="dataTableRow" onMouseOver="rowOverEffect(this)" onMouseOut="rowOutEffect(this)" ><td class="dataTableContent"><a href="' . tep_href_link(FILENAME_ORDERS, 'selected_box=customers&status=' . $orders_status['orders_status_id']) . '">' . $orders_status['orders_status_name'] . '</a>:</td><td class="dataTableContent" align="center"> ' . $orders_pending['count'] . '</td></tr>';
        } else {
          $orders_contents .= '' . $orders_status['orders_status_name'] . ': ' . $orders_pending['count'] . '<br>';
        }
    // EOF: MOD - Admin w/access levels
      }
     
      $contents = array();
    echo $orders_contents;
      ?>
      </table>
     
      </td>
      <td valign="top">
      <table border="0" width="500" cellspacing="0" cellpadding="2" align="center">
        <tr class="dataTableHeadingRow">
          <td class="dataTableHeadingContent"></td>
          <td class="dataTableHeadingContent" align="center">Qty</td>
      <?php
      $customers_query = tep_db_query("select count(*) as count from " . TABLE_CUSTOMERS);
      $customers = tep_db_fetch_array($customers_query);
      $products_query = tep_db_query("select count(*) as count from " . TABLE_PRODUCTS . " where products_status = '1'");
      $products = tep_db_fetch_array($products_query);
      $specials_query = tep_db_query("select count(*) as count from " . TABLE_SPECIALS);
      $specials = tep_db_fetch_array($specials_query);
     
     
     
      echo '<tr class="dataTableRow" onMouseOver="rowOverEffect(this)" onMouseOut="rowOutEffect(this)" ><td class="dataTableContent">Number of customers:</td><td class="dataTableContent" align="center"> ' . $customers['count'] . '</td></tr>';
      echo '<tr class="dataTableRow" onMouseOver="rowOverEffect(this)" onMouseOut="rowOutEffect(this)" ><td class="dataTableContent">Number of products:</td><td class="dataTableContent" align="center"> ' . $products['count'] . '</td></tr>';
      echo '<tr class="dataTableRow" onMouseOver="rowOverEffect(this)" onMouseOut="rowOutEffect(this)" ><td class="dataTableContent"><a href="specials.php">Special Offers:</a></td><td class="dataTableContent" align="center"> ' . $specials['count'] . '</td></tr>';
      ?>
      </table>
      </td>
      </tr>
     
     
      <tr>
        <td class="pageHeading" width="50%">Products Viewed</td>
        <td class="pageHeading" width="50%">Products Purchased</td>
      </tr>
      <tr>
        <td>
        <!-- START OF PRODUCTS VIEWED -->
                <table border="0" width="500" cellspacing="0" cellpadding="0" align="center">
                      <tr>
                        <td valign="top">
                        <table border="0" width="100%" cellspacing="0" cellpadding="2">
                          <tr class="dataTableHeadingRow">
                            <td class="dataTableHeadingContent">Rank</td>
                            <td class="dataTableHeadingContent">Product</td>
                            <td class="dataTableHeadingContent" align="center">Views</td>
                          </tr>
            <?php
              if (isset($HTTP_GET_VARS['page']) && ($HTTP_GET_VARS['page'] > 1)) $rows = $HTTP_GET_VARS['page'] * MAX_DISPLAY_SEARCH_RESULTS - MAX_DISPLAY_SEARCH_RESULTS;
              $rows = 0;
              $products_query_raw = "select p.products_id, pd.products_name, pd.products_viewed from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_id = pd.products_id order by pd.products_viewed DESC LIMIT 10";
              $products_query = tep_db_query($products_query_raw);
              while ($products = tep_db_fetch_array($products_query)) {
                $rows++;
     
                if (strlen($rows) < 2) {
                  $rows = '0' . $rows;
                }
            ?>
                          <tr class="dataTableRow" onMouseOver="rowOverEffect(this)" onMouseOut="rowOutEffect(this)" onClick="document.location.href='<?php echo tep_href_link(FILENAME_CATEGORIES, 'action=new_product_preview&read=only&pID=' . $products['products_id'] . '&origin=' . FILENAME_STATS_PRODUCTS_VIEWED . '?page=' . $HTTP_GET_VARS['page'], 'NONSSL'); ?>'">
                            <td class="dataTableContent"><?php echo $rows; ?>.</td>
                            <td class="dataTableContent"><?php echo '<a href="' . tep_href_link(FILENAME_CATEGORIES, 'action=new_product_preview&read=only&pID=' . $products['products_id'] . '&origin=' . FILENAME_STATS_PRODUCTS_VIEWED . '?page=' . $HTTP_GET_VARS['page'], 'NONSSL') . '">' . $products['products_name'] . '</a> ' . $products['name'] . ''; ?></td>
                            <td class="dataTableContent" align="center"><?php echo $products['products_viewed']; ?>&nbsp;</td>
                          </tr>
            <?php
              }
            ?>
               </table>
                 </td>
                 </tr>
                 </table>
        <!-- END OF PRODUCTS VIEWED -->
        </td>
        <td>
        <!-- START OF PRODUCTS PURCHASED -->
     
        <table border="0" width="500" cellspacing="0" cellpadding="0" align="center">
              <tr>
                <td valign="top">
                <table border="0" width="100%" cellspacing="0" cellpadding="2">
                  <tr class="dataTableHeadingRow">
                    <td class="dataTableHeadingContent">Rank</td>
                    <td class="dataTableHeadingContent">Products</td>
                    <td class="dataTableHeadingContent" align="center">Purchased</td>
                  </tr>
       <?php
                  if (isset($HTTP_GET_VARS['page']) && ($HTTP_GET_VARS['page'] > 1)) $rows = $HTTP_GET_VARS['page'] * MAX_DISPLAY_SEARCH_RESULTS - MAX_DISPLAY_SEARCH_RESULTS;
                  $products_query_raw = "select p.products_id, p.products_ordered, pd.products_name from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where pd.products_id = p.products_id and pd.language_id = '" . $languages_id. "' and p.products_ordered > 0 group by pd.products_id order by p.products_ordered DESC, pd.products_name LIMIT 10";
     
                  $rows = 0;
                  $products_query = tep_db_query($products_query_raw);
                  while ($products = tep_db_fetch_array($products_query)) {
                    $rows++;
     
                    if (strlen($rows) < 2) {
                      $rows = '0' . $rows;
                    }
                ?>
                              <tr class="dataTableRow" onMouseOver="rowOverEffect(this)" onMouseOut="rowOutEffect(this)" onClick="document.location.href='<?php echo tep_href_link(FILENAME_CATEGORIES, 'action=new_product_preview&read=only&pID=' . $products['products_id'] . '&origin=' . FILENAME_STATS_PRODUCTS_PURCHASED . '?page=' . $HTTP_GET_VARS['page'], 'NONSSL'); ?>'">
                                <td class="dataTableContent"><?php echo $rows; ?>.</td>
                                <td class="dataTableContent"><?php echo '<a href="' . tep_href_link(FILENAME_CATEGORIES, 'action=new_product_preview&read=only&pID=' . $products['products_id'] . '&origin=' . FILENAME_STATS_PRODUCTS_PURCHASED . '?page=' . $HTTP_GET_VARS['page'], 'NONSSL') . '">' . $products['products_name'] . '</a>'; ?></td>
                                <td class="dataTableContent" align="center"><?php echo $products['products_ordered']; ?>&nbsp;</td>
                              </tr>
                <?php
                  }
                ?>
          </table>
        </td></tr></table>
        <!-- END OF PRODUCTS PURCHASED -->
        </td>
      </tr>
      </tr>
     <tr>
        <td class="pageHeading" width="50%">Sales Summary</td>
        <td class="pageHeading" width="50%"></td>
      </tr>
    <!-- BOF: Admin Dashboard Stats //-->
          <tr>
         <td><table border="0" width="500" cellspacing="0" cellpadding="2" align="center">
        <tr>
                <td><?php include('includes/modules/dashboard.php'); ?></td>
        </tr>
      </table></td>
          </tr>
    <!-- EOF: Admin Dashboard Stats //-->
     
          </table>
        </td>
      </tr>
    </table>
    <!-- footer //-->
    <?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
    <!-- footer_eof //-->
    </body>
    </html>
    <?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>
    The code for the following bit is an oscommerce mod

    Code:
    <!-- BOF: Admin Dashboard Stats //-->
          <tr>
         <td><table border="0" width="500" cellspacing="0" cellpadding="2" align="center">
        <tr>
                <td><?php include('includes/modules/dashboard.php'); ?></td>
        </tr>
      </table></td>
          </tr>
    <!-- EOF: Admin Dashboard Stats //-->
    You can find this mod here for the monthly sales stats bit ...

    If I get a bit more time I can try and post up a zip file and some proper instructions.

    Hope this is enough to help you on your way,

    Let me know if you have any problems,
    pgmarshall
    _______________________________

  4. #14
    ptt81
    Guest


    Default Re: New Products Project

    thank you again, now do I need to find the difference of the codes you modified or can I just replace the whole file? since I haven't mod anything to those files i blieve. I hope you get your slimbox2 problem resolved, i was wondering if you know how to add a newsletter box where customer can sign up for discount letter without having to create an account. I dont see one on your site but that would be a useful bit to add. This is the contribution I was looking at osCommerce: Newsletter & Subscribers

  5. #15
    osCMax Development Team

    New Products Project

    pgmarshall's Avatar
    Join Date
    Feb 2009
    Location
    London
    Posts
    3,517
    Contribute If you enjoy reading the
    content here, click the below
    image to support our site.
    Click Here To Contribute To Our Site

    Total Contributions For

    pgmarshall     $ 35.00
    Rep Power
    77


    Default Re: New Products Project

    ptt81,

    You should be able to simply drop the code over the top - although you will need to install the mod for the sales totals bit as per my last post and edit some of the links. Please make sure you backup before you do any of my changes!!

    Not looked at email bit you mentioned - sorry.

    pgmarshall
    pgmarshall
    _______________________________

  6. #16
    Chitman
    Guest


    Default Re: New Products Project

    pgmarshall,

    I am using 2.0.

    Thank You for your help.

  7. #17
    osCMax Development Team

    New Products Project

    pgmarshall's Avatar
    Join Date
    Feb 2009
    Location
    London
    Posts
    3,517
    Contribute If you enjoy reading the
    content here, click the below
    image to support our site.
    Click Here To Contribute To Our Site

    Total Contributions For

    pgmarshall     $ 35.00
    Rep Power
    77


    Smile Re: New Products Project

    Chitman - is this RC3 or RC4 ...

    I have a load more fields in my version ... including the field "product_ready_to_ship" which I used as my reference for the install.

    Not sure why ... but if you are proficient with WinCompare or similar you should be able to easily spot the new bits of code ... my code is as follows ...

    Code:
    <?php
    /*
    $Id: categories.php 16 2006-07-30 03:27:26Z user $
      osCMax Power E-Commerce
      osCommerce Documentation by OSCdox :: osCommerce and osCMax documentation
      Copyright 2006 osCMax
      Released under the GNU General Public License
    */
      require('includes/application_top.php');
    // LINE ADDED: Categories Description 1.5
      require('includes/functions/categories_description.php');
    // LINE ADDED: FCKEditor
      require(DIR_FCKEDITOR . 'fckeditor.php');
      require(DIR_WS_CLASSES . 'currencies.php');
      $currencies = new currencies();
      $action = (isset($HTTP_GET_VARS['action']) ? $HTTP_GET_VARS['action'] : '');
    // Ultimate SEO URLs v2.1
    // If the action will affect the cache entries
        if ( eregi("(insert|update|setflag)", $action) ) include_once('includes/reset_seo_cache.php');
     
      if (tep_not_null($action)) {
        switch ($action) {
          case 'setflag':
            if ( ($HTTP_GET_VARS['flag'] == '0') || ($HTTP_GET_VARS['flag'] == '1') ) {
              if (isset($HTTP_GET_VARS['pID'])) {
                tep_set_product_status($HTTP_GET_VARS['pID'], $HTTP_GET_VARS['flag']);
              }
              if (USE_CACHE == 'true') {
                tep_reset_cache_block('categories');
                tep_reset_cache_block('also_purchased');
              }
            }
            tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $HTTP_GET_VARS['cPath'] . '&pID=' . $HTTP_GET_VARS['pID']));
            break;
     
     case 'setflagcateg';
       if ( ($HTTP_GET_VARS['flag'] == '0') || ($HTTP_GET_VARS['flag'] == '1') ) {
       if (isset($HTTP_GET_VARS['cID'])) {
        tep_set_categories_status($HTTP_GET_VARS['cID'], $HTTP_GET_VARS['flag']);
      }
     
      if (USE_CACHE == 'true') {
        tep_reset_cache_block('categories');
        tep_reset_cache_block('also_purchased');
      }
     
       }
     
       tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $HTTP_GET_VARS['cPath'] . '&cID=' . $HTTP_GET_VARS['cID']));
       break;
     
     
    // BOF: MOD for Categories Description 1.5
          case 'new_category':
          case 'edit_category':
            if (ALLOW_CATEGORY_DESCRIPTIONS == 'true')
              $HTTP_GET_VARS['action']=$HTTP_GET_VARS['action'] . '_ACD';
            break;
    // EOF: MOD for Categories Description 1.5
          case 'insert_category':
          case 'update_category':
    // BOF: MOD for Categories Description 1.5
            if ( ($HTTP_POST_VARS['edit_x']) || ($HTTP_POST_VARS['edit_y']) ) {
              $HTTP_GET_VARS['action'] = 'edit_category_ACD';
            } else {
    // EOF: MOD for Categories Description 1.5
              if (isset($HTTP_POST_VARS['categories_id'])) $categories_id = tep_db_prepare_input($HTTP_POST_VARS['categories_id']);
    // BOF: MOD for Categories Description 1.5
              if ($categories_id == '') {
                 $categories_id = tep_db_prepare_input($HTTP_GET_VARS['cID']);
               }
    // EOF: MOD for Categories Description 1.5
              $sort_order = tep_db_prepare_input($HTTP_POST_VARS['sort_order']);
            $sql_data_array = array('sort_order' => (int)$sort_order);
              if ($action == 'insert_category') {
                $insert_sql_data = array('parent_id' => $current_category_id,
                                         'date_added' => 'now()');
                $sql_data_array = array_merge($sql_data_array, $insert_sql_data);
                tep_db_perform(TABLE_CATEGORIES, $sql_data_array);
                $categories_id = tep_db_insert_id();
                } elseif ($action == 'update_category') {
                  $update_sql_data = array('last_modified' => 'now()');
                  $sql_data_array = array_merge($sql_data_array, $update_sql_data);
                  tep_db_perform(TABLE_CATEGORIES, $sql_data_array, 'update', "categories_id = '" . (int)$categories_id . "'");
                }
                $languages = tep_get_languages();
                for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
                  $categories_name_array = $HTTP_POST_VARS['categories_name'];
                  $language_id = $languages[$i]['id'];
                  $sql_data_array = array('categories_name' => tep_db_prepare_input($categories_name_array[$language_id]));
    // BOF: MOD for Categories Description 1.5
                  if (ALLOW_CATEGORY_DESCRIPTIONS == 'true') {
                    $sql_data_array = array('categories_name' => tep_db_prepare_input($HTTP_POST_VARS['categories_name'][$language_id]),
                                            'categories_heading_title' => tep_db_prepare_input($HTTP_POST_VARS['categories_heading_title'][$language_id]),
                                            'categories_description' => tep_db_prepare_input($HTTP_POST_VARS['categories_description'][$language_id]));
                  }
    // EOF: MOD for Categories Description 1.5
                  if ($action == 'insert_category') {
                    $insert_sql_data = array('categories_id' => $categories_id,
                                             'language_id' => $languages[$i]['id']);
                    $sql_data_array = array_merge($sql_data_array, $insert_sql_data);
                    tep_db_perform(TABLE_CATEGORIES_DESCRIPTION, $sql_data_array);
                  } elseif ($action == 'update_category') {
                    tep_db_perform(TABLE_CATEGORIES_DESCRIPTION, $sql_data_array, 'update', "categories_id = '" . (int)$categories_id . "' and language_id = '" . (int)$languages[$i]['id'] . "'");
                  }
                }
    // BOF: MOD for Categories Description 1.5
    //OLD-    if ($categories_image = new upload('categories_image', DIR_FS_CATALOG_IMAGES)) {
    //          tep_db_query("update " . TABLE_CATEGORIES . " set categories_image = '" . //tep_db_input($categories_image->filename) . "' where categories_id = '" . (int)$categories_id . "'");
    //Added the following to replacce above code
              if (ALLOW_CATEGORY_DESCRIPTIONS == 'true') {
                tep_db_query("update " . TABLE_CATEGORIES . " set categories_image = '" . $HTTP_POST_VARS['categories_image'] . "' where categories_id = '" .  tep_db_input($categories_id) . "'");
                $categories_image = '';
              } else {
            $categories_image = new upload('categories_image');
            $categories_image->set_destination(DIR_FS_CATALOG_IMAGES);
            if ($categories_image->parse() && $categories_image->save()) {
                  tep_db_query("update " . TABLE_CATEGORIES . " set categories_image = '" . tep_db_input($categories_image->filename) . "' where categories_id = '" . (int)$categories_id . "'");
                }
    // EOF: MOD for Categories Description 1.5
              }
              if (USE_CACHE == 'true') {
                tep_reset_cache_block('categories');
                tep_reset_cache_block('also_purchased');
              }
              tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&cID=' . $categories_id));
    // BOF: MOD for Categories Description 1.5
            }
    // EOF: MOD for Categories Description 1.5
            break;
          case 'delete_category_confirm':
            if (isset($HTTP_POST_VARS['categories_id'])) {
              $categories_id = tep_db_prepare_input($HTTP_POST_VARS['categories_id']);
              $categories = tep_get_category_tree($categories_id, '', '0', '', true);
              $products = array();
              $products_delete = array();
              for ($i=0, $n=sizeof($categories); $i<$n; $i++) {
                $product_ids_query = tep_db_query("select products_id from " . TABLE_PRODUCTS_TO_CATEGORIES . " where categories_id = '" . (int)$categories[$i]['id'] . "'");
                while ($product_ids = tep_db_fetch_array($product_ids_query)) {
                  $products[$product_ids['products_id']]['categories'][] = $categories[$i]['id'];
                }
              }
              reset($products);
              while (list($key, $value) = each($products)) {
                $category_ids = '';
                for ($i=0, $n=sizeof($value['categories']); $i<$n; $i++) {
                  $category_ids .= "'" . (int)$value['categories'][$i] . "', ";
                }
                $category_ids = substr($category_ids, 0, -2);
                $check_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_TO_CATEGORIES . " where products_id = '" . (int)$key . "' and categories_id not in (" . $category_ids . ")");
                $check = tep_db_fetch_array($check_query);
                if ($check['total'] < '1') {
                  $products_delete[$key] = $key;
                }
              }
    // removing categories can be a lengthy process
              tep_set_time_limit(0);
              for ($i=0, $n=sizeof($categories); $i<$n; $i++) {
                tep_remove_category($categories[$i]['id']);
              }
              reset($products_delete);
              while (list($key) = each($products_delete)) {
                tep_remove_product($key);
              }
            }
            if (USE_CACHE == 'true') {
              tep_reset_cache_block('categories');
              tep_reset_cache_block('also_purchased');
            }
            tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath));
            break;
          case 'delete_product_confirm':
            if (isset($HTTP_POST_VARS['products_id']) && isset($HTTP_POST_VARS['product_categories']) && is_array($HTTP_POST_VARS['product_categories'])) {
              $product_id = tep_db_prepare_input($HTTP_POST_VARS['products_id']);
              $product_categories = $HTTP_POST_VARS['product_categories'];
              for ($i=0, $n=sizeof($product_categories); $i<$n; $i++) {
                tep_db_query("delete from " . TABLE_PRODUCTS_TO_CATEGORIES . " where products_id = '" . (int)$product_id . "' and categories_id = '" . (int)$product_categories[$i] . "'");
     
    // LINE ADDED: MOD - Separate Price per Customer
               tep_db_query("delete from " . TABLE_PRODUCTS_GROUPS . " where products_id = '" . tep_db_input($product_id) . "' ");
              }
              $product_categories_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_TO_CATEGORIES . " where products_id = '" . (int)$product_id . "'");
              $product_categories = tep_db_fetch_array($product_categories_query);
              if ($product_categories['total'] == '0') {
                tep_remove_product($product_id);
              }
            }
            if (USE_CACHE == 'true') {
              tep_reset_cache_block('categories');
              tep_reset_cache_block('also_purchased');
            }
            tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath));
            break;
          case 'move_category_confirm':
            if (isset($HTTP_POST_VARS['categories_id']) && ($HTTP_POST_VARS['categories_id'] != $HTTP_POST_VARS['move_to_category_id'])) {
              $categories_id = tep_db_prepare_input($HTTP_POST_VARS['categories_id']);
              $new_parent_id = tep_db_prepare_input($HTTP_POST_VARS['move_to_category_id']);
              $path = explode('_', tep_get_generated_category_path_ids($new_parent_id));
              if (in_array($categories_id, $path)) {
                $messageStack->add_session(ERROR_CANNOT_MOVE_CATEGORY_TO_PARENT, 'error');
                tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&cID=' . $categories_id));
              } else {
                tep_db_query("update " . TABLE_CATEGORIES . " set parent_id = '" . (int)$new_parent_id . "', last_modified = now() where categories_id = '" . (int)$categories_id . "'");
                if (USE_CACHE == 'true') {
                  tep_reset_cache_block('categories');
                  tep_reset_cache_block('also_purchased');
                }
                tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $new_parent_id . '&cID=' . $categories_id));
              }
            }
            break;
          case 'move_product_confirm':
            $products_id = tep_db_prepare_input($HTTP_POST_VARS['products_id']);
            $new_parent_id = tep_db_prepare_input($HTTP_POST_VARS['move_to_category_id']);
            $duplicate_check_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_TO_CATEGORIES . " where products_id = '" . (int)$products_id . "' and categories_id = '" . (int)$new_parent_id . "'");
            $duplicate_check = tep_db_fetch_array($duplicate_check_query);
            if ($duplicate_check['total'] < 1) tep_db_query("update " . TABLE_PRODUCTS_TO_CATEGORIES . " set categories_id = '" . (int)$new_parent_id . "' where products_id = '" . (int)$products_id . "' and categories_id = '" . (int)$current_category_id . "'");
            if (USE_CACHE == 'true') {
              tep_reset_cache_block('categories');
              tep_reset_cache_block('also_purchased');
            }
            tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $new_parent_id . '&pID=' . $products_id));
            break;
          case 'insert_product':
          case 'update_product':
            if (isset($HTTP_POST_VARS['edit_x']) || isset($HTTP_POST_VARS['edit_y'])) {
              $action = 'new_product';
            } else {
              if (isset($HTTP_GET_VARS['pID'])) $products_id = tep_db_prepare_input($HTTP_GET_VARS['pID']);
              $products_date_available = tep_db_prepare_input($HTTP_POST_VARS['products_date_available']);
              $products_date_available = (date('Y-m-d') < $products_date_available) ? $products_date_available : 'null';
              $sql_data_array = array('products_quantity' => (int)tep_db_prepare_input($HTTP_POST_VARS['products_quantity']),
    //LINE ADDED: MOD - indvship
                                      'products_ship_price' => tep_db_prepare_input($HTTP_POST_VARS['products_ship_price']), //indvship
                                      'products_model' => tep_db_prepare_input($HTTP_POST_VARS['products_model']),
                                      'products_price' => tep_db_prepare_input($HTTP_POST_VARS['products_price']),
                                      'products_date_available' => $products_date_available,
                                      'products_weight' => (float)tep_db_prepare_input($HTTP_POST_VARS['products_weight']),
                                      'products_height' => tep_db_prepare_input($HTTP_POST_VARS['products_height']),
                                      'products_length' => tep_db_prepare_input($HTTP_POST_VARS['products_length']),
                                      'products_width' => tep_db_prepare_input($HTTP_POST_VARS['products_width']),
                                      'products_ready_to_ship' => tep_db_prepare_input($HTTP_POST_VARS['products_ready_to_ship']),
              'products_featured' => tep_db_prepare_input($HTTP_POST_VARS['products_featured']), // Product Featured
                                      'products_status' => tep_db_prepare_input($HTTP_POST_VARS['products_status']),
                                      'products_tax_class_id' => tep_db_prepare_input($HTTP_POST_VARS['products_tax_class_id']),
                                      'manufacturers_id' => (int)tep_db_prepare_input($HTTP_POST_VARS['manufacturers_id']));
              if (isset($HTTP_POST_VARS['products_image']) && tep_not_null($HTTP_POST_VARS['products_image']) && ($HTTP_POST_VARS['products_image'] != 'none')) {
                $sql_data_array['products_image'] = tep_db_prepare_input($HTTP_POST_VARS['products_image']);
              }
              if ($action == 'insert_product') {
                $insert_sql_data = array('products_date_added' => 'now()');
                $sql_data_array = array_merge($sql_data_array, $insert_sql_data);
                tep_db_perform(TABLE_PRODUCTS, $sql_data_array);
                $products_id = tep_db_insert_id();
                tep_db_query("insert into " . TABLE_PRODUCTS_TO_CATEGORIES . " (products_id, categories_id) values ('" . (int)$products_id . "', '" . (int)$current_category_id . "')");
              } elseif ($action == 'update_product') {
                $update_sql_data = array('products_last_modified' => 'now()');
                $sql_data_array = array_merge($sql_data_array, $update_sql_data);
                tep_db_perform(TABLE_PRODUCTS, $sql_data_array, 'update', "products_id = '" . (int)$products_id . "'");
              }
     
    //BOF: MOD - AJAX Attribute Manager 
              require_once('attributeManager/includes/attributeManagerUpdateAtomic.inc.php'); 
    //EOF: MOD - AJAX Attribute Manager 
     
    // BOF: MOD - Separate Price per Customer
              $customers_group_query = tep_db_query("select customers_group_id, customers_group_name from " . TABLE_CUSTOMERS_GROUPS . " where customers_group_id != '0' order by customers_group_id");
              while ($customers_group = tep_db_fetch_array($customers_group_query))  { // Gets all of the customers groups
                $attributes_query = tep_db_query("select customers_group_id, customers_group_price from " . TABLE_PRODUCTS_GROUPS . " where ((products_id = '" . $products_id . "') && (customers_group_id = " . $customers_group['customers_group_id'] . ")) order by customers_group_id");
                $attributes = tep_db_fetch_array($attributes_query);
                if (tep_db_num_rows($attributes_query) > 0) {
                  if ($HTTP_POST_VARS['sppcoption'][$customers_group['customers_group_id']]) {// this is checking if the check box is checked
                    if ( ($HTTP_POST_VARS['sppcprice'][$customers_group['customers_group_id']] <> $attributes['customers_group_price']) && ($attributes['customers_group_id'] == $customers_group['customers_group_id']) ) {
                    tep_db_query("update " . TABLE_PRODUCTS_GROUPS . " set customers_group_price = '" . $HTTP_POST_VARS['sppcprice'][$customers_group['customers_group_id']] . "' where customers_group_id = '" . $attributes['customers_group_id'] . "' and products_id = '" . $products_id . "'");
                      $attributes = tep_db_fetch_array($attributes_query);
                    }
                    elseif (($HTTP_POST_VARS['sppcprice'][$customers_group['customers_group_id']] == $attributes['customers_group_price'])) {
                    $attributes = tep_db_fetch_array($attributes_query);
                    }
                  }
                  else {
                    tep_db_query("delete from " . TABLE_PRODUCTS_GROUPS . " where customers_group_id = '" . $customers_group['customers_group_id'] . "' and products_id = '" . $products_id . "'");
                    $attributes = tep_db_fetch_array($attributes_query);
                  }
                }
                elseif (($HTTP_POST_VARS['sppcoption'][$customers_group['customers_group_id']]) && ($HTTP_POST_VARS['sppcprice'][$customers_group['customers_group_id']] != '')) {
                  tep_db_query("insert into " . TABLE_PRODUCTS_GROUPS . " (products_id, customers_group_id, customers_group_price) values ('" . $products_id . "', '" . $customers_group['customers_group_id'] . "', '" . $HTTP_POST_VARS['sppcprice'][$customers_group['customers_group_id']] . "')");
                  $attributes = tep_db_fetch_array($attributes_query);
                }
              }
    // EOF: MOD - Separate Price per Customer
              $languages = tep_get_languages();
              for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
                $language_id = $languages[$i]['id'];
                $sql_data_array = array('products_name' => tep_db_prepare_input($HTTP_POST_VARS['products_name'][$language_id]),
                                        'products_description' => tep_db_prepare_input($HTTP_POST_VARS['products_description'][$language_id]),
                                        'products_url' => tep_db_prepare_input($HTTP_POST_VARS['products_url'][$language_id]));
                if ($action == 'insert_product') {
                  $insert_sql_data = array('products_id' => $products_id,
                                           'language_id' => $language_id);
                  $sql_data_array = array_merge($sql_data_array, $insert_sql_data);
                  tep_db_perform(TABLE_PRODUCTS_DESCRIPTION, $sql_data_array);
                } elseif ($action == 'update_product') {
                  tep_db_perform(TABLE_PRODUCTS_DESCRIPTION, $sql_data_array, 'update', "products_id = '" . (int)$products_id . "' and language_id = '" . (int)$language_id . "'");
                }
              }
              if (USE_CACHE == 'true') {
                tep_reset_cache_block('categories');
                tep_reset_cache_block('also_purchased');
              }
              tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $products_id));
            }
            break;
          case 'copy_to_confirm':
            if (isset($HTTP_POST_VARS['products_id']) && isset($HTTP_POST_VARS['categories_id'])) {
              $products_id = tep_db_prepare_input($HTTP_POST_VARS['products_id']);
              $categories_id = tep_db_prepare_input($HTTP_POST_VARS['categories_id']);
              if ($HTTP_POST_VARS['copy_as'] == 'link') {
                if ($categories_id != $current_category_id) {
                  $check_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_TO_CATEGORIES . " where products_id = '" . (int)$products_id . "' and categories_id = '" . (int)$categories_id . "'");
                  $check = tep_db_fetch_array($check_query);
                  if ($check['total'] < '1') {
                    tep_db_query("insert into " . TABLE_PRODUCTS_TO_CATEGORIES . " (products_id, categories_id) values ('" . (int)$products_id . "', '" . (int)$categories_id . "')");
                  }
                } else {
                  $messageStack->add_session(ERROR_CANNOT_LINK_TO_SAME_CATEGORY, 'error');
                }
              } elseif ($HTTP_POST_VARS['copy_as'] == 'duplicate') {
    // LINE MODED: Added "products_ship_price and dimensions for upsxml"
                $product_query = tep_db_query("select products_ship_price, products_quantity, products_model, products_image, products_price, products_date_available, products_weight, products_length, products_width, products_height, products_ready_to_ship, products_featured, products_tax_class_id, manufacturers_id from " . TABLE_PRODUCTS . " where products_id = '" . (int)$products_id . "'");
                $product = tep_db_fetch_array($product_query);
    // LINE CHANGED: MS2 update 501112 - Added :(empty($product['products_date_available']) ? "null" : ...{some code}... ") . "
    // LINE MODED: Added "products_ship_price and dimensions for upsxml"
                tep_db_query("insert into " . TABLE_PRODUCTS . " (products_quantity, products_model, products_ship_price, products_image, products_price, products_date_added, products_date_available, products_weight, products_length, products_width, products_height, products_ready_to_ship, products_featured, products_status, products_tax_class_id, manufacturers_id) values ('" . tep_db_input($product['products_quantity']) . "', '" . tep_db_input($product['products_model']) . "', '" . $product['products_ship_price'] . "', '" . tep_db_input($product['products_image']) . "', '" . tep_db_input($product['products_price']) . "',  now(), " . (empty($product['products_date_available']) ? "null" : "'" . tep_db_input($product['products_date_available']) . "'") . ". '" . tep_db_input($product['products_weight']) . "', '0', '" . $product['products_length'] . "', '" . $product['products_width'] . "', '" . $product['products_height']. "', '" . $product['products_ready_to_ship'] . "', '" . $product['products_featured'] . (int)$product['products_tax_class_id'] . "', '" . (int)$product['manufacturers_id'] . "')");
                $dup_products_id = tep_db_insert_id();
                $description_query = tep_db_query("select language_id, products_name, products_description, products_url from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$products_id . "'");
                while ($description = tep_db_fetch_array($description_query)) {
                  tep_db_query("insert into " . TABLE_PRODUCTS_DESCRIPTION . " (products_id, language_id, products_name, products_description, products_url, products_viewed) values ('" . (int)$dup_products_id . "', '" . (int)$description['language_id'] . "', '" . tep_db_input($description['products_name']) . "', '" . tep_db_input($description['products_description']) . "', '" . tep_db_input($description['products_url']) . "', '0')");
                }
                tep_db_query("insert into " . TABLE_PRODUCTS_TO_CATEGORIES . " (products_id, categories_id) values ('" . (int)$dup_products_id . "', '" . (int)$categories_id . "')");
                $products_id = $dup_products_id;
              }
              if (USE_CACHE == 'true') {
                tep_reset_cache_block('categories');
                tep_reset_cache_block('also_purchased');
              }
            }
            tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $categories_id . '&pID=' . $products_id));
            break;
          case 'new_product_preview':
    // copy image only if modified
            $products_image = new upload('products_image');
            $products_image->set_destination(DIR_FS_CATALOG_IMAGES);
            if ($products_image->parse() && $products_image->save()) {
              $products_image_name = $products_image->filename;
            } else {
              $products_image_name = (isset($HTTP_POST_VARS['products_previous_image']) ? $HTTP_POST_VARS['products_previous_image'] : '');
            }
            break;
        }
      }
    // check if the catalog image directory exists
      if (is_dir(DIR_FS_CATALOG_IMAGES)) {
        if (!is_writeable(DIR_FS_CATALOG_IMAGES)) $messageStack->add(ERROR_CATALOG_IMAGE_DIRECTORY_NOT_WRITEABLE, 'error');
      } else {
        $messageStack->add(ERROR_CATALOG_IMAGE_DIRECTORY_DOES_NOT_EXIST, 'error');
      }
    ?>
    <!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>
    <link rel="stylesheet" type="text/css" href="includes/stylesheet.css">
    <script language="javascript" src="includes/general.js"></script>
    <!-- AJAX Attribute Manager  -->
    <?php require_once( 'attributeManager/includes/attributeManagerHeader.inc.php' )?>
    <!-- AJAX Attribute Manager  end -->
    </head>
    <body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" bgcolor="#FFFFFF" onLoad="goOnLoad();">
    <div id="spiffycalendar" class="text"></div>
    <!-- header //-->
    <?php require(DIR_WS_INCLUDES . 'header.php'); ?>
    <!-- header_eof //-->
    <!-- body //-->
    <table border="0" width="100%" cellspacing="2" cellpadding="2">
      <tr>
        <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="1" cellpadding="1" class="columnLeft">
    <!-- left_navigation //-->
    <?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
    <!-- left_navigation_eof //-->
        </table></td>
    <!-- body_text //-->
    <?php // BOF: MOD  new_category / edit_category (when ALLOW_CATEGORY_DESCRIPTIONS is 'true') 
    //    <td width="100%" valign="top">
    //  if ($action == 'new_product') {
    ?>
           <td width="100%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
      <?php   //----- new_category / edit_category (when ALLOW_CATEGORY_DESCRIPTIONS is 'true') -----
      if ($HTTP_GET_VARS['action'] == 'new_category_ACD' || $HTTP_GET_VARS['action'] == 'edit_category_ACD') {
        if ( ($HTTP_GET_VARS['cID']) && (!$HTTP_POST_VARS) ) {
          $categories_query = tep_db_query("select c.categories_id, cd.categories_name, cd.categories_heading_title, cd.categories_description, c.categories_image, c.parent_id, c.sort_order, c.date_added, c.last_modified from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = '" . $HTTP_GET_VARS['cID'] . "' and c.categories_id = cd.categories_id and cd.language_id = '" . $languages_id . "' order by c.sort_order, cd.categories_name");
          $category = tep_db_fetch_array($categories_query);
          $cInfo = new objectInfo($category);
        } elseif ($HTTP_POST_VARS) {
          $cInfo = new objectInfo($HTTP_POST_VARS);
          $categories_name = $HTTP_POST_VARS['categories_name'];
          $categories_heading_title = $HTTP_POST_VARS['categories_heading_title'];
          $categories_description = $HTTP_POST_VARS['categories_description'];
          $categories_url = $HTTP_POST_VARS['categories_url'];
        } else {
          $cInfo = new objectInfo(array());
        }
        $languages = tep_get_languages();
        $text_new_or_edit = ($HTTP_GET_VARS['action']=='new_category_ACD') ? TEXT_INFO_HEADING_NEW_CATEGORY : TEXT_INFO_HEADING_EDIT_CATEGORY;
    ?>
          <tr>
            <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
              <tr>
                <td class="pageHeading"><?php echo sprintf($text_new_or_edit, tep_output_generated_category_path($current_category_id)); ?></td>
                <td class="pageHeading" align="right"><?php echo tep_draw_separator('pixel_trans.gif', HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>
              </tr>
            </table></td>
          </tr>
          <tr>
            <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
          </tr>
          <tr><?php echo tep_draw_form('new_category', FILENAME_CATEGORIES, 'cPath=' . $cPath . '&cID=' . $HTTP_GET_VARS['cID'] . '&action=new_category_preview', 'post', 'enctype="multipart/form-data"'); ?>
            <td><table border="0" cellspacing="0" cellpadding="2">
    <?php
        for ($i=0; $i<sizeof($languages); $i++) {
    ?>
              <tr>
                <td class="main"><?php if ($i == 0) echo TEXT_EDIT_CATEGORIES_NAME; ?></td>
                <td class="main"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . '&nbsp;' . tep_draw_input_field('categories_name[' . $languages[$i]['id'] . ']', (($categories_name[$languages[$i]['id']]) ? stripslashes($categories_name[$languages[$i]['id']]) : tep_get_category_name($cInfo->categories_id, $languages[$i]['id']))); ?></td>
              </tr>
    <?php
        }
    ?>
              <tr>
                <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
              </tr>
    <?php
        for ($i=0; $i<sizeof($languages); $i++) {
    ?>
              <tr>
                <td class="main"><?php if ($i == 0) echo TEXT_EDIT_CATEGORIES_HEADING_TITLE; ?></td>
                <td class="main"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . '&nbsp;' . tep_draw_input_field('categories_heading_title[' . $languages[$i]['id'] . ']', (($categories_name[$languages[$i]['id']]) ? stripslashes($categories_name[$languages[$i]['id']]) : tep_get_category_heading_title($cInfo->categories_id, $languages[$i]['id']))); ?></td>
              </tr>
    <?php
        }
    ?>
              <tr>
                <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
              </tr>
    <?php
        for ($i=0; $i<sizeof($languages); $i++) {
    ?>
              <tr>
                <td class="main" valign="top"><?php if ($i == 0) echo TEXT_EDIT_CATEGORIES_DESCRIPTION; ?></td>
                <td><table border="0" cellspacing="0" cellpadding="0">
                  <tr>
                    <td class="main" valign="top"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']); ?>&nbsp;</td>
                    <td class="main">
                    <?php if(HTML_AREA_WYSIWYG_DISABLE == 'Enable') {
    // Line Changed - MOD: Ajustable Editor Window
                      echo tep_draw_fckeditor ('categories_description[' . $languages[$i]['id'] . ']', HTML_AREA_WYSIWYG_EDITOR_WIDTH, HTML_AREA_WYSIWYG_EDITOR_HEIGHT, (isset($categories_description[$languages[$i]['id']]) ? stripslashes($categories_description[$languages[$i]['id']]) : tep_get_category_description($cInfo->categories_id, $languages[$i]['id']))) . '</td>';
                      } else { echo tep_draw_textarea_field('categories_description[' . $languages[$i]['id'].']','soft','70','15',(isset($categories_description[$languages[$i]['id']]) ? $categories_description[$languages[$i]['id']] : tep_get_category_description($cInfo->categories_id, $languages[$i]['id']))) . '</td>';
                    }
                    ?>
                  </tr>
                </table></td>
              </tr>
    <?php
        }
    ?>
              <tr>
                <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
              </tr>
              <tr>
              <tr>
                <td class="main"><?php echo TEXT_EDIT_CATEGORIES_IMAGE; ?></td>
                <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;' . tep_draw_file_field('categories_image') . '<br>' . tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;' . $cInfo->categories_image . tep_draw_hidden_field('categories_previous_image', $cInfo->categories_image); ?></td>
              </tr>
              <tr>
                <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
              </tr>
              <tr>
                <td class="main"><?php echo TEXT_EDIT_SORT_ORDER; ?></td>
                <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;' . tep_draw_input_field('sort_order', $cInfo->sort_order, 'size="2"'); ?></td>
              </tr>
              <tr>
                <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
              </tr>
            </table></td>
          </tr>
          <tr>
            <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
          </tr>
          <tr>
            <td class="main" align="right"><?php echo tep_draw_hidden_field('categories_date_added', (($cInfo->date_added) ? $cInfo->date_added : date('Y-m-d'))) . tep_draw_hidden_field('parent_id', $cInfo->parent_id) . tep_image_submit('button_preview.gif', IMAGE_PREVIEW) . '&nbsp;&nbsp;<a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&cID=' . $HTTP_GET_VARS['cID']) . '">' . tep_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a>'; ?></td>
          </form></tr>
    <?php
      //----- new_category_preview (active when ALLOW_CATEGORY_DESCRIPTIONS is 'true') -----
      } elseif ($HTTP_GET_VARS['action'] == 'new_category_preview') {
        if ($HTTP_POST_VARS) {
          $cInfo = new objectInfo($HTTP_POST_VARS);
          $categories_name = $HTTP_POST_VARS['categories_name'];
          $categories_heading_title = $HTTP_POST_VARS['categories_heading_title'];
          $categories_description = $HTTP_POST_VARS['categories_description'];
    // copy image only if modified
            $categories_image = new upload('categories_image');
            $categories_image->set_destination(DIR_FS_CATALOG_IMAGES);
            if ($categories_image->parse() && $categories_image->save()) {
              $categories_image_name = $categories_image->filename;
            } else {
            $categories_image_name = $HTTP_POST_VARS['categories_previous_image'];
          }
    #     if ( ($categories_image != 'none') && ($categories_image != '') ) {
    #       $image_location = DIR_FS_CATALOG_IMAGES . $categories_image_name;
    #       if (file_exists($image_location)) @unlink($image_location);
    #       copy($categories_image, $image_location);
    #     } else {
    #       $categories_image_name = $HTTP_POST_VARS['categories_previous_image'];
    #     }
        } else {
          $category_query = tep_db_query("select c.categories_id, cd.language_id, cd.categories_name, cd.categories_heading_title, cd.categories_description, c.categories_image, c.sort_order, c.date_added, c.last_modified from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = cd.categories_id and c.categories_id = '" . $HTTP_GET_VARS['cID'] . "'");
          $category = tep_db_fetch_array($category_query);
          $cInfo = new objectInfo($category);
          $categories_image_name = $cInfo->categories_image;
        }
        $form_action = ($HTTP_GET_VARS['cID']) ? 'update_category' : 'insert_category';
        echo tep_draw_form($form_action, FILENAME_CATEGORIES, 'cPath=' . $cPath . '&cID=' . $HTTP_GET_VARS['cID'] . '&action=' . $form_action, 'post', 'enctype="multipart/form-data"');
        $languages = tep_get_languages();
        for ($i=0; $i<sizeof($languages); $i++) {
          if ($HTTP_GET_VARS['read'] == 'only') {
            $cInfo->categories_name = tep_get_category_name($cInfo->categories_id, $languages[$i]['id']);
            $cInfo->categories_heading_title = tep_get_category_heading_title($cInfo->categories_id, $languages[$i]['id']);
            $cInfo->categories_description = tep_get_category_description($cInfo->categories_id, $languages[$i]['id']);
          } else {
            $cInfo->categories_name = tep_db_prepare_input($categories_name[$languages[$i]['id']]);
            $cInfo->categories_heading_title = tep_db_prepare_input($categories_heading_title[$languages[$i]['id']]);
            $cInfo->categories_description = tep_db_prepare_input($categories_description[$languages[$i]['id']]);
          }
    ?>
          <tr>
            <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
              <tr>
                <td class="pageHeading"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . '&nbsp;' . $cInfo->categories_heading_title; ?></td>
              </tr>
            </table></td>
          </tr>
          <tr>
            <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
          </tr>
          <tr>
            <td class="main"><?php echo tep_image(DIR_WS_CATALOG_IMAGES . $categories_image_name, $cInfo->categories_name, SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'align="right" hspace="5" vspace="5"') . $cInfo->categories_description; ?></td>
          </tr>
    <?php
        }
        if ($HTTP_GET_VARS['read'] == 'only') {
          if ($HTTP_GET_VARS['origin']) {
            $pos_params = strpos($HTTP_GET_VARS['origin'], '?', 0);
            if ($pos_params != false) {
              $back_url = substr($HTTP_GET_VARS['origin'], 0, $pos_params);
              $back_url_params = substr($HTTP_GET_VARS['origin'], $pos_params + 1);
            } else {
              $back_url = $HTTP_GET_VARS['origin'];
              $back_url_params = '';
            }
          } else {
            $back_url = FILENAME_CATEGORIES;
            $back_url_params = 'cPath=' . $cPath . '&cID=' . $cInfo->categories_id;
          }
    ?>
          <tr>
            <td align="right"><?php echo '<a href="' . tep_href_link($back_url, $back_url_params, 'NONSSL') . '">' . tep_image_button('button_back.gif', IMAGE_BACK) . '</a>'; ?></td>
          </tr>
    <?php
        } else {
    ?>
          <tr>
            <td align="right" class="smallText">
    <?php
    /* Re-Post all POST'ed variables */
          reset($HTTP_POST_VARS);
          while (list($key, $value) = each($HTTP_POST_VARS)) {
            if (!is_array($HTTP_POST_VARS[$key])) {
              echo tep_draw_hidden_field($key, htmlspecialchars(stripslashes($value)));
            }
          }
          $languages = tep_get_languages();
          for ($i=0; $i<sizeof($languages); $i++) {
            echo tep_draw_hidden_field('categories_name[' . $languages[$i]['id'] . ']', htmlspecialchars(stripslashes($categories_name[$languages[$i]['id']])));
            echo tep_draw_hidden_field('categories_heading_title[' . $languages[$i]['id'] . ']', htmlspecialchars(stripslashes($categories_heading_title[$languages[$i]['id']])));
            echo tep_draw_hidden_field('categories_description[' . $languages[$i]['id'] . ']', htmlspecialchars(stripslashes($categories_description[$languages[$i]['id']])));
          }
          echo tep_draw_hidden_field('X_categories_image', stripslashes($categories_image_name));
          echo tep_draw_hidden_field('categories_image', stripslashes($categories_image_name));
          echo tep_image_submit('button_back.gif', IMAGE_BACK, 'name="edit"') . '&nbsp;&nbsp;';
          if ($HTTP_GET_VARS['cID']) {
            echo tep_image_submit('button_update.gif', IMAGE_UPDATE);
          } else {
            echo tep_image_submit('button_insert.gif', IMAGE_INSERT);
          }
          echo '&nbsp;&nbsp;<a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&cID=' . $HTTP_GET_VARS['cID']) . '">' . tep_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a>';
    ?></td>
          </form></tr>
    <?php
        }
      } elseif ($action == 'new_product') {
    // EOF: MOD  new_category / edit_category (when ALLOW_CATEGORY_DESCRIPTIONS is 'true') 
        $parameters = array('products_name' => '',
                           'products_description' => '',
                           'products_url' => '',
                           'products_id' => '',
                           'products_quantity' => '',
                           'products_model' => '',
                           'products_image' => '',
                           'products_price' => '',
                           'products_weight' => '',
                           'products_length' => '',
                           'products_width' => '',
                           'products_height' => '',
                           'products_ready_to_ship' => '',
            'products_featured' => '',
                           'products_date_added' => '',
                           'products_last_modified' => '',
                           'products_date_available' => '',
                           'products_status' => '',
                               'products_tax_class_id' => '',
                           'manufacturers_id' => '');
        $pInfo = new objectInfo($parameters);
        if (isset($HTTP_GET_VARS['pID']) && empty($HTTP_POST_VARS)) {
    //LINE MODED: Added "p.products_ship_price"
          $product_query = tep_db_query("select p.products_ship_price, pd.products_name, pd.products_description, pd.products_url, p.products_id, p.products_quantity, p.products_model, p.products_image, p.products_price, p.products_weight, products_length, products_width, products_height, products_ready_to_ship, products_featured, p.products_date_added, p.products_last_modified, date_format(p.products_date_available, '%Y-%m-%d') as products_date_available, p.products_status, p.products_tax_class_id, p.manufacturers_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_id = '" . (int)$HTTP_GET_VARS['pID'] . "' and p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "'");
          $product = tep_db_fetch_array($product_query);
          $pInfo->objectInfo($product);
        } elseif (tep_not_null($HTTP_POST_VARS)) {
          $pInfo->objectInfo($HTTP_POST_VARS);
          $products_name = $HTTP_POST_VARS['products_name'];
          $products_description = $HTTP_POST_VARS['products_description'];
          $products_url = $HTTP_POST_VARS['products_url'];
        }
        $manufacturers_array = array(array('id' => '', 'text' => TEXT_NONE));
        $manufacturers_query = tep_db_query("select manufacturers_id, manufacturers_name from " . TABLE_MANUFACTURERS . " order by manufacturers_name");
        while ($manufacturers = tep_db_fetch_array($manufacturers_query)) {
          $manufacturers_array[] = array('id' => $manufacturers['manufacturers_id'],
                                         'text' => $manufacturers['manufacturers_name']);
        }
        $tax_class_array = array(array('id' => '0', 'text' => TEXT_NONE));
        $tax_class_query = tep_db_query("select tax_class_id, tax_class_title from " . TABLE_TAX_CLASS . " order by tax_class_title");
        while ($tax_class = tep_db_fetch_array($tax_class_query)) {
          $tax_class_array[] = array('id' => $tax_class['tax_class_id'],
                                     'text' => $tax_class['tax_class_title']);
        }
        $languages = tep_get_languages();
        if (!isset($pInfo->products_status)) $pInfo->products_status = '1';
        switch ($pInfo->products_status) {
          case '0': $in_status = false; $out_status = true; break;
          case '1':
          default: $in_status = true; $out_status = false;
        }
    ?>
    <link rel="stylesheet" type="text/css" href="includes/javascript/spiffyCal/spiffyCal_v2_1.css">
    <script language="JavaScript" src="includes/javascript/spiffyCal/spiffyCal_v2_1.js"></script>
    <script language="javascript"><!--
      var dateAvailable = new ctlSpiffyCalendarBox("dateAvailable", "new_product", "products_date_available","btnDate1","<?php echo $pInfo->products_date_available; ?>",scBTNMODE_CUSTOMBLUE);
    //--></script>
    <script language="javascript"><!--
    var tax_rates = new Array();
    <?php
        for ($i=0, $n=sizeof($tax_class_array); $i<$n; $i++) {
          if ($tax_class_array[$i]['id'] > 0) {
            echo 'tax_rates["' . $tax_class_array[$i]['id'] . '"] = ' . tep_get_tax_rate_value($tax_class_array[$i]['id']) . ';' . "n";
          }
        }
    ?>
    function doRound(x, places) {
      return Math.round(x * Math.pow(10, places)) / Math.pow(10, places);
    }
    function getTaxRate() {
      var selected_value = document.forms["new_product"].products_tax_class_id.selectedIndex;
      var parameterVal = document.forms["new_product"].products_tax_class_id[selected_value].value;
      if ( (parameterVal > 0) && (tax_rates[parameterVal] > 0) ) {
        return tax_rates[parameterVal];
      } else {
        return 0;
      }
    }
    function updateGross() {
      var taxRate = getTaxRate();
      var grossValue = document.forms["new_product"].products_price.value;
      if (taxRate > 0) {
        grossValue = grossValue * ((taxRate / 100) + 1);
      }
      document.forms["new_product"].products_price_gross.value = doRound(grossValue, 4);
    }
    function updateNet() {
      var taxRate = getTaxRate();
      var netValue = document.forms["new_product"].products_price_gross.value;
      if (taxRate > 0) {
        netValue = netValue / ((taxRate / 100) + 1);
      }
      document.forms["new_product"].products_price.value = doRound(netValue, 4);
    }
    //--></script>
        <?php echo tep_draw_form('new_product', FILENAME_CATEGORIES, 'cPath=' . $cPath . (isset($HTTP_GET_VARS['pID']) ? '&pID=' . $HTTP_GET_VARS['pID'] : '') . '&action=new_product_preview', 'post', 'enctype="multipart/form-data"'); ?>
        <table border="0" width="100%" cellspacing="0" cellpadding="2">
          <tr>
            <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
              <tr>
                <td class="pageHeading"><?php echo sprintf(TEXT_NEW_PRODUCT, tep_output_generated_category_path($current_category_id)); ?></td>
                <td class="pageHeading" align="right"><?php echo tep_draw_separator('pixel_trans.gif', HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>
              </tr>
            </table></td>
          </tr>
          <tr>
            <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
          </tr>
          <tr>
            <td><table border="0" cellspacing="0" cellpadding="2">
              <tr>
                <td class="main"><?php echo TEXT_PRODUCTS_STATUS; ?></td>
                <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;' . tep_draw_radio_field('products_status', '1', $in_status) . '&nbsp;' . TEXT_PRODUCT_AVAILABLE . '&nbsp;' . tep_draw_radio_field('products_status', '0', $out_status) . '&nbsp;' . TEXT_PRODUCT_NOT_AVAILABLE; ?></td>
              </tr>
              <tr>
                <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
              </tr>
              <tr>
                <td class="main"><?php echo TEXT_PRODUCTS_DATE_AVAILABLE; ?><br><small>(YYYY-MM-DD)</small></td>
                <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;'; ?><script language="javascript">dateAvailable.writeControl(); dateAvailable.dateFormat="yyyy-MM-dd";</script></td>
              </tr>
              <tr>
                <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
              </tr>
              <tr>
                <td class="main"><?php echo TEXT_PRODUCTS_FEATURED; ?></td>
                <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;' . tep_draw_checkbox_field('products_featured', '1', (($product['products_featured'] == '1') ? true : false)); ?></td>
              </tr>
              <tr>
                <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
              </tr>
              <tr>
                <td class="main"><?php echo TEXT_PRODUCTS_MANUFACTURER; ?></td>
                <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;' . tep_draw_pull_down_menu('manufacturers_id', $manufacturers_array, $pInfo->manufacturers_id); ?></td>
              </tr>
              <tr>
                <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
              </tr>
    <?php
        for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
    ?>
              <tr>
                <td class="main"><?php if ($i == 0) echo TEXT_PRODUCTS_NAME; ?></td>
    <?php /* LINE CHANGED: MS2 update 501112 - Added: stripslashes(...) */ ?>
                <td class="main"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . '&nbsp;' . tep_draw_input_field('products_name[' . $languages[$i]['id'] . ']', (isset($products_name[$languages[$i]['id']]) ? stripslashes($products_name[$languages[$i]['id']]) : tep_get_products_name($pInfo->products_id, $languages[$i]['id']))); ?></td>
              </tr>
    <?php
        }
    ?>
              <tr>
                <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
              </tr>
              <tr bgcolor="#ebebff">
                <td class="main"><?php echo TEXT_PRODUCTS_TAX_CLASS; ?></td>
                <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;' . tep_draw_pull_down_menu('products_tax_class_id', $tax_class_array, $pInfo->products_tax_class_id, 'onchange="updateGross()"'); ?></td>
              </tr>
              <tr bgcolor="#ebebff">
                <td class="main"><?php echo TEXT_PRODUCTS_PRICE_NET; ?></td>
                <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;' . tep_draw_input_field('products_price', $pInfo->products_price, 'onKeyUp="updateGross()"'); ?></td>
              </tr>
              <tr bgcolor="#ebebff">
                <td class="main"><?php echo TEXT_PRODUCTS_PRICE_GROSS; ?></td>
                <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;' . tep_draw_input_field('products_price_gross', $pInfo->products_price, 'OnKeyUp="updateNet()"'); ?></td>
              </tr>
              <!-- AJAX Attribute Manager  -->
              <tr>
               <td colspan="2"><?php require_once( 'attributeManager/includes/attributeManagerPlaceHolder.inc.php' )?></td>
              </tr>
              <!-- AJAX Attribute Manager end -->
    <?php // EOF: MOD - indvship ?>
              <tr>
                <td class="main"><?php echo 'Indv. Shipping Price:'; ?></td>
                <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;' . tep_draw_input_field('products_ship_price', $pInfo->products_ship_price); ?></td>
              </tr>
    <?php // EOF: MOD - indvship ?>
              <tr>
                <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
              </tr>
    <script language="javascript"><!--
    updateGross();
    //--></script>
    <?php
    // BOF: MOD - Separate Pricing Per Customer
        $customers_group_query = tep_db_query("select customers_group_id, customers_group_name from " . TABLE_CUSTOMERS_GROUPS . " where customers_group_id != '0' order by customers_group_id");
        $header = false;
        while ($customers_group = tep_db_fetch_array($customers_group_query)) {
         if (tep_db_num_rows($customers_group_query) > 0) {
           $attributes_query = tep_db_query("select customers_group_id, customers_group_price from " . TABLE_PRODUCTS_GROUPS . " where products_id = '" . $pInfo->products_id . "' and customers_group_id = '" . $customers_group['customers_group_id'] . "' order by customers_group_id");
         } else {
             $attributes = array('customers_group_id' => 'new');
         }
     if (!$header) { ?>
        <tr bgcolor="#ebebff">
        <td class="main" colspan="2" style="font-style: italic">Note that if a field is left empty, no price for that customer group will be inserted in the database.<br />
    If a field is filled, but the checkbox is unchecked no price will be inserted either.<br />
    If a price is already inserted in the database, but the checkbox unchecked it will be removed from the database.
    <?php if (isset($pInfo->sppcoption[$customers_group['customers_group_id']])) { // when a preview was done and the back button used
    print ("<br />n<strong>Make sure you uncheck the appropriate boxes again!</strong>n");
    } ?>
    </td>
        </tr>
     <?php
     $header = true;
     } // end if (!header), makes sure this is only shown once
     ?>
          <tr bgcolor="#ebebff">
          <td class="main"><?php
          echo tep_draw_checkbox_field('sppcoption[' . $customers_group['customers_group_id'] . ']', 'sppcoption[' . $customers_group['customers_group_id'] . ']', true) . '&nbsp;' . $customers_group['customers_group_name'];
    ?>
     &nbsp;</td>
           <td class="main"><?php
           if ($attributes = tep_db_fetch_array($attributes_query)) {
           echo tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;' . tep_draw_input_field('sppcprice[' . $customers_group['customers_group_id'] . ']', $attributes['customers_group_price']);
           }  else {
             if (isset($pInfo->sppcprice[$customers_group['customers_group_id']])) { // when a preview was done and the back button used
               $sppc_cg_price = $pInfo->sppcprice[$customers_group['customers_group_id']];
             } else { // nothing in the db, nothing in the post variables
               $sppc_cg_price = '';
             }
         echo tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;' . tep_draw_input_field('sppcprice[' . $customers_group['customers_group_id'] . ']', $sppc_cg_price );
       }  ?></td>
        </tr>
    <?php
            } // end while ($customers_group = tep_db_fetch_array($customers_group_query))
    ?>
              <tr>
                <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
              </tr>
    <?php
    // EOF: MOD - Separate Pricing Per Customer
        for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
    ?>
              <tr>
                <td class="main" valign="top"><?php if ($i == 0) echo TEXT_PRODUCTS_DESCRIPTION; ?></td>
                <td><table border="0" cellspacing="0" cellpadding="0">
                  <tr>
                    <td class="main" valign="top"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']); ?>&nbsp;</td>
    <?php // BOF: MOD WYSIWYG Editor
    /*              <td class="main"><?php echo tep_draw_textarea_field('products_description[' . $languages[$i]['id'] . ']', 'soft', '70', '15', (isset($products_description[$languages[$i]['id']]) ? $products_description[$languages[$i]['id']] : tep_get_products_description($pInfo->products_id, $languages[$i]['id']))); ?></td> */?>
                    <td class="main"><?php if(HTML_AREA_WYSIWYG_DISABLE == 'Enable') {
          echo tep_draw_fckeditor ('products_description[' . $languages[$i]['id'] . ']', '550', '300', (isset($products_description[$languages[$i]['id']]) ? stripslashes($products_description[$languages[$i]['id']]) : tep_get_products_description($pInfo->products_id, $languages[$i]['id']))) . '</td>';
    // LINE MODIFIED: BUGFIX 0000083 - Not using fck Editor in admin categ/products won't save description
        } else {
    // LINE CHANGED: MS2 update 501112 - Added: stripslashes(...)
          echo tep_draw_textarea_field('products_description[' . $languages[$i]['id'].']','soft','70','15',(isset($products_description[$languages[$i]['id']]) ? stripslashes($products_description[$languages[$i]['id']]) : tep_get_products_description($pInfo->products_id, $languages[$i]['id']))) . '</td>';
        }
    // EOF: MOD WYSIWYG Editor ?>
                  </tr>
                </table></td>
              </tr>
    <?php
        }
    ?>
              <tr>
                <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
              </tr>
              <tr>
                <td class="main"><?php echo TEXT_PRODUCTS_QUANTITY; ?></td>
                <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;' . tep_draw_input_field('products_quantity', $pInfo->products_quantity); ?></td>
              </tr>
              <tr>
                <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
              </tr>
              <tr>
                <td class="main"><?php echo TEXT_PRODUCTS_MODEL; ?></td>
                <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;' . tep_draw_input_field('products_model', $pInfo->products_model); ?></td>
              </tr>
              <tr>
                <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
              </tr>
              <tr>
                <td class="main"><?php echo TEXT_PRODUCTS_IMAGE; ?></td>
                <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;' . tep_draw_file_field('products_image') . '<br>' . tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;' . $pInfo->products_image . tep_draw_hidden_field('products_previous_image', $pInfo->products_image); ?></td>
              </tr>
              <tr>
                <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
              </tr>
    <?php
        for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
    ?>
              <tr>
                <td class="main"><?php if ($i == 0) echo TEXT_PRODUCTS_URL . '<br><small>' . TEXT_PRODUCTS_URL_WITHOUT_HTTP . '</small>'; ?></td>
    <?php /* LINE CHANGED: MS2 update 501112 - Added: stripslashes(...) */ ?>
                <td class="main"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . '&nbsp;' . tep_draw_input_field('products_url[' . $languages[$i]['id'] . ']', (isset($products_url[$languages[$i]['id']]) ? stripslashes($products_url[$languages[$i]['id']]) : tep_get_products_url($pInfo->products_id, $languages[$i]['id']))); ?></td>
              </tr>
    <?php
        }
    ?>
              <tr>
                <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
              </tr>
              <tr>
                <td class="main"><?php echo TEXT_PRODUCTS_WEIGHT; ?></td>
                <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;' . tep_draw_input_field('products_weight', $pInfo->products_weight); ?></td>
              </tr>
              <tr>
                <td class="main"><?php echo TEXT_PRODUCTS_LENGTH; ?></td>
                <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;' . tep_draw_input_field('products_length', $pInfo->products_length); ?></td>
              </tr>
              <tr>
                <td class="main"><?php echo TEXT_PRODUCTS_WIDTH; ?></td>
                <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;' . tep_draw_input_field('products_width', $pInfo->products_width); ?></td>
              </tr>
              <tr>
                <td class="main"><?php echo TEXT_PRODUCTS_HEIGHT; ?></td>
                <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;' . tep_draw_input_field('products_height', $pInfo->products_height); ?></td>
              </tr>
              <tr>
                <td class="main"><?php echo TEXT_PRODUCTS_READY_TO_SHIP; ?></td>
                <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;' . tep_draw_checkbox_field('products_ready_to_ship', '1', (($product['products_ready_to_ship'] == '1') ? true : false)); ?></td>
              </tr>
                      </table></td>
          </tr>
          <tr>
            <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
          </tr>
          <tr>
            <td class="main" align="right"><?php echo tep_draw_hidden_field('products_date_added', (tep_not_null($pInfo->products_date_added) ? $pInfo->products_date_added : date('Y-m-d'))) . tep_image_submit('button_preview.gif', IMAGE_PREVIEW) . '&nbsp;&nbsp;<a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . (isset($HTTP_GET_VARS['pID']) ? '&pID=' . $HTTP_GET_VARS['pID'] : '')) . '">' . tep_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a>'; ?></td>
          </tr>
        </table></form>
    <?php
      } elseif ($action == 'new_product_preview') {
        if (tep_not_null($HTTP_POST_VARS)) {
          $pInfo = new objectInfo($HTTP_POST_VARS);
          $products_name = $HTTP_POST_VARS['products_name'];
          $products_description = $HTTP_POST_VARS['products_description'];
          $products_url = $HTTP_POST_VARS['products_url'];
        } else {
    // LINE CHANGED: Added p.products_shipped_price and dimensions for upsxml
          $product_query = tep_db_query("select p.products_ship_price, p.products_id, pd.language_id, pd.products_name, pd.products_description, pd.products_url, p.products_quantity, p.products_model, p.products_image, p.products_price, p.products_weight, p.products_length, p.products_width, p.products_height, p.products_ready_to_ship, p.products_featured, p.products_date_added, p.products_last_modified, p.products_date_available, p.products_status, p.manufacturers_id  from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_id = pd.products_id and p.products_id = '" . (int)$HTTP_GET_VARS['pID'] . "'");
          $product = tep_db_fetch_array($product_query);
          $pInfo = new objectInfo($product);
          $products_image_name = $pInfo->products_image;
        }
        $form_action = (isset($HTTP_GET_VARS['pID'])) ? 'update_product' : 'insert_product';
        echo tep_draw_form($form_action, FILENAME_CATEGORIES, 'cPath=' . $cPath . (isset($HTTP_GET_VARS['pID']) ? '&pID=' . $HTTP_GET_VARS['pID'] : '') . '&action=' . $form_action, 'post', 'enctype="multipart/form-data"');
        $languages = tep_get_languages();
        for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
          if (isset($HTTP_GET_VARS['read']) && ($HTTP_GET_VARS['read'] == 'only')) {
            $pInfo->products_name = tep_get_products_name($pInfo->products_id, $languages[$i]['id']);
            $pInfo->products_description = tep_get_products_description($pInfo->products_id, $languages[$i]['id']);
            $pInfo->products_url = tep_get_products_url($pInfo->products_id, $languages[$i]['id']);
          } else {
            $pInfo->products_name = tep_db_prepare_input($products_name[$languages[$i]['id']]);
            $pInfo->products_description = tep_db_prepare_input($products_description[$languages[$i]['id']]);
            $pInfo->products_url = tep_db_prepare_input($products_url[$languages[$i]['id']]);
          }
    ?>
        <table border="0" width="100%" cellspacing="0" cellpadding="2">
          <tr>
            <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
              <tr>
                <td class="pageHeading"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . '&nbsp;' . $pInfo->products_name; ?></td>
                <td class="pageHeading" align="right"><?php echo $currencies->format($pInfo->products_price); ?></td>
              </tr>
            </table></td>
          </tr>
          <tr>
            <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
          </tr>
          <tr>
            <td class="main"><?php echo tep_image(DIR_WS_CATALOG_IMAGES . $products_image_name, $pInfo->products_name, SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'align="right" hspace="5" vspace="5"') . $pInfo->products_description; ?></td>
          </tr>
    <?php
          if ($pInfo->products_url) {
    ?>
          <tr>
            <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
          </tr>
          <tr>
            <td class="main"><?php echo sprintf(TEXT_PRODUCT_MORE_INFORMATION, $pInfo->products_url); ?></td>
          </tr>
    <?php
          }
    ?>
          <tr>
            <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
          </tr>
    <?php
          if ($pInfo->products_date_available > date('Y-m-d')) {
    ?>
          <tr>
            <td align="center" class="smallText"><?php echo sprintf(TEXT_PRODUCT_DATE_AVAILABLE, tep_date_long($pInfo->products_date_available)); ?></td>
          </tr>
    <?php
          } else {
    ?>
          <tr>
            <td align="center" class="smallText"><?php echo sprintf(TEXT_PRODUCT_DATE_ADDED, tep_date_long($pInfo->products_date_added)); ?></td>
          </tr>
    <?php
          }
    ?>
          <tr>
            <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
          </tr>
    <?php
        }
        if (isset($HTTP_GET_VARS['read']) && ($HTTP_GET_VARS['read'] == 'only')) {
          if (isset($HTTP_GET_VARS['origin'])) {
            $pos_params = strpos($HTTP_GET_VARS['origin'], '?', 0);
            if ($pos_params != false) {
              $back_url = substr($HTTP_GET_VARS['origin'], 0, $pos_params);
              $back_url_params = substr($HTTP_GET_VARS['origin'], $pos_params + 1);
            } else {
              $back_url = $HTTP_GET_VARS['origin'];
              $back_url_params = '';
            }
          } else {
            $back_url = FILENAME_CATEGORIES;
            $back_url_params = 'cPath=' . $cPath . '&pID=' . $pInfo->products_id;
          }
    ?>
          <tr>
            <td align="right"><?php echo '<a href="' . tep_href_link($back_url, $back_url_params, 'NONSSL') . '">' . tep_image_button('button_back.gif', IMAGE_BACK) . '</a>'; ?></td>
          </tr>
    <?php
        } else {
    ?>
          <tr>
            <td align="right" class="smallText">
    <?php
    /* Re-Post all POST'ed variables */
          reset($HTTP_POST_VARS);
          while (list($key, $value) = each($HTTP_POST_VARS)) {
    // BOF: MOD - Separate Pricing Per Customer
    //        if (!is_array($HTTP_POST_VARS[$key])) {
              if (is_array($value)) {
                while (list($k, $v) = each($value)) {
                  echo tep_draw_hidden_field($key . '[' . $k . ']', htmlspecialchars(stripslashes($v)));
                }
              } else {
    // EOF: MOD - Separate Pricing Per Customer
              echo tep_draw_hidden_field($key, htmlspecialchars(stripslashes($value)));
            }
           }
          $languages = tep_get_languages();
          for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
            echo tep_draw_hidden_field('products_name[' . $languages[$i]['id'] . ']', htmlspecialchars(stripslashes($products_name[$languages[$i]['id']])));
            echo tep_draw_hidden_field('products_description[' . $languages[$i]['id'] . ']', htmlspecialchars(stripslashes($products_description[$languages[$i]['id']])));
            echo tep_draw_hidden_field('products_url[' . $languages[$i]['id'] . ']', htmlspecialchars(stripslashes($products_url[$languages[$i]['id']])));
          }
          echo tep_draw_hidden_field('products_image', stripslashes($products_image_name));
          echo tep_image_submit('button_back.gif', IMAGE_BACK, 'name="edit"') . '&nbsp;&nbsp;';
          if (isset($HTTP_GET_VARS['pID'])) {
            echo tep_image_submit('button_update.gif', IMAGE_UPDATE);
          } else {
            echo tep_image_submit('button_insert.gif', IMAGE_INSERT);
          }
          echo '&nbsp;&nbsp;<a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . (isset($HTTP_GET_VARS['pID']) ? '&pID=' . $HTTP_GET_VARS['pID'] : '')) . '">' . tep_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a>';
    ?></td>
          </tr>
        </table></form>
    <?php
        }
      } else {
    ?>
        <table border="0" width="100%" cellspacing="0" cellpadding="2">
          <tr>
            <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
              <tr>
                <td class="pageHeading"><?php echo HEADING_TITLE; ?></td>
                <td class="pageHeading" align="right"><?php echo tep_draw_separator('pixel_trans.gif', 1, HEADING_IMAGE_HEIGHT); ?></td>
                <td align="right"><table border="0" width="100%" cellspacing="0" cellpadding="0">
                  <tr>
                    <td class="smallText" align="right">
    <?php
        echo tep_draw_form('search', FILENAME_CATEGORIES, '', 'get');
        echo HEADING_TITLE_SEARCH . ' ' . tep_draw_input_field('search');
        echo tep_hide_session_id() . '</form>';
    ?>
                    </td>
                  </tr>
                  <tr>
                    <td class="smallText" align="right">
    <?php
        echo tep_draw_form('goto', FILENAME_CATEGORIES, '', 'get');
        echo HEADING_TITLE_GOTO . ' ' . tep_draw_pull_down_menu('cPath', tep_get_category_tree(), $current_category_id, 'onChange="this.form.submit();"');
        echo tep_hide_session_id() . '</form>';
    ?>
                    </td>
                  </tr>
                </table></td>
              </tr>
            </table></td>
          </tr>
          <tr>
            <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
              <tr>
                <td valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
                  <tr class="dataTableHeadingRow">
                    <td class="dataTableHeadingContent"><?php echo TABLE_HEADING_CATEGORIES_PRODUCTS; ?></td>
                    <td class="dataTableHeadingContent" align="center"><?php echo TABLE_HEADING_STATUS; ?></td>
                    <td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_ACTION; ?>&nbsp;</td>
                  </tr>
    <?php
        $categories_count = 0;
        $rows = 0;
        if (isset($HTTP_GET_VARS['search'])) {
          $search = tep_db_prepare_input($HTTP_GET_VARS['search']);
          $categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.categories_image, c.parent_id, c.sort_order, c.date_added, c.last_modified, c.status_categ from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "' and cd.categories_name like '%" . tep_db_input($search) . "%' order by c.sort_order, cd.categories_name");
        } else {
          $categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.categories_image, c.parent_id, c.sort_order, c.date_added, c.last_modified, c.status_categ from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . (int)$current_category_id . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "' order by c.sort_order, cd.categories_name");
        }
        while ($categories = tep_db_fetch_array($categories_query)) {
          $categories_count++;
          $rows++;
    // Get parent_id for subcategories if search
          if (isset($HTTP_GET_VARS['search'])) $cPath= $categories['parent_id'];
          if ((!isset($HTTP_GET_VARS['cID']) && !isset($HTTP_GET_VARS['pID']) || (isset($HTTP_GET_VARS['cID']) && ($HTTP_GET_VARS['cID'] == $categories['categories_id']))) && !isset($cInfo) && (substr($action, 0, 3) != 'new')) {
            $category_childs = array('childs_count' => tep_childs_in_category_count($categories['categories_id']));
            $category_products = array('products_count' => tep_products_in_category_count($categories['categories_id']));
            $cInfo_array = array_merge($categories, $category_childs, $category_products);
            $cInfo = new objectInfo($cInfo_array);
          }
          if (isset($cInfo) && is_object($cInfo) && ($categories['categories_id'] == $cInfo->categories_id) ) {
            echo '              <tr id="defaultSelected" class="dataTableRowSelected" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href='' . tep_href_link(FILENAME_CATEGORIES, tep_get_path($categories['categories_id'])) . ''">' . "n";
          } else {
            echo '              <tr class="dataTableRow" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href='' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&cID=' . $categories['categories_id']) . ''">' . "n";
          }
    ?>
                    <td class="dataTableContent"><?php echo '<a href="' . tep_href_link(FILENAME_CATEGORIES, tep_get_path($categories['categories_id'])) . '">' . tep_image(DIR_WS_ICONS . 'folder.gif', ICON_FOLDER) . '</a>&nbsp;<b>' . $categories['categories_name'] . '</b>'; ?></td>
     
                    <td class="dataTableContent" align="center">
                        <?php
                         $extra_sfc = (isset($HTTP_GET_VARS['cPath']) ? '&cPath='.$HTTP_GET_VARS['cPath'] : '');
                            if ( $categories['status_categ'] == 1 ) {
                                echo tep_image(DIR_WS_IMAGES . 'icon_status_green.gif', IMAGE_ICON_STATUS_GREEN, 10, 10) 
                                . '&nbsp;&nbsp;<a href="' . tep_href_link(FILENAME_CATEGORIES, 'action=setflagcateg&flag=0&cID=' . $categories['categories_id']) . $extra_sfc . '">' . tep_image(DIR_WS_IMAGES . 'icon_status_red_light.gif', IMAGE_ICON_STATUS_RED_LIGHT, 10, 10) . '</a>';
     
                            } else {
                                echo '<a href="' . tep_href_link(FILENAME_CATEGORIES, 'action=setflagcateg&flag=1&cID=' . $categories['categories_id']) . $extra_sfc . '">' . tep_image(DIR_WS_IMAGES . 'icon_status_green_light.gif', IMAGE_ICON_STATUS_GREEN_LIGHT, 10, 10) . '</a>&nbsp;&nbsp;'
                                . tep_image(DIR_WS_IMAGES . 'icon_status_red.gif', IMAGE_ICON_STATUS_RED, 10, 10);
                            }
                        ?>
                    </td>
                    <td class="dataTableContent" align="right"><?php if (isset($cInfo) && is_object($cInfo) && ($categories['categories_id'] == $cInfo->categories_id) ) { echo tep_image(DIR_WS_IMAGES . 'icon_arrow_right.gif', ''); } else { echo '<a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&cID=' . $categories['categories_id']) . '">' . tep_image(DIR_WS_IMAGES . 'icon_info.gif', IMAGE_ICON_INFO) . '</a>'; } ?>&nbsp;</td>
                  </tr>
    <?php
        }
        $products_count = 0;
        if (isset($HTTP_GET_VARS['search'])) {
    // LINE CHANGED: Added p.products_shipped_price
         $products_query = tep_db_query("select p.products_id, pd.products_name, p.products_quantity, p.products_image, p.products_price, p.products_date_added, p.products_last_modified, p.products_date_available, p.products_status, p2c.categories_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "' and p.products_id = p2c.products_id and (pd.products_name like '%" . tep_db_input($search) . "%' or p.products_model like '%" . tep_db_input($search) . "%') order by pd.products_name");
        } else {
    // LINE CHANGED: Added p.products_shipped_price   
         $products_query = tep_db_query("select p.products_id, pd.products_name, p.products_quantity, p.products_image, p.products_price, p.products_date_added, p.products_last_modified, p.products_date_available, p.products_status from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "' and p.products_id = p2c.products_id and p2c.categories_id = '" . (int)$current_category_id . "' order by pd.products_name");
        }
        while ($products = tep_db_fetch_array($products_query)) {
          $products_count++;
          $rows++;
    // Get categories_id for product if search
          if (isset($HTTP_GET_VARS['search'])) $cPath = $products['categories_id'];
          if ( (!isset($HTTP_GET_VARS['pID']) && !isset($HTTP_GET_VARS['cID']) || (isset($HTTP_GET_VARS['pID']) && ($HTTP_GET_VARS['pID'] == $products['products_id']))) && !isset($pInfo) && !isset($cInfo) && (substr($action, 0, 3) != 'new')) {
    // find out the rating average from customer reviews
            $reviews_query = tep_db_query("select (avg(reviews_rating) / 5 * 100) as average_rating from " . TABLE_REVIEWS . " where products_id = '" . (int)$products['products_id'] . "'");
            $reviews = tep_db_fetch_array($reviews_query);
            $pInfo_array = array_merge($products, $reviews);
            $pInfo = new objectInfo($pInfo_array);
          }
          if (isset($pInfo) && is_object($pInfo) && ($products['products_id'] == $pInfo->products_id) ) {
            echo '              <tr id="defaultSelected" class="dataTableRowSelected" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href='' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $products['products_id'] . '&action=new_product_preview&read=only') . ''">' . "n";
          } else {
            echo '              <tr class="dataTableRow" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href='' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $products['products_id']) . ''">' . "n";
          }
    ?>
                    <td class="dataTableContent"><?php echo '<a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $products['products_id'] . '&action=new_product_preview&read=only') . '">' . tep_image(DIR_WS_ICONS . 'preview.gif', ICON_PREVIEW) . '</a>&nbsp;' . $products['products_name']; ?></td>
                    <td class="dataTableContent" align="center">
    <?php
          if ($products['products_status'] == '1') {
            echo tep_image(DIR_WS_IMAGES . 'icon_status_green.gif', IMAGE_ICON_STATUS_GREEN, 10, 10) . '&nbsp;&nbsp;<a href="' . tep_href_link(FILENAME_CATEGORIES, 'action=setflag&flag=0&pID=' . $products['products_id'] . '&cPath=' . $cPath) . '">' . tep_image(DIR_WS_IMAGES . 'icon_status_red_light.gif', IMAGE_ICON_STATUS_RED_LIGHT, 10, 10) . '</a>';
          } else {
            echo '<a href="' . tep_href_link(FILENAME_CATEGORIES, 'action=setflag&flag=1&pID=' . $products['products_id'] . '&cPath=' . $cPath) . '">' . tep_image(DIR_WS_IMAGES . 'icon_status_green_light.gif', IMAGE_ICON_STATUS_GREEN_LIGHT, 10, 10) . '</a>&nbsp;&nbsp;' . tep_image(DIR_WS_IMAGES . 'icon_status_red.gif', IMAGE_ICON_STATUS_RED, 10, 10);
          }
    ?></td>
                    <td class="dataTableContent" align="right"><?php if (isset($pInfo) && is_object($pInfo) && ($products['products_id'] == $pInfo->products_id)) { echo tep_image(DIR_WS_IMAGES . 'icon_arrow_right.gif', ''); } else { echo '<a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $products['products_id']) . '">' . tep_image(DIR_WS_IMAGES . 'icon_info.gif', IMAGE_ICON_INFO) . '</a>'; } ?>&nbsp;</td>
                  </tr>
    <?php
        }
        $cPath_back = '';
        if (sizeof($cPath_array) > 0) {
          for ($i=0, $n=sizeof($cPath_array)-1; $i<$n; $i++) {
            if (empty($cPath_back)) {
              $cPath_back .= $cPath_array[$i];
            } else {
              $cPath_back .= '_' . $cPath_array[$i];
            }
          }
        }
        $cPath_back = (tep_not_null($cPath_back)) ? 'cPath=' . $cPath_back . '&' : '';
    ?>
                  <tr>
                    <td colspan="3"><table border="0" width="100%" cellspacing="0" cellpadding="2">
                      <tr>
                        <td class="smallText"><?php echo TEXT_CATEGORIES . '&nbsp;' . $categories_count . '<br>' . TEXT_PRODUCTS . '&nbsp;' . $products_count; ?></td>
                        <td align="right" class="smallText"><?php if (sizeof($cPath_array) > 0) echo '<a href="' . tep_href_link(FILENAME_CATEGORIES, $cPath_back . 'cID=' . $current_category_id) . '">' . tep_image_button('button_back.gif', IMAGE_BACK) . '</a>&nbsp;'; if (!isset($HTTP_GET_VARS['search'])) echo '<a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&action=new_category') . '">' . tep_image_button('button_new_category.gif', IMAGE_NEW_CATEGORY) . '</a>&nbsp;<a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&action=new_product') . '">' . tep_image_button('button_new_product.gif', IMAGE_NEW_PRODUCT) . '</a>'; ?>&nbsp;</td>
                      </tr>
                    </table></td>
                  </tr>
                </table></td>
    <?php
        $heading = array();
        $contents = array();
        switch ($action) {
          case 'new_category':
            $heading[] = array('text' => '<b>' . TEXT_INFO_HEADING_NEW_CATEGORY . '</b>');
            $contents = array('form' => tep_draw_form('newcategory', FILENAME_CATEGORIES, 'action=insert_category&cPath=' . $cPath, 'post', 'enctype="multipart/form-data"'));
            $contents[] = array('text' => TEXT_NEW_CATEGORY_INTRO);
            $category_inputs_string = '';
            $languages = tep_get_languages();
            for ($i = 0, $n = sizeof($languages); $i < $n; $i++) {
              $category_inputs_string .= '<br>' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . '&nbsp;' . tep_draw_input_field('categories_name[' . $languages[$i]['id'] . ']');
            }
            $contents[] = array('text' => '<br>' . TEXT_CATEGORIES_NAME . $category_inputs_string);
            $contents[] = array('text' => '<br>' . TEXT_CATEGORIES_IMAGE . '<br>' . tep_draw_file_field('categories_image'));
            $contents[] = array('text' => '<br>' . TEXT_SORT_ORDER . '<br>' . tep_draw_input_field('sort_order', '', 'size="2"'));
            $contents[] = array('align' => 'center', 'text' => '<br>' . tep_image_submit('button_save.gif', IMAGE_SAVE) . ' <a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath) . '">' . tep_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a>');
            break;
          case 'edit_category':
            $heading[] = array('text' => '<b>' . TEXT_INFO_HEADING_EDIT_CATEGORY . '</b>');
            $contents = array('form' => tep_draw_form('categories', FILENAME_CATEGORIES, 'action=update_category&cPath=' . $cPath, 'post', 'enctype="multipart/form-data"') . tep_draw_hidden_field('categories_id', $cInfo->categories_id));
            $contents[] = array('text' => TEXT_EDIT_INTRO);
            $category_inputs_string = '';
            $languages = tep_get_languages();
            for ($i = 0, $n = sizeof($languages); $i < $n; $i++) {
              $category_inputs_string .= '<br>' . tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . '&nbsp;' . tep_draw_input_field('categories_name[' . $languages[$i]['id'] . ']', tep_get_category_name($cInfo->categories_id, $languages[$i]['id']));
            }
            $contents[] = array('text' => '<br>' . TEXT_EDIT_CATEGORIES_NAME . $category_inputs_string);
            $contents[] = array('text' => '<br>' . tep_image(DIR_WS_CATALOG_IMAGES . $cInfo->categories_image, $cInfo->categories_name) . '<br>' . DIR_WS_CATALOG_IMAGES . '<br><b>' . $cInfo->categories_image . '</b>');
            $contents[] = array('text' => '<br>' . TEXT_EDIT_CATEGORIES_IMAGE . '<br>' . tep_draw_file_field('categories_image'));
            $contents[] = array('text' => '<br>' . TEXT_EDIT_SORT_ORDER . '<br>' . tep_draw_input_field('sort_order', $cInfo->sort_order, 'size="2"'));
            $contents[] = array('align' => 'center', 'text' => '<br>' . tep_image_submit('button_save.gif', IMAGE_SAVE) . ' <a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&cID=' . $cInfo->categories_id) . '">' . tep_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a>');
            break;
          case 'delete_category':
            $heading[] = array('text' => '<b>' . TEXT_INFO_HEADING_DELETE_CATEGORY . '</b>');
            $contents = array('form' => tep_draw_form('categories', FILENAME_CATEGORIES, 'action=delete_category_confirm&cPath=' . $cPath) . tep_draw_hidden_field('categories_id', $cInfo->categories_id));
            $contents[] = array('text' => TEXT_DELETE_CATEGORY_INTRO);
            $contents[] = array('text' => '<br><b>' . $cInfo->categories_name . '</b>');
            if ($cInfo->childs_count > 0) $contents[] = array('text' => '<br>' . sprintf(TEXT_DELETE_WARNING_CHILDS, $cInfo->childs_count));
            if ($cInfo->products_count > 0) $contents[] = array('text' => '<br>' . sprintf(TEXT_DELETE_WARNING_PRODUCTS, $cInfo->products_count));
            $contents[] = array('align' => 'center', 'text' => '<br>' . tep_image_submit('button_delete.gif', IMAGE_DELETE) . ' <a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&cID=' . $cInfo->categories_id) . '">' . tep_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a>');
            break;
          case 'move_category':
            $heading[] = array('text' => '<b>' . TEXT_INFO_HEADING_MOVE_CATEGORY . '</b>');
            $contents = array('form' => tep_draw_form('categories', FILENAME_CATEGORIES, 'action=move_category_confirm&cPath=' . $cPath) . tep_draw_hidden_field('categories_id', $cInfo->categories_id));
            $contents[] = array('text' => sprintf(TEXT_MOVE_CATEGORIES_INTRO, $cInfo->categories_name));
            $contents[] = array('text' => '<br>' . sprintf(TEXT_MOVE, $cInfo->categories_name) . '<br>' . tep_draw_pull_down_menu('move_to_category_id', tep_get_category_tree(), $current_category_id));
            $contents[] = array('align' => 'center', 'text' => '<br>' . tep_image_submit('button_move.gif', IMAGE_MOVE) . ' <a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&cID=' . $cInfo->categories_id) . '">' . tep_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a>');
            break;
          case 'delete_product':
            $heading[] = array('text' => '<b>' . TEXT_INFO_HEADING_DELETE_PRODUCT . '</b>');
            $contents = array('form' => tep_draw_form('products', FILENAME_CATEGORIES, 'action=delete_product_confirm&cPath=' . $cPath) . tep_draw_hidden_field('products_id', $pInfo->products_id));
            $contents[] = array('text' => TEXT_DELETE_PRODUCT_INTRO);
            $contents[] = array('text' => '<br><b>' . $pInfo->products_name . '</b>');
            $product_categories_string = '';
            $product_categories = tep_generate_category_path($pInfo->products_id, 'product');
            for ($i = 0, $n = sizeof($product_categories); $i < $n; $i++) {
              $category_path = '';
              for ($j = 0, $k = sizeof($product_categories[$i]); $j < $k; $j++) {
                $category_path .= $product_categories[$i][$j]['text'] . '&nbsp;&gt;&nbsp;';
              }
              $category_path = substr($category_path, 0, -16);
              $product_categories_string .= tep_draw_checkbox_field('product_categories[]', $product_categories[$i][sizeof($product_categories[$i])-1]['id'], true) . '&nbsp;' . $category_path . '<br>';
            }
            $product_categories_string = substr($product_categories_string, 0, -4);
            $contents[] = array('text' => '<br>' . $product_categories_string);
            $contents[] = array('align' => 'center', 'text' => '<br>' . tep_image_submit('button_delete.gif', IMAGE_DELETE) . ' <a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $pInfo->products_id) . '">' . tep_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a>');
            break;
          case 'move_product':
            $heading[] = array('text' => '<b>' . TEXT_INFO_HEADING_MOVE_PRODUCT . '</b>');
            $contents = array('form' => tep_draw_form('products', FILENAME_CATEGORIES, 'action=move_product_confirm&cPath=' . $cPath) . tep_draw_hidden_field('products_id', $pInfo->products_id));
            $contents[] = array('text' => sprintf(TEXT_MOVE_PRODUCTS_INTRO, $pInfo->products_name));
            $contents[] = array('text' => '<br>' . TEXT_INFO_CURRENT_CATEGORIES . '<br><b>' . tep_output_generated_category_path($pInfo->products_id, 'product') . '</b>');
            $contents[] = array('text' => '<br>' . sprintf(TEXT_MOVE, $pInfo->products_name) . '<br>' . tep_draw_pull_down_menu('move_to_category_id', tep_get_category_tree(), $current_category_id));
            $contents[] = array('align' => 'center', 'text' => '<br>' . tep_image_submit('button_move.gif', IMAGE_MOVE) . ' <a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $pInfo->products_id) . '">' . tep_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a>');
            break;
          case 'copy_to':
            $heading[] = array('text' => '<b>' . TEXT_INFO_HEADING_COPY_TO . '</b>');
            $contents = array('form' => tep_draw_form('copy_to', FILENAME_CATEGORIES, 'action=copy_to_confirm&cPath=' . $cPath) . tep_draw_hidden_field('products_id', $pInfo->products_id));
            $contents[] = array('text' => TEXT_INFO_COPY_TO_INTRO);
            $contents[] = array('text' => '<br>' . TEXT_INFO_CURRENT_CATEGORIES . '<br><b>' . tep_output_generated_category_path($pInfo->products_id, 'product') . '</b>');
            $contents[] = array('text' => '<br>' . TEXT_CATEGORIES . '<br>' . tep_draw_pull_down_menu('categories_id', tep_get_category_tree(), $current_category_id));
            $contents[] = array('text' => '<br>' . TEXT_HOW_TO_COPY . '<br>' . tep_draw_radio_field('copy_as', 'link', true) . ' ' . TEXT_COPY_AS_LINK . '<br>' . tep_draw_radio_field('copy_as', 'duplicate') . ' ' . TEXT_COPY_AS_DUPLICATE);
            $contents[] = array('align' => 'center', 'text' => '<br>' . tep_image_submit('button_copy.gif', IMAGE_COPY) . ' <a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $pInfo->products_id) . '">' . tep_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a>');
            break;
          default:
            if ($rows > 0) {
              if (isset($cInfo) && is_object($cInfo)) { // category info box contents
                $category_path_string = '';
                $category_path = tep_generate_category_path($cInfo->categories_id);
                for ($i=(sizeof($category_path[0])-1); $i>0; $i--) {
                  $category_path_string .= $category_path[0][$i]['id'] . '_';
                }
                $category_path_string = substr($category_path_string, 0, -1);
                $heading[] = array('text' => '<b>' . $cInfo->categories_name . '</b>');
                $contents[] = array('align' => 'center', 'text' => '<a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $category_path_string . '&cID=' . $cInfo->categories_id . '&action=edit_category') . '">' . tep_image_button('button_edit.gif', IMAGE_EDIT) . '</a> <a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $category_path_string . '&cID=' . $cInfo->categories_id . '&action=delete_category') . '">' . tep_image_button('button_delete.gif', IMAGE_DELETE) . '</a> <a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $category_path_string . '&cID=' . $cInfo->categories_id . '&action=move_category') . '">' . tep_image_button('button_move.gif', IMAGE_MOVE) . '</a>');
                $contents[] = array('text' => '<br>' . TEXT_DATE_ADDED . ' ' . tep_date_short($cInfo->date_added));
                if (tep_not_null($cInfo->last_modified)) $contents[] = array('text' => TEXT_LAST_MODIFIED . ' ' . tep_date_short($cInfo->last_modified));
                $contents[] = array('text' => '<br>' . tep_info_image($cInfo->categories_image, $cInfo->categories_name, HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT) . '<br>' . $cInfo->categories_image);
                $contents[] = array('text' => '<br>' . TEXT_SUBCATEGORIES . ' ' . $cInfo->childs_count . '<br>' . TEXT_PRODUCTS . ' ' . $cInfo->products_count);
              } elseif (isset($pInfo) && is_object($pInfo)) { // product info box contents
                $heading[] = array('text' => '<b>' . tep_get_products_name($pInfo->products_id, $languages_id) . '</b>');
    // LINE CHANGED: MOD - QT Pro
    //          $contents[] = array('align' => 'center', 'text' => '<a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $pInfo->products_id . '&action=new_product') . '">' . tep_image_button('button_edit.gif', IMAGE_EDIT) . '</a> <a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $pInfo->products_id . '&action=delete_product') . '">' . tep_image_button('button_delete.gif', IMAGE_DELETE) . '</a> <a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $pInfo->products_id . '&action=move_product') . '">' . tep_image_button('button_move.gif', IMAGE_MOVE) . '</a> <a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $pInfo->products_id . '&action=copy_to') . '">' . tep_image_button('button_copy_to.gif', IMAGE_COPY_TO) . '</a>');
                $contents[] = array('align' => 'center', 'text' => '<a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $pInfo->products_id . '&action=new_product') . '">' . tep_image_button('button_edit.gif', IMAGE_EDIT) . '</a> <a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $pInfo->products_id . '&action=delete_product') . '">' . tep_image_button('button_delete.gif', IMAGE_DELETE) . '</a> <a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $pInfo->products_id . '&action=move_product') . '">' . tep_image_button('button_move.gif', IMAGE_MOVE) . '</a> <a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $pInfo->products_id . '&action=copy_to') . '">' . tep_image_button('button_copy_to.gif', IMAGE_COPY_TO) . '</a><a href="' . tep_href_link("stock.php", 'product_id=' . $pInfo->products_id) . '">' . tep_image_button('button_stock.gif', "Stock") . '</a>');
                $contents[] = array('text' => '<br>' . TEXT_DATE_ADDED . ' ' . tep_date_short($pInfo->products_date_added));
                if (tep_not_null($pInfo->products_last_modified)) $contents[] = array('text' => TEXT_LAST_MODIFIED . ' ' . tep_date_short($pInfo->products_last_modified));
                if (date('Y-m-d') < $pInfo->products_date_available) $contents[] = array('text' => TEXT_DATE_AVAILABLE . ' ' . tep_date_short($pInfo->products_date_available));
                $contents[] = array('text' => '<br>' . tep_info_image($pInfo->products_image, $pInfo->products_name, SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '<br>' . $pInfo->products_image);
                $contents[] = array('text' => '<br>' . TEXT_PRODUCTS_PRICE_INFO . ' ' . $currencies->format($pInfo->products_price) . '<br>' . TEXT_PRODUCTS_QUANTITY_INFO . ' ' . $pInfo->products_quantity);
                $contents[] = array('text' => '<br>' . TEXT_PRODUCTS_AVERAGE_RATING . ' ' . number_format($pInfo->average_rating, 2) . '%');
              }
            } else { // create category/product info
              $heading[] = array('text' => '<b>' . EMPTY_CATEGORY . '</b>');
              $contents[] = array('text' => TEXT_NO_CHILD_CATEGORIES_OR_PRODUCTS);
            }
            break;
        }
        if ( (tep_not_null($heading)) && (tep_not_null($contents)) ) {
          echo '            <td width="25%" valign="top">' . "n";
          $box = new box;
          echo $box->infoBox($heading, $contents);
          echo '            </td>' . "n";
        }
    ?>
              </tr>
            </table></td>
          </tr>
        </table>
    <?php
      }
    ?>
        </td>
    <!-- body_text_eof //-->
      </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');
    ?>
    pgmarshall
    _______________________________

  8. #18
    Chitman
    Guest


    Default Re: New Products Project

    I fixed it by comparing my files to yours. Thank You pgmarshall!

    Last edited by Chitman; 04-16-2009 at 10:39 AM.

  9. #19
    Chitman
    Guest


    Default Re: New Products Project

    I am using RC3. For some reason i cant seem to find the products_new.php file in the /fallback directory. I found a products_new.tpl.php but when I copy and update that no changes take place. When I add a product it show up no matter if i click the "add to new products" or not.

    Thank you,

    Chitman

  10. #20
    osCMax Development Team

    New Products Project

    pgmarshall's Avatar
    Join Date
    Feb 2009
    Location
    London
    Posts
    3,517
    Contribute If you enjoy reading the
    content here, click the below
    image to support our site.
    Click Here To Contribute To Our Site

    Total Contributions For

    pgmarshall     $ 35.00
    Rep Power
    77


    Default Re: New Products Project

    Sorry the product_new.tpl.php file is in the content folder ...

    catalog/templates/fallback/content/
    You have to do this step otherwise the whole thing will not work.

    Post your products_new.tpl.php code - I have editted the RC4 versions so it might be slightly different.

    Hope this fixes it for you.
    Last edited by pgmarshall; 04-17-2009 at 12:31 AM.
    pgmarshall
    _______________________________

Page 2 of 5 First 1234 ... LastLast

Similar Threads

  1. Replies: 0
    Last Post: 09-22-2008, 11:00 AM
  2. Replies: 0
    Last Post: 09-21-2008, 01:53 AM
  3. need products to display on products.php not index.php, products not displaying below
    By libraschld in forum osCommerce 2.2 Modification Help
    Replies: 0
    Last Post: 09-20-2008, 02:40 AM
  4. "Define About Page" Project
    By allwebnow in forum osCMax v2 Features Discussion
    Replies: 1
    Last Post: 02-29-2008, 12:46 AM
  5. The josC! Project: osCommerce and Joomla CMS
    By michael_s in forum New osCommerce Contributions
    Replies: 0
    Last Post: 12-08-2007, 02:10 AM

Bookmarks

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •