Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Recently installed Define Content


Guest

Recommended Posts

Error when at catagories group with <!-- START: added for TinyMCe --> section installed

 

 

Warning: Variable passed to each() is not an array or object in /home/comtekte/public_html/admin/categories.php on line 410

 

Warning: reset() [function.reset]: Passed variable is not an array or object in /home/comtekte/public_html/admin/categories.php on line 413

 

 

]<?php
/*
 $Id: categories.php 1755 2007-12-21 14:02:36Z hpdl $
 adapted for Separate Pricing Per Customer v4.2 2007/08/05, Hide products and categories from groups 2008/08/03

 osCommerce, Open Source E-Commerce Solutions
http://www.oscommerce.com

 Copyright © 2007 osCommerce

 Released under the GNU General Public License
*/

 require('includes/application_top.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;
     case 'insert_category':
     case 'update_category':
       if (isset($HTTP_POST_VARS['categories_id'])) $categories_id = tep_db_prepare_input($HTTP_POST_VARS['categories_id']);
// BOF Separate Pricing Per Customer, hide categories from groups
       $hide_cats_from_these_groups = '@,';
         if ( $HTTP_POST_VARS['hide_cat'] ) { // if any of the checkboxes are checked
             foreach($HTTP_POST_VARS['hide_cat'] as $val) {
             $hide_cats_from_these_groups .= tep_db_prepare_input($val).','; 
             } // end foreach
          }
          $hide_cats_from_these_groups = substr($hide_cats_from_these_groups,0,strlen($hide_cats_from_these_groups)-1); // remove last comma

       $sort_order = tep_db_prepare_input($HTTP_POST_VARS['sort_order']);

       $sql_data_array = array('sort_order' => $sort_order,
       'categories_hide_from_groups' => $hide_cats_from_these_groups);
// EOF Separate Pricing Per Customer, hide categories from groups

       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]));

         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'] . "'");
         }
       }

       $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 . "'");
       }

       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));
       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] . "'");
           // BOF Separate Pricing Per Customer
           tep_db_query("delete from " . TABLE_PRODUCTS_GROUPS . " where products_id = '" . tep_db_input($product_id) . "' ");
           // EOF Separate Pricing Per Customer
         }

         $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';
// BOF Separate Pricing Per Customer, hide products and categories from groups
   $hide_from_these_groups = '@,';
            if ( $HTTP_POST_VARS['hide'] ) { // if any of the checkboxes are checked
                foreach($HTTP_POST_VARS['hide'] as $val) {
                $hide_from_these_groups .= tep_db_prepare_input($val).','; 
                } // end foreach
             }
    $hide_from_these_groups = substr($hide_from_these_groups,0,strlen($hide_from_these_groups)-1); // remove last comma
// EOF Separate Pricing Per Customer, hide products and categories from groups

         $sql_data_array = array('products_quantity' => tep_db_prepare_input($HTTP_POST_VARS['products_quantity']),
                                 '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']),
// BOF Separate Price Per Customer, hide for these groups modification
                                 'products_hide_from_groups' => $hide_from_these_groups,
// EOF Separate Price Per Customer, hide for these groups modification
                                 '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 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");
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 ($_POST['sppcoption'][$customers_group['customers_group_id']]) { // this is checking if the check box is checked
     if ( ($_POST['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 = '" . $_POST['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 (($_POST['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 (($_POST['sppcoption'][$customers_group['customers_group_id']]) && ($_POST['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'] . "', '" . $_POST['sppcprice'][$customers_group['customers_group_id']] . "')");
   $attributes = tep_db_fetch_array($attributes_query);
 }
}
// EOF Separate Pricing 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') {
           $product_query = tep_db_query("select 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);

           tep_db_query("insert into " . TABLE_PRODUCTS . " (products_quantity, products_model,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']) . "', '" . 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 . "')");
// BOF Separate Pricing Per Customer originally 2006-04-26 by Infobroker
     $cg_price_query = tep_db_query("select customers_group_id, customers_group_price from " . TABLE_PRODUCTS_GROUPS . " where products_id = '" . $products_id . "' order by customers_group_id");

// insert customer group prices in table products_groups when there are any for the copied product
   if (tep_db_num_rows($cg_price_query) > 0) {
     while ( $cg_prices = tep_db_fetch_array($cg_price_query)) {
       tep_db_query("insert into " . TABLE_PRODUCTS_GROUPS . " (customers_group_id, customers_group_price, products_id) values ('" . (int)$cg_prices['customers_group_id'] . "', '" . tep_db_input($cg_prices['customers_group_price']) . "', '" . (int)$dup_products_id . "')");
     } // end while ( $cg_prices = tep_db_fetch_array($cg_price_query))
   } // end if (tep_db_num_rows($cg_price_query) > 0)

// EOF Separate Pricing Per Customer originally 2006-04-26 by Infobroker
           $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>
<!-- START: added for TinyMCe -->
<?php // get language code for TinyMCE
 $lang_code = 'en';
 while (list($key, $lang) = each($lng->catalog_languages)) {
 	if ($lang['directory']==$language) { $lang_code = $key; break; }
 }
 reset($lng->catalog_languages); ?>
<script language="javascript" type="text/javascript">
   var osc_language = '<?php echo $lang_code; ?>';
   var code_protect = '';
   var osc_css = '<?php echo DIR_WS_CATALOG; ?>';
   var osc_images = '<?php echo DIR_WS_ADMIN; ?>';
   var osc_baseurl = '<?php echo DIR_WS_CATALOG; ?>';
</script>
<?php if (file_exists('external/tiny_mce/tiny_mce_gzip.js')) { ?>
<script type="text/javascript" src="external/tiny_mce/tiny_mce_gzip.js"></script>
<script type="text/javascript" src="external/tiny_mce/tinyMCEGZinit.js"></script>
<?php } else { ?>
<script type="text/javascript" src="external/tiny_mce/tiny_mce.js"></script>
<?php } ?>
<script type="text/javascript" src="external/tiny_mce/tinyMCEinit.js"></script>
<!-- END: added for TinyMCe -->
</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 //-->
   <td width="100%" valign="top">
<?php
 if ($action == 'new_product') { 
   $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' => '',
// BOF SPPC hide from groups mod
                      'products_hide_from_groups' => '',
// EOF SPPC hide from groups mod
                      'manufacturers_id' => '');

   $pInfo = new objectInfo($parameters);

   if (isset($HTTP_GET_VARS['pID']) && empty($HTTP_POST_VARS)) { // BOF SPPC hide from groups mod
     $product_query = tep_db_query("select 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.products_hide_from_groups, 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 . "'"); // EOF SPPC hide from groups mod
     $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') . ' ' . tep_draw_radio_field('products_status', '1', $in_status) . ' ' . TEXT_PRODUCT_AVAILABLE . ' ' . tep_draw_radio_field('products_status', '0', $out_status) . ' ' . 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') . ' '; ?><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') . ' ' . 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>
           <td class="main"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . 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') . ' ' . 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') . ' ' . 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') . ' ' . tep_draw_input_field('products_price_gross', $pInfo->products_price, 'OnKeyUp="updateNet()"'); ?></td>
         </tr>
         <tr>
           <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
         </tr>
<script language="javascript"><!--
updateGross();
//--></script>
<!-- BOF Separate Pricing Per Customer -->
<?php
// the query is changed to also get the results for group 0 (retail)
// so that the results of the query can be used for the hide products mod too
   $customers_group_query = tep_db_query("select customers_group_id, customers_group_name from " . TABLE_CUSTOMERS_GROUPS . " 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) {
// store results in an array here for the hide product modification
      $_hide_customers_group[] = $customers_group;
// if customer group is retail we stop here and continue with the next group
      if ($customers_group['customers_group_id'] == 0) continue;
      $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"><?php echo TEXT_CUSTOMERS_GROUPS_NOTE; ?>
</td>
   </tr>
<?php
$header = true;
} // end if (!header), makes sure this is only shown once
?>
       <tr bgcolor="#ebebff">
      <td class="main"><?php // only change in version 4.1.1
            if (isset($pInfo->sppcoption)) {
   echo tep_draw_checkbox_field('sppcoption[' . $customers_group['customers_group_id'] . ']', 'sppcoption[' . $customers_group['customers_group_id'] . ']', (isset($pInfo->sppcoption[ $customers_group['customers_group_id']])) ? 1: 0);
     } else {
     echo tep_draw_checkbox_field('sppcoption[' . $customers_group['customers_group_id'] . ']', 'sppcoption[' . $customers_group['customers_group_id'] . ']', true) . ' ' . $customers_group['customers_group_name'];
     }
?>
 </td>
      <td class="main"><?php
      if ($attributes = tep_db_fetch_array($attributes_query)) {
      echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . 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') . ' ' . 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>
<!-- EOF Separate Pricing Per Customer -->
<!-- BOF SPPC hide from groups mod -->
         <tr>
           <td colspan="2" class="main" ><?php echo TEXT_HIDE_PRODUCTS_FROM_GROUP; ?></td>
         </tr>
<?php   
  $hide_from_groups_array = explode(',',$pInfo->products_hide_from_groups);
  $hide_from_groups_array = array_slice($hide_from_groups_array, 1); // remove "@" from the array
  foreach ($_hide_customers_group as $key => $hide_customers_group) {
?>
     <tr bgcolor="#ebebff">
      <td class="main" colspan="2"><?php 
     if (isset($pInfo->hide)) {
       echo tep_draw_checkbox_field('hide[' . $hide_customers_group['customers_group_id'] . ']',  $hide_customers_group['customers_group_id'] , (isset($pInfo->hide[ $hide_customers_group['customers_group_id']])) ? 1: 0);
     } else {
       echo tep_draw_checkbox_field('hide[' . $hide_customers_group['customers_group_id'] . ']',  $hide_customers_group['customers_group_id'] , (in_array($hide_customers_group['customers_group_id'], $hide_from_groups_array)) ? 1: 0);
     } ?>  <?php echo $hide_customers_group['customers_group_name']; ?></td>
     </tr>
<?php
       } // end foreach ($_hide_customers_group as $key => $hide_customers_group)
?>
         <tr>
           <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
         </tr>
<!-- EOF SPPC hide from groups mod -->
<?php
   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']); ?> </td>
               <td class="main"><?php echo tep_draw_textarea_field('products_description[' . $languages[$i]['id'] . ']', 'soft', '100', '20', (isset($products_description[$languages[$i]['id']]) ? stripslashes($products_description[$languages[$i]['id']]) : tep_get_products_description($pInfo->products_id, $languages[$i]['id'])), 'class="TinyMCE"'); ?></td>
             </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') . ' ' . 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') . ' ' . 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') . ' ' . tep_draw_file_field('products_image') . '<br>' . tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . $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>
           <td class="main"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . 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') . ' ' . 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) . '  <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 {
     $product_query = tep_db_query("select 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_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']) . ' ' . $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 Separate Pricing per Customer
       if (is_array($value)) {
         while (list($k, $v) = each($value)) {
         echo tep_draw_hidden_field($key . '[' . $k . ']', htmlspecialchars(stripslashes($v)));
         }
       } else {
// EOF 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"') . '  ';

     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 '  <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>
<?php // BOF SPPC hide products and categories from groups ?>
               <td class="dataTableHeadingContent" align="center"><?php echo TABLE_HEADING_HIDE_CATEGORIES; ?></td>
<?php // EOF SPPC hide products and categories from groups ?>
               <td class="dataTableHeadingContent" align="center"><?php echo TABLE_HEADING_STATUS; ?></td>
               <td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_ACTION; ?> </td>
             </tr>
<?php
   $categories_count = 0;
   $rows = 0;
// BOF SPPC hide products and categories from groups
   $customers_group_query = tep_db_query("select customers_group_id, customers_group_name from " . TABLE_CUSTOMERS_GROUPS . " order by customers_group_id");
   while ($customer_groups = tep_db_fetch_array($customers_group_query)) {
     $customers_groups[] = array('id' => $customer_groups['customers_group_id'], 'text' => $customer_groups['customers_group_name']);  
   }
   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.categories_hide_from_groups 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.categories_hide_from_groups 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");
   }
// EOF SPPC hide products and categories from groups
   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> <b>' . $categories['categories_name'] . '</b>'; ?></td>
<?php // BOF SPPC hide products and categories from groups ?>
      <td class="dataTableContent" align="center"><?php
   $hide_cat_from_groups_array = explode(',', $categories['categories_hide_from_groups']);
   $hide_cat_from_groups_array = array_slice($hide_cat_from_groups_array, 1); // remove "@" from the array
  $category_hidden_from_string = '';
  if (LAYOUT_HIDE_FROM == '1') {
        for ($i = 0; $i < count($customers_groups); $i++) {
          if (in_array($customers_groups[$i]['id'], $hide_cat_from_groups_array)) {
          $category_hidden_from_string .= $customers_groups[$i]['text'] . ', '; 
          }
        } // end for ($i = 0; $i < count($customers_groups); $i++)
        $category_hidden_from_string = rtrim($category_hidden_from_string); // remove space on the right
        $category_hidden_from_string = substr($category_hidden_from_string,0,strlen($category_hidden_from_string) -1); // remove last comma
        if (!tep_not_null($category_hidden_from_string)) { 
        $category_hidden_from_string = TEXT_GROUPS_NONE; 
        }
        $category_hidden_from_string = TEXT_HIDDEN_FROM_GROUPS . $category_hidden_from_string;
        // if the string in the database field is @, everything will work fine, however tep_not_null
        // will not discover the associative array is empty therefore the second check on the value
    if (tep_not_null($hide_cat_from_groups_array) && tep_not_null($hide_cat_from_groups_array[0])) {
       echo tep_image(DIR_WS_ICONS . 'tick_black.gif', $category_hidden_from_string, 20, 16);
     } else {
       echo tep_image(DIR_WS_IMAGES . 'pixel_trans.gif', $category_hidden_from_string, 20, 16);
    }
  } else {
// default layout: icons for all groups
     for ($i = 0; $i < count($customers_groups); $i++) {
       if (in_array($customers_groups[$i]['id'], $hide_cat_from_groups_array)) {
         echo tep_image(DIR_WS_ICONS . 'icon_tick.gif', $customers_groups[$i]['text'], 11, 11) . '  ';
       } else {
         echo tep_image(DIR_WS_IMAGES . 'pixel_trans.gif', '', 11, 11) . '  ';
       }
     }
  }
?></td><?php // EOF SPPC hide products and categories from groups ?>
               <td class="dataTableContent" align="center"> </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>'; } ?> </td>
             </tr>
<?php
   }

   $products_count = 0;
   if (isset($HTTP_GET_VARS['search'])) {
// BOF SPPC hide products from groups
     $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, p.products_hide_from_groups, 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) . "%' order by pd.products_name");
   } else {
     $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, p.products_hide_from_groups 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");
// EOF SPPC hide products from groups
   }
   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> ' . $products['products_name']; ?></td>
<?php  //BOF SPPC hide products and categories from groups ?>
     <td class="dataTableContent" align="center"><?php
   $hide_prods_from_groups_array = explode(',', $products['products_hide_from_groups']);
   $hide_prods_from_groups_array = array_slice($hide_prods_from_groups_array, 1); // remove "@" from the array
     if (LAYOUT_HIDE_FROM == '1') {
       $product_hidden_from_string = '';
        for ($i = 0; $i < count($customers_groups); $i++) {
          if (in_array($customers_groups[$i]['id'], $hide_prods_from_groups_array)) {
          $product_hidden_from_string .= $customers_groups[$i]['text'] . ', '; 
          }
        } // end for ($i = 0; $i < count($customers_groups); $i++)
        $product_hidden_from_string = rtrim($product_hidden_from_string); // remove space on the right
        $product_hidden_from_string = substr($product_hidden_from_string,0,strlen($product_hidden_from_string) -1); // remove last comma
  if (tep_not_null($hide_prods_from_groups_array)&& tep_not_null($hide_prods_from_groups_array[0])) { 
        $product_hidden_from_string = TEXT_GROUPS_NONE; 
        }
        $product_hidden_from_string = TEXT_HIDDEN_FROM_GROUPS . $product_hidden_from_string;
  if (tep_not_null($hide_prods_from_groups_array)) {
       echo tep_image(DIR_WS_ICONS . 'tick_black.gif', $product_hidden_from_string, 20, 16);
    } else {
       echo tep_image(DIR_WS_IMAGES . 'pixel_trans.gif', $product_hidden_from_string, 20, 16);
    }
  } else {
// default layout: icons for all groups
     for ($i = 0; $i < count($customers_groups); $i++) {
       if (in_array($customers_groups[$i]['id'], $hide_prods_from_groups_array)) {
         echo tep_image(DIR_WS_ICONS . 'icon_tick.gif', $customers_groups[$i]['text'], 11, 11) . '  ';
       } else {
         echo tep_image(DIR_WS_IMAGES . 'pixel_trans.gif', '', 11, 11) . '  ';
       }
     }
  } // end if/else (LAYOUT_HIDE_FROM == '1')
?></td><?php // EOF SPPC hide products and categories from groups ?>
               <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) . '  <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>  ' . 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>'; } ?> </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 . ' ' . $categories_count . '<br>' . TEXT_PRODUCTS . ' ' . $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> '; 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> <a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&action=new_product') . '">' . tep_image_button('button_new_product.gif', IMAGE_NEW_PRODUCT) . '</a>'; ?> </td>
                 </tr>
               </table></td>
             </tr>
           </table></td>
<?php
   $heading = array();
   $contents = array();
// BOF SPPC hide products and categories from groups
   $hide_cat_from_groups_array = explode(',',$cInfo->categories_hide_from_groups);
   $hide_cat_from_groups_array = array_slice($hide_cat_from_groups_array, 1); // remove "@" from the array
   $hide_product_from_groups_array = explode(',',$pInfo->products_hide_from_groups);
   $hide_product_from_groups_array = array_slice($hide_product_from_groups_array, 1); // remove "@" from the array
// EOF SPPC hide products and categories from groups
   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']) . ' ' . 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"'));
// BOF SPPC hide products and categories from groups
       $category_hide_string = '<br>'. "\n" . TEXT_HIDE_CATEGORIES_FROM_GROUPS;
         for ($i = 0; $i < count($customers_groups); $i++) {
           $category_hide_string .= '<br>' . "\n" . tep_draw_checkbox_field('hide_cat[' . $customers_groups[$i]['id'] . ']',  $customers_groups[$i]['id'] , 0) . '  ' . $customers_groups[$i]['text']; 
         }
       $contents[] = array('text' => $category_hide_string);
// EOF SPPC hide products and categories from groups
       $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']) . ' ' . 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"'));
// BOF SPPC hide products and categories from groups
       $category_hide_string = '<br>'. "\n" . TEXT_HIDE_CATEGORIES_FROM_GROUPS;
        for ($i = 0; $i < count($customers_groups); $i++) {
           $category_hide_string .= '<br>' . "\n" . tep_draw_checkbox_field('hide_cat[' . $customers_groups[$i]['id'] . ']',  $customers_groups[$i]['id'] , (in_array($customers_groups[$i]['id'], $hide_cat_from_groups_array)) ? 1: 0) . '  ' . $customers_groups[$i]['text']; 
         }
       $contents[] = array('text' => $category_hide_string);
// EOF SPPC hide products and categories from groups
       $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'] . ' > ';
         }
         $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) . ' ' . $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);
// BOF SPPC hide products and categories from groups
      $category_hidden_from_string = '';
        for ($i = 0; $i < count($customers_groups); $i++) {
          if (in_array($customers_groups[$i]['id'], $hide_cat_from_groups_array)) {
          $category_hidden_from_string .= $customers_groups[$i]['text'] . ', '; 
          }
        } // end for ($i = 0; $i < count($customers_groups); $i++)
        $category_hidden_from_string = rtrim($category_hidden_from_string); // remove space on the right
        $category_hidden_from_string = substr($category_hidden_from_string,0,strlen($category_hidden_from_string) -1); // remove last comma
        if (!tep_not_null($category_hidden_from_string)) { 
        $category_hidden_from_string = TEXT_GROUPS_NONE; 
        }
        $category_hidden_from_string = '<br>'. "\n" . TEXT_HIDDEN_FROM_GROUPS . $category_hidden_from_string;
           $contents[] = array('text' => $category_hidden_from_string);
// EOF SPPC hide products and categories from groups
         } elseif (isset($pInfo) && is_object($pInfo)) { // product info box contents
           $heading[] = array('text' => '<b>' . tep_get_products_name($pInfo->products_id, $languages_id) . '</b>');

           $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('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) . '%');
// BOF SPPC hide products and categories from groups
      $product_hidden_from_string = '';
        for ($i = 0; $i < count($customers_groups); $i++) {
          if (in_array($customers_groups[$i]['id'], $hide_product_from_groups_array)) {
            $product_hidden_from_string .= $customers_groups[$i]['text'] . ', '; 
          }
        } // end for ($i = 0; $i < count($customers_groups); $i++)
        $product_hidden_from_string = rtrim($product_hidden_from_string); // remove space on the right
        $product_hidden_from_string = substr($product_hidden_from_string,0,strlen($product_hidden_from_string) -1); // remove last comma
        if (!tep_not_null($product_hidden_from_string)) { 
          $product_hidden_from_string = TEXT_GROUPS_NONE; 
        }
        $product_hidden_from_string = '<br>'. "\n" . TEXT_HIDDEN_FROM_GROUPS . $product_hidden_from_string;
           $contents[] = array('text' => $product_hidden_from_string);
// EOF SPPC hide products and categories from groups
         }
       } 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'); ?>

Edited by marvinlange
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...