Jump to content


Corporate Sponsors


Latest News: (loading..)

* * * * * 1 votes

MATCHING PRODUCTS CROSS-SELL


119 replies to this topic

#101 lindsayanng

  • Community Member
  • 4,258 posts
  • Real Name:Lindsay
  • Gender:Female
  • Location:Milford, Connecticut U.S.A.

Posted 09 August 2008, 04:49

i was trying at it will not let me!! i keep getting blank posts! hold on. i will try a different way
A great place for newbies to start
Road Map to oscommerce File Structure
DO NOT PM ME FOR HELP. My time is valuable, unless i ask you to PM me, please dont. You will get better help if you post publicly. I am not as good at this as you think anyways!

HOWEVER, you can visit my blog (go to my profile to see it) and post a question there, i will find time to get back and answer you

Proud Memeber of the CODE BREAKERS CLUB!!

#102 lindsayanng

  • Community Member
  • 4,258 posts
  • Real Name:Lindsay
  • Gender:Female
  • Location:Milford, Connecticut U.S.A.

Posted 09 August 2008, 04:50

<?php
/*
$Id: categories.php,v 1.146 2003/07/11 14:40:27 hpdl Exp $

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

Copyright © 2003 osCommerce

Released under the GNU General Public License
*/

require('includes/application_top.php');
// BOF: Additional Images
require(DIR_WS_CLASSES . 'alterimage.php');
// EOF: Additional Images

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

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

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

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++) {
// BOF: Additional Images
// get image names from database
$delimg_query = tep_db_query("select popup_images, medium_images, thumb_images from " . TABLE_ADDITIONAL_IMAGES . " where products_id = '" . (int)$product_id . "'");
// delete image names from database
tep_db_query("delete from " . TABLE_ADDITIONAL_IMAGES . " where products_id = '" . (int)$product_id . "'");
// remove images from server if no other product requires then
while ($delimg = tep_db_fetch_array($delimg_query)){
if (tep_not_null($delimg['popup_images']) && file_exists(DIR_FS_CATALOG_IMAGES.$delimg['popup_images']) )
if ( !tep_is_image_still_used($delimg['popup_images']) )
if (!unlink (DIR_FS_CATALOG_IMAGES.$delimg['popup_images']))
$messageStack->add_session(ERROR_DEL_IMG_XTRA.$delimg['popup_images'], 'error');
else
$messageStack->add_session(SUCCESS_DEL_IMG_XTRA.$delimg['popup_images'], 'success');
if (tep_not_null($delimg['medium_images']) && file_exists(DIR_FS_CATALOG_IMAGES.$delimg['medium_images']) )
if ( !tep_is_image_still_used($delimg['medium_images']) )
if (!unlink (DIR_FS_CATALOG_IMAGES.$delimg['medium_images']))
$messageStack->add_session(ERROR_DEL_IMG_XTRA.$delimg['medium_images'], 'error');
else
$messageStack->add_session(SUCCESS_DEL_IMG_XTRA.$delimg['thumb_images'], 'success');
if (tep_not_null($delimg['thumb_images']) && file_exists(DIR_FS_CATALOG_IMAGES.$delimg['thumb_images']) )
if ( !tep_is_image_still_used($delimg['thumb_images']) )
if (!unlink (DIR_FS_CATALOG_IMAGES.$delimg['thumb_images']))
$messageStack->add_session(ERROR_DEL_IMG_XTRA.$delimg['thumb_images'], 'error');
else
$messageStack->add_session(SUCCESS_DEL_IMG_XTRA.$delimg['thumb_images'], 'success');
}
// EOF: Additional Images
tep_db_query("delete from " . TABLE_PRODUCTS_TO_CATEGORIES . " where products_id = '" . (int)$product_id . "' and categories_id = '" . (int)$product_categories[$i] . "'");
}

$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' => 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']),
// Matching Products Contrib
'products_matching' => tep_db_prepare_input($HTTP_POST_VARS['products_matching']),
'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']));

// BOF: Additional Images
/* old code:
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']);
} */
$sql_data_array['products_image_description'] = tep_db_prepare_input($HTTP_POST_VARS['products_image_description']);

// get old image names to handle image maintenance
$del_products_query = tep_db_query("select products_image, products_image_med, products_image_pop from " . TABLE_PRODUCTS . " where products_id = '" . (int)$products_id . "'");
$del_products = tep_db_fetch_array($del_products_query);

// set image names for SQL query
if (isset($HTTP_POST_VARS['products_image']) && tep_not_null($HTTP_POST_VARS['products_image']) && ($HTTP_POST_VARS['products_image'] != 'none')) {
if ($HTTP_POST_VARS['products_image'] != $del_products['products_image']) {
$sql_data_array['products_image'] = tep_db_prepare_input($HTTP_POST_VARS['products_image']);
} elseif (isset($HTTP_POST_VARS['delete_image_def']) && tep_not_null($HTTP_POST_VARS['delete_image_def'])) {
tep_db_query("update " . TABLE_PRODUCTS . " set products_image = NULL where products_id = '" . (int)$products_id . "' limit 1");
}
}
if (isset($HTTP_POST_VARS['products_image_med']) && tep_not_null($HTTP_POST_VARS['products_image_med']) && ($HTTP_POST_VARS['products_image_med'] != 'none')) {
if ($HTTP_POST_VARS['products_image_med'] != $del_products['products_image_med']) {
$sql_data_array['products_image_med'] = tep_db_prepare_input($HTTP_POST_VARS['products_image_med']);
} elseif (isset($HTTP_POST_VARS['delete_image_med']) && tep_not_null($HTTP_POST_VARS['delete_image_med'])) {
tep_db_query("update " . TABLE_PRODUCTS . " set products_image_med = NULL where products_id = '" . (int)$products_id . "' limit 1");
}
}
if (isset($HTTP_POST_VARS['products_image_pop']) && tep_not_null($HTTP_POST_VARS['products_image_pop']) && ($HTTP_POST_VARS['products_image_pop'] != 'none')) {
if ($HTTP_POST_VARS['products_image_pop'] != $del_products['products_image_pop']) {
$sql_data_array['products_image_pop'] = tep_db_prepare_input($HTTP_POST_VARS['products_image_pop']);
} elseif (isset($HTTP_POST_VARS['delete_image_pop']) && tep_not_null($HTTP_POST_VARS['delete_image_pop'])) {
tep_db_query("update " . TABLE_PRODUCTS . " set products_image_pop = NULL where products_id = '" . (int)$products_id . "' limit 1");
}
}
// EOF: Additional Images

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

$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]),
'short_desc' => tep_db_prepare_input($HTTP_POST_VARS['short_desc'][$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');
}

// BOF: Additional Images
// delete old images if necessary
if (isset($HTTP_POST_VARS['products_image']) && tep_not_null($HTTP_POST_VARS['products_image']) && ($HTTP_POST_VARS['products_image'] != 'none')) {
if (tep_not_null($del_products['products_image']) && (($HTTP_POST_VARS['products_image'] != $del_products['products_image']) || (isset($HTTP_POST_VARS['delete_image_def']) && tep_not_null($HTTP_POST_VARS['delete_image_def'])))) {
if ( !tep_is_image_still_used($del_products['products_image']) )
@unlink(DIR_FS_CATALOG_IMAGES . $del_products['products_image']); // delete old image if filename has changed
}
}
if (isset($HTTP_POST_VARS['products_image_med']) && tep_not_null($HTTP_POST_VARS['products_image_med']) && ($HTTP_POST_VARS['products_image_med'] != 'none')) {
if (tep_not_null($del_products['products_image_med']) && (($HTTP_POST_VARS['products_image_med'] != $del_products['products_image_med']) || (isset($HTTP_POST_VARS['delete_image_med']) && tep_not_null($HTTP_POST_VARS['delete_image_med'])))) {
if ( !tep_is_image_still_used($del_products['products_image_med']) )
@unlink(DIR_FS_CATALOG_IMAGES . $del_products['products_image_med']); // delete old image if filename has changed
}
}
if (isset($HTTP_POST_VARS['products_image_pop']) && tep_not_null($HTTP_POST_VARS['products_image_pop']) && ($HTTP_POST_VARS['products_image_pop'] != 'none')) {
if (tep_not_null($del_products['products_image_pop']) && (($HTTP_POST_VARS['products_image_pop'] != $del_products['products_image_pop']) || (isset($HTTP_POST_VARS['delete_image_pop']) && tep_not_null($HTTP_POST_VARS['delete_image_pop'])))) {
if ( !tep_is_image_still_used($del_products['products_image_pop']) )
@unlink(DIR_FS_CATALOG_IMAGES . $del_products['products_image_pop']); // delete old image if filename has changed
}
}
// EOF: Additional Images
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') {
/// BOF: Additional Images: Added: , products_image_med, products_image_pop, products_image_description
$product_query = tep_db_query("select products_quantity, products_model, products_image, products_image_med, products_image_pop, products_image_description, products_price, products_matching, products_date_available, products_weight, products_tax_class_id, manufacturers_id from " .


// EOF: Additional Images
$product = tep_db_fetch_array($product_query);

// BOF: Additional Images: Added: , products_image_med, products_image_pop, products_image_description -and- , '" . tep_db_input($product['products_image_med']) . "', '" . tep_db_input($product['products_image_pop']) . "', '" . tep_db_input($product['products_image_description']) . "'
tep_db_query("insert into " . TABLE_PRODUCTS . " (products_quantity, products_model,products_image, products_image_med, products_image_pop, products_image_description, products_price, products_matching, 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_image_med']) . "', '" . tep_db_input($product['products_image_pop']) . "', '" . tep_db_input($product['products_image_description']) . "', '" . 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'] . "')");
// EOF: Additional Images
$dup_products_id = tep_db_insert_id();

// BOF: Additional Images
// get image names from database
$ai_copyimg_query = tep_db_query("select products_id, images_description, popup_images, medium_images, thumb_images from " . TABLE_ADDITIONAL_IMAGES . " where products_id = '" . (int)$product_id . "'");
while ($ai_copyimg = tep_db_fetch_array($ai_copyimg_query)) {
tep_db_query("insert into " . TABLE_ADDITIONAL_IMAGES . " (products_id, images_description, popup_images, medium_images, thumb_images) values ('" . (int)$dup_products_id . "', '" . tep_db_input($ai_copyimg['images_description']) . "', '" . tep_db_input($ai_copyimg['popup_images']) . "', '" . tep_db_input($ai_copyimg['medium_images']) . "', '" . tep_db_input($ai_copyimg['thumb_images']) . "')");
}
// EOF: Additional Images
$description_query = tep_db_query("select language_id, products_name, products_description, short_desc, 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, short_desc, 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;
}

$description_query = tep_db_query("select language_id, products_name, products_description, short_desc, 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, short_desc, 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['short_desc']) . "', '" . tep_db_input($description['products_url']) . "', '0')");
}


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
// BOF: Additional Images
/*
$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'] : '');
}
*/
$image_subdirectory = (!empty($_POST['image_subdirectory'])?tep_db_prepare_input($_POST['image_subdirectory']):'');
$sql_data_array = array();
$add_images_error = process_uploads($image_subdirectory,'products_image','products_image_med','products_image_pop',$sql_data_array,$messageStack);
$products_image_name = (!empty($sql_data_array['products_image'])?$sql_data_array['products_image']:(isset($HTTP_POST_VARS['products_previous_image'])?$HTTP_POST_VARS['products_previous_image']:''));
$products_image_med_name = (!empty($sql_data_array['products_image_med'])?$sql_data_array['products_image_med']:(isset($HTTP_POST_VARS['products_previous_image_med'])?$HTTP_POST_VARS['products_previous_image_med']:''));
$products_image_pop_name = (!empty($sql_data_array['products_image_pop'])?$sql_data_array['products_image_pop']:(isset($HTTP_POST_VARS['products_previous_image_pop'])?$HTTP_POST_VARS['products_previous_image_pop']:''));
// EOF: Additional Images
break;
// BOF: Additional Images
case 'add_images':
$image_subdirectory = (!empty($_POST['image_subdirectory'])?tep_db_prepare_input($_POST['image_subdirectory']):'');
$products_id = $HTTP_GET_VARS['pID'];
$sql_data_array = array('products_id' => tep_db_prepare_input($products_id),
'images_description' => tep_db_prepare_input($HTTP_POST_VARS['images_description']));

$add_images_error = process_uploads($image_subdirectory,'thumb_images','medium_images','popup_images',$sql_data_array,$messageStack);

if ($add_images_error == false) {
tep_db_perform(TABLE_ADDITIONAL_IMAGES, $sql_data_array);
} else {
$messageStack->add_session(ERROR_ADDITIONAL_IMAGE_IS_EMPTY, 'error');
}

tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $products_id));
break;
case 'del_images':
$products_id = tep_db_prepare_input($HTTP_GET_VARS['pID']);
if ( ($HTTP_GET_VARS['pID']) && (is_array($HTTP_POST_VARS['additional_images_id'])) ) {
$additional_images_id = tep_db_prepare_input($HTTP_POST_VARS['additional_images_id']);
for ($i=0; $i<sizeof($additional_images_id); $i++) {
// get image names to delete
$delimg_query = tep_db_query("select popup_images, medium_images, thumb_images from " . TABLE_ADDITIONAL_IMAGES . " where additional_images_id = '" . tep_db_input($additional_images_id[$i]) . "'");
$delimg = tep_db_fetch_array($delimg_query);
// remove image record from database
tep_db_query("delete from " . TABLE_ADDITIONAL_IMAGES . " where additional_images_id = '" . tep_db_input($additional_images_id[$i]) . "'");
//SECTION DELETE POPUP IMAGES
if (tep_not_null($delimg['popup_images']) && file_exists(DIR_FS_CATALOG_IMAGES.$delimg['popup_images']) )
if ( !tep_is_image_still_used($delimg['popup_images']) )
if (!unlink (DIR_FS_CATALOG_IMAGES.$delimg['popup_images']))
$messageStack->add_session(ERROR_DEL_IMG_XTRA.$delimg['popup_images'], 'error');
else
$messageStack->add_session(SUCCESS_DEL_IMG_XTRA.$delimg['popup_images'], 'success');
if (tep_not_null($delimg['medium_images']) && file_exists(DIR_FS_CATALOG_IMAGES.$delimg['medium_images']) )
if ( !tep_is_image_still_used($delimg['medium_images']) )
if (!unlink (DIR_FS_CATALOG_IMAGES.$delimg['medium_images']))
$messageStack->add_session(ERROR_DEL_IMG_XTRA.$delimg['medium_images'], 'error');
else
$messageStack->add_session(SUCCESS_DEL_IMG_XTRA.$delimg['medium_images'], 'success');

if (tep_not_null($delimg['thumb_images']) && file_exists(DIR_FS_CATALOG_IMAGES.$delimg['thumb_images']) )
if ( !tep_is_image_still_used($delimg['thumb_images']) )
if (!unlink (DIR_FS_CATALOG_IMAGES.$delimg['thumb_images']))
$messageStack->add_session(ERROR_DEL_IMG_XTRA.$delimg['thumb_images'], 'error');
else
$messageStack->add_session(SUCCESS_DEL_IMG_XTRA.$delimg['thumb_images'], 'success');
//END OF SECTION DELETE POPUP IMAGES
}
}
tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $products_id));
break;
// EOF: Additional Images
}
}

// 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>
//matching products
<script type="text/javascript">

function openSKUpopup(popurl){

var winpops=window.open(popurl,"","width=450,height=500,scrollbars=1,resizable=1,top=0,left=0")

}

</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 //-->
<td width="100%" valign="top">
<?php
if ($action == 'new_product') {
$parameters = array('products_name' => '',
'products_description' => '',
'short_desc' => '',
'products_url' => '',
'products_id' => '',
'products_quantity' => '',
'products_model' => '',
'products_image' => '',
// EOF: Additional Images
'products_image_med' => '',
'products_image_pop' => '',
'products_image_description' => '',
// EOF: Additional Images
'products_price' => '',
// Matching Products Contrib
'products_matching' => '',
'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)) {
// $product_query = tep_db_query("select pd.products_name, pd.products_description, pd.short_desc, 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 . "'");
// BOF: Additional Images: Added: , p.products_image_med, p.products_image_pop, p.products_image_description
$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_image_med, p.products_image_pop, p.products_image_description, 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, p.products_matching 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: Additional Images
$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'];
$short_desc = $HTTP_POST_VARS['short_desc'];
$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_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>
<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>
<tr>
<td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
</tr>
<script language="javascript"><!--
updateGross();
//--></script>
<?php

for ($i=0, $n=sizeof($languages); $i<$n; $i++) {

?>
<tr>
<td class="main" valign="top"><?php if ($i == 0) echo TEXT_PRODUCTS_SHORT_DESC; ?></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 echo tep_draw_textarea_field('short_desc[' . $languages[$i]['id'] . ']', 'soft', '70', '3', (isset($short_desc[$languages[$i]['id']]) ? $short_desc[$languages[$i]['id']] : tep_get_short_desc($pInfo->products_id, $languages[$i]['id']))); ?></td>
</tr>
</table></td>
</tr>
<?php
}
?>
//short description

<?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']); ?>&nbsp;</td>
<td class="main"><?php 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>
</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>
<?php // BOF: Additional Images ?>
<tr bgcolor="#ebebff">
<td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
<td class="main"><table border="0" cellpadding="0" cellspacing="0" width="560"><tr><td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15'); ?></td><td class="main"><?php

if (ADDITIONAL_IMAGES_AUTO_CREATE == 'true') {
echo TEXT_NEW_IMAGES_AUTO_ON_STATEMENT;
} else {
echo '<table border="0" cellpadding="0" cellspacing="0"><tr><td class="main" valign="top">' . tep_draw_input_field('manual_thumb_generation', 'on', /* parameters */ 'onclick="if(this.checked==true){this.form.products_image_med.disabled=true;this.form
.products_image_pop.disabled=true;}else{this.form.products_image_med.disabled=fal
se;this.form.products_image_pop.disabled=false;}"', false, 'checkbox') . '</td><td class="main" valign="top">' . TEXT_NEW_IMAGES_MANUALLY_GENERATE . '</td><td class="main">&nbsp;</td><td class="main" valign="top">' . TEXT_NEW_IMAGES_AUTO_OFF_STATEMENT . '</td></tr></table>';
}

$upload_path = '';
if (ADDIMAGES_PREFILL_UPLOAD_DIRECTORY == 'true') {$category_path_pieces_tmp = explode('&nbsp;&gt;&nbsp;',tep_output_generated_category_path($current_category_id));
$category_path_pieces = array();
for ($i=sizeof($category_path_pieces_tmp)-1; $i >= 0; $i--) {
$category_path_pieces[] = tep_catname_to_dir($category_path_pieces_tmp[$i]);
}

$upload_path = implode('/',$category_path_pieces);
}
$tmp = ADDIMAGES_PREFILL_INITIAL;
if (!empty($tmp)) {
if (!empty($upload_path)) { $upload_path = trim($tmp,'/').'/'.$upload_path; }
else { $upload_path = $tmp; }
}

?></td></tr></table></td>
</tr>
<tr bgcolor="#ebebff">
<td class="main" valign="top"><?php echo TEXT_PRODUCTS_IMAGE_UPLOAD_LOCATION; ?></td>
<td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;' . tep_draw_input_field('image_subdirectory', $upload_path, 'size="40" onBlur="this.form.image_subdirectory_text.value=this.value" onMouseUp="this.form.image_subdirectory_text.value=this.value" onKeyUp="this.form.image_subdirectory_text.value=this.value"') . '<br>' . tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;<span style="font-size:9px;">' . TEXT_PRODUCTS_IMAGE_UPLOAD_LOCATION_NOTE . '&nbsp;' . DIR_FS_CATALOG_IMAGES . '</span>' . tep_draw_input_field('image_subdirectory_text', $upload_path, 'style="background-color:#ebebff;border-style:none;font-size:9px;" size="50" id="image_subdirectory_text"'); ?></td>
</tr>
<tr bgcolor="#ebebff">
<td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '5'); ?></td>
</tr>
<tr bgcolor="#ebebff">
<td class="main" valign="top"><?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); ?><?php if (!empty($pInfo->products_image)) { echo tep_draw_separator('pixel_trans.gif', '24', '15') . tep_draw_checkbox_field('delete_image_def', 'yes', false) . TEXT_DELETE_IMAGE; } ?></td>
</tr>
<tr bgcolor="#ebebff">
<td class="main" valign="top"><?php echo TEXT_PRODUCTS_IMAGE_MED; ?></td>
<td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;' . tep_draw_file_field('products_image_med') . '<br>' . tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;' . $pInfo->products_image_med . tep_draw_hidden_field('products_previous_image_med', $pInfo->products_image_med); ?><?php if (!empty($pInfo->products_image_med)) { echo tep_draw_separator('pixel_trans.gif', '24', '15') . tep_draw_checkbox_field('delete_image_med', 'yes', false) . TEXT_DELETE_IMAGE; } ?></td>
</tr>
<tr bgcolor="#ebebff">
<td class="main" valign="top"><?php echo TEXT_PRODUCTS_IMAGE_POP; ?></td>
<td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;' . tep_draw_file_field('products_image_pop') . '<br>' . tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;' . $pInfo->products_image_pop . tep_draw_hidden_field('products_previous_image_pop', $pInfo->products_image_pop); ?><?php if (!empty($pInfo->products_image_pop)) { echo tep_draw_separator('pixel_trans.gif', '24', '15') . tep_draw_checkbox_field('delete_image_pop', 'yes', false) . TEXT_DELETE_IMAGE; } ?></td>
</tr>
<tr bgcolor="#ebebff">
<td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '5'); ?></td>
</tr>
<tr bgcolor="#ebebff">
<td class="main" valign="top"><?php echo TEXT_PRODUCTS_IMAGES_DESC; ?></td>
<td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;' . tep_draw_input_field('products_image_description', $pInfo->products_image_description, 'size="30"') . '&nbsp;' . TEXT_IMAGE_DESCRIPTION_NOTE; ?></td>
</tr>
<?php echo ((ADDITIONAL_IMAGES_AUTO_CREATE == 'true')?'<script type="text/javascript"> document.new_product.products_image_med.disabled=true; document.new_product.products_image_pop.disabled=true; </script>':''); ?>
<?php // EOF: Additional Images ?>
<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']) . '&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>
//matching products
<tr bgcolor="#F7F6F6">
<td class="main"><?php echo TEXT_MATCHING_PRODUCTS; ?></td>
<td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;' . tep_draw_input_field('products_matching', $pInfo->products_matching);?> &nbsp;SKU, SKU... <span class="smallText">&nbsp;&nbsp;&nbsp;ex: 351, 912, 122 &nbsp;&nbsp;&nbsp;<a href="java script:openSKUpopup('popup_product_id.php')"><u>View product SKUs</u></a></span></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'];
$short_desc = $HTTP_POST_VARS['short_desc'];
$products_description = $HTTP_POST_VARS['products_description'];
$products_url = $HTTP_POST_VARS['products_url'];
} else {
// BOF: Additional Images: Added: , p.products_image_med, p.products_image_pop, p.products_image_description
$product_query = tep_db_query("select p.products_id, pd.language_id, pd.products_name, pd.products_description, pd.short_desc, pd.products_url, p.products_quantity, p.products_model, p.products_image, p.products_image_med, p.products_image_pop, p.products_image_description, 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'] . "'");
// EOF: Additional Images
$product = tep_db_fetch_array($product_query);

$pInfo = new objectInfo($product);
$products_image_name = $pInfo->products_image;
// BOF: Additional Images
$products_image_pop_name = $pInfo->products_image_pop;
$products_image_med_name = $pInfo->products_image_med;
// EOF: Additional Images
}

$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->short_desc = tep_get_short_desc($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->short_desc = tep_db_prepare_input($short_desc[$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->short_desc. '<br><br>'.$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)) {
if (!is_array($HTTP_POST_VARS[$key])) {
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('short_desc[' . $languages[$i]['id'] . ']', htmlspecialchars(stripslashes($short_desc[$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));
// BOF: Additional Images
echo tep_draw_hidden_field('products_image_pop', stripslashes($products_image_pop_name));
echo tep_draw_hidden_field('products_image_med', stripslashes($products_image_med_name));
// EOF: Additional Images

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 '</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($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">&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'])) {
$products_query = tep_db_query("select p.products_id, pd.products_name, p.products_quantity, p.products_image, pd.short_desc, pd.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) . "%' order by pd.products_name");
} else {
$products_query = tep_db_query("select p.products_id, pd.products_name, p.products_quantity, p.products_image, pd.short_desc, 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;
// BOF: Additional Images
case 'new_images':
case 'update_images':

$upload_path = '';
if (ADDIMAGES_PREFILL_UPLOAD_DIRECTORY == 'true') {$category_path_pieces_tmp = explode('&nbsp;&gt;&nbsp;',tep_output_generated_category_path($current_category_id));
$category_path_pieces = array();
for ($i=sizeof($category_path_pieces_tmp)-1; $i >= 0; $i--) {
$category_path_pieces[] = tep_catname_to_dir($category_path_pieces_tmp[$i]);
}

$upload_path = implode('/',$category_path_pieces);
}
$tmp = ADDIMAGES_PREFILL_INITIAL;
if (!empty($tmp)) {
if (!empty($upload_path)) { $upload_path = $tmp.'/'.$upload_path; }
else { $upload_path = $tmp; }
}

$heading[] = array('text' => '<b>' . TEXT_INFO_HEADING_NEW_IMAGES . '</b>');

$contents = array('form' => tep_draw_form('new_images', FILENAME_CATEGORIES, 'action=' . ($action=='update_images'?'update_images':'add_images') . '&cPath=' . $cPath . '&pID=' . $HTTP_GET_VARS['pID'], 'post', 'enctype="multipart/form-data"'));
$contents[] = array('text' => TEXT_NEW_IMAGES_INTRO);
if (ADDITIONAL_IMAGES_AUTO_CREATE == 'true') {
$contents[] = array('text' => '<br>' . TEXT_NEW_IMAGES_AUTO_ON_STATEMENT);
} else {
$contents[] = array('text' => '<br>' . TEXT_NEW_IMAGES_AUTO_OFF_STATEMENT);
$contents[] = array('text' => '<br>' . '<table border="0" cellpadding="0" cellspacing="0"><tr><td class="infoBoxContent" valign="top">' . tep_draw_input_field('manual_thumb_generation', 'on', /* parameters */ 'onclick="if(this.checked==true){this.form.medium_images.disabled=true;this.form.popu
p_images.disabled=true;}else{this.form.medium_images.disabled=false;this.form.pop
up_images.disabled=false;}"', false, 'checkbox') . '</td><td class="infoBoxContent">' . TEXT_NEW_IMAGES_MANUALLY_GENERATE . '</td></tr></table>');
}
$contents[] = array('text' => '<br>' . TEXT_PRODUCTS_IMAGE_UPLOAD_LOCATION . '<br>' . '<span style="font-family:Verdana;font-size:8px;">' . DIR_FS_CATALOG_IMAGES . '</span>' . '<br>' . tep_draw_input_field('image_subdirectory', $upload_path, 'size="30"') );

$contents[] = array('text' => '<br>' . TEXT_PRODUCTS_IMAGES_NEW . '<br>' . tep_draw_file_field('thumb_images'));
$contents[] = array('text' => '<br>' . TEXT_PRODUCTS_IMAGES_NEWMED . '<br>' . tep_draw_file_field('medium_images'));
$contents[] = array('text' => '<br>' . TEXT_PRODUCTS_IMAGES_NEWPOP . '<br>' . tep_draw_file_field('popup_images') .
((ADDITIONAL_IMAGES_AUTO_CREATE == 'true')?'<script type="text/javascript"> document.new_images.medium_images.disabled=true; document.new_images.popup_images.disabled=true; </script>':''));
$contents[] = array('text' => '<br>' . TEXT_PRODUCTS_IMAGES_DESC . '<br>' . tep_draw_input_field('images_description'));
$contents[] = array('align' => 'center', 'text' => '<br>' . tep_image_submit('button_save.gif', IMAGE_SAVE) . ' <a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $HTTP_GET_VARS['pID']) . '">' . tep_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a><br><br>');
$contents[] = array('text' => TEXT_NEW_IMAGES_FOOTER);
break;
// EOF: Additional Images
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_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>');

$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: Additional Images
$contents[] = array('text' => '<br><b>' . TEXT_INFO_HEADING_NEW_IMAGES . '</b>');
$contents[] = array('text' => '<a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $pInfo->products_id . '&action=new_images') . '">' . tep_image_button('button_images_add.gif', IMAGE_ADDITIONAL_NEW) . '</a><br><hr>');

$images_product = tep_db_query("SELECT additional_images_id, medium_images, popup_images, thumb_images, images_description FROM " . TABLE_ADDITIONAL_IMAGES . " where products_id = '" . $pInfo->products_id . "'");
if (!tep_db_num_rows($images_product)) {
$contents[] = array('align' => 'center', 'text' => '<font color="red">'.ERROR_NO_ADDITIONAL_IMAGES.'</font><hr>');
} else {
while ($new_images = tep_db_fetch_array($images_product)) {
$contents[] = array('text' => '&nbsp;' . tep_image(DIR_WS_CATALOG_IMAGES . (!empty($new_images['thumb_images'])?$new_images['thumb_images']sad.gif$new_images['medium_images']?$new_images['medium_images']:$new_images['popup_images'])), $new_images['images_description'], (ADDIMAGES_RESTRICT_IMAGE_SIZE=='true'?SMALL_IMAGE_WIDTH:''), (ADDIMAGES_RESTRICT_IMAGE_SIZE=='true'?SMALL_IMAGE_HEIGHT:''), 'align="absmiddle"') . '<br>' .
tep_draw_form('delete_images', FILENAME_CATEGORIES, 'action=del_images&cPath=' . $cPath . '&pID=' . $HTTP_GET_VARS['pID']) .
tep_draw_hidden_field('additional_images_id[]', $new_images['additional_images_id']) .
'<br>' . '&nbsp;' . tep_image_submit('button_images_del.gif', IMAGE_ADDITIONAL_DEL) . '</form><br>&nbsp;<hr>');
}
}
$contents[] = array('align' => 'center', 'text' => '<br><br>');
// EOF: Additional Images
}
} 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 lindsayanng, 09 August 2008, 04:53.

A great place for newbies to start
Road Map to oscommerce File Structure
DO NOT PM ME FOR HELP. My time is valuable, unless i ask you to PM me, please dont. You will get better help if you post publicly. I am not as good at this as you think anyways!

HOWEVER, you can visit my blog (go to my profile to see it) and post a question there, i will find time to get back and answer you

Proud Memeber of the CODE BREAKERS CLUB!!

#103 DunWeb

  • Community Sponsor
  • 10,423 posts
  • Real Name:Chris Dunn
  • Gender:Male
  • Location:Tecumseh, Ontario, Canada N8N 1X8

Posted 09 August 2008, 05:12

Lindsay,

I am still looking at that code, but there were some errors that came up as soon as I loaded the file into my editor:

Line 506: //matching products

Line 737: //short description

Line 849: //matching products

The // comment is only used within the <?php and ?> tags, otherwise you have to you use the html comment tag <!-- -->

I will get back to you about the code.....


Chris
:|: Was this post helpful ? Click the LIKE THIS button :|:

:|: Click Here to learn how I can help you with custom coding, add ons, security and templates :|:

:|: Need an Area Calculator, Pre-Paid Account, Virtual Pin, Auction or Layaway Add on ? Click Here :|:

#104 lindsayanng

  • Community Member
  • 4,258 posts
  • Real Name:Lindsay
  • Gender:Female
  • Location:Milford, Connecticut U.S.A.

Posted 09 August 2008, 05:15

AYE! Now i have a parse error on line 379 in admin/categories.php
A great place for newbies to start
Road Map to oscommerce File Structure
DO NOT PM ME FOR HELP. My time is valuable, unless i ask you to PM me, please dont. You will get better help if you post publicly. I am not as good at this as you think anyways!

HOWEVER, you can visit my blog (go to my profile to see it) and post a question there, i will find time to get back and answer you

Proud Memeber of the CODE BREAKERS CLUB!!

#105 lindsayanng

  • Community Member
  • 4,258 posts
  • Real Name:Lindsay
  • Gender:Female
  • Location:Milford, Connecticut U.S.A.

Posted 09 August 2008, 22:08

anyone see an issue here?? i cant find the issue.
A great place for newbies to start
Road Map to oscommerce File Structure
DO NOT PM ME FOR HELP. My time is valuable, unless i ask you to PM me, please dont. You will get better help if you post publicly. I am not as good at this as you think anyways!

HOWEVER, you can visit my blog (go to my profile to see it) and post a question there, i will find time to get back and answer you

Proud Memeber of the CODE BREAKERS CLUB!!

#106 germ

  • Community Member
  • 13,581 posts
  • Real Name:Jim
  • Gender:Male
  • Location:USA (GMT-6)

Posted 09 August 2008, 22:45

The error is actually on line 376

$product_query = tep_db_query("select products_quantity, products_model, products_image, products_image_med, products_image_pop, products_image_description, products_price, products_matching, products_date_available, products_weight, products_tax_class_id, manufacturers_id from " .
It looks incomplete to me.
If I suggest you edit any file(s) make a backup first - I'm not perfect and neither are you.

"Headers already sent" - The definitive help

"Cannot redeclare ..." - How to find/fix it

SSL Implementation Help

Like this post? "Like" it again over there >

#107 lindsayanng

  • Community Member
  • 4,258 posts
  • Real Name:Lindsay
  • Gender:Female
  • Location:Milford, Connecticut U.S.A.

Posted 10 August 2008, 04:15

OMG THANK YOU SOOO MUCH.. i was missing

Quote

TABLE_PRODUCTS . " where products_id = '" . (int)$products_id . "'");

at the end of that line. Now my admin is back up.. lets see if this contribution made my articles manager cross sell feature work - fingers crossed.
A great place for newbies to start
Road Map to oscommerce File Structure
DO NOT PM ME FOR HELP. My time is valuable, unless i ask you to PM me, please dont. You will get better help if you post publicly. I am not as good at this as you think anyways!

HOWEVER, you can visit my blog (go to my profile to see it) and post a question there, i will find time to get back and answer you

Proud Memeber of the CODE BREAKERS CLUB!!

#108 lindsayanng

  • Community Member
  • 4,258 posts
  • Real Name:Lindsay
  • Gender:Female
  • Location:Milford, Connecticut U.S.A.

Posted 10 August 2008, 04:18

PERFECT.. the matching products cross sell feature works FLAWLESSLY, however the stupid article manager will NOT open an option to add a sku to an article and NO ONE will support that thread any more.. i'm entire frustrated. That was the WHOLE reasoning for adding that feature, so that web surfers might come across my article and see an interesting item that goes along with it.
A great place for newbies to start
Road Map to oscommerce File Structure
DO NOT PM ME FOR HELP. My time is valuable, unless i ask you to PM me, please dont. You will get better help if you post publicly. I am not as good at this as you think anyways!

HOWEVER, you can visit my blog (go to my profile to see it) and post a question there, i will find time to get back and answer you

Proud Memeber of the CODE BREAKERS CLUB!!

#109 lilitoy

  • Community Member
  • 32 posts
  • Real Name:Lili Demeire
  • Gender:Female
  • Location:Belgium

Posted 10 August 2008, 18:42

Quote

You mis-installed something, revert to your backup copy and reinstall.

Hello,
Sorry to interopt here.

Just want to write that I have managed to fix the error.

I had also installed a contri about Meta Tags and now I have put them togheter.

Thanks
Lili

#110 ianric

  • Community Member
  • 373 posts
  • Real Name:Ian Richardson
  • Gender:Male
  • Location:Manchester, UK

Posted 10 September 2008, 19:25

View Posthomewetbar, on Jan 29 2008, 10:23 PM, said:

This is a very "light" contrib meaning it doesn't modify the code much so I don't know what could have gone wrong. Did you install any other contribs at the same time that could have caused the problem? Did you revert to your backup and you are still experiencing problems? If so that would indicate something prior to installing this contrib caused the problem or maybe prior contribs are incompatible with this contrib so you cannot use them in conjuction.
hi, me again

Was it really in Jan I posted? Wow, doesn't time fly. Anyway, solved it thanks to the Graphic borders contrib. Why? Because that contrib mentioned adding borders to cross sell, product listings etc. So I looked at the Xsell products contrib (installed but didn't like it) and there was an update to the files as below, hope I don't get into trouble :)

On my installation, with SEO URLS, the Buy It Now button was showing the parent product's ID and not its own.

In catalog/includes/modules/xsell_products.php

//Cache
$text = '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $xsell['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $xsell['products_image'], $xsell['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a><br><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $xsell['products_id']) . '">' . $xsell['products_name'] .'</a><br>' . $xsell_price. '<br><a href="' . tep_href_link(FILENAME_DEFAULT, 'action=buy_now&products_id=' . $xsell['products_id'], 'NONSSL') . '">' . tep_image_button('button_buy_now.gif', TEXT_BUY . $xsell['products_name'] . TEXT_NOW) .'</a>';

I stripped out the 

tep_get_all_get_params(array('action')) . 

and it seems to work.

As I am not a great expert at this, do please test the heck out of it before you go anywhere near a production system!

This zip contains only the updated includes/modules/xsell_products.php file.

If you replace the $xsell with $matching it works and has passed a few tests locally. Hopefully a working module will be up on my site over the weekend. I'm still testing & formatting a wishlist contrib.

This is my line of code that displays to products

		  $info_box_contents[$row][$col] = array('align' => 'center',
										   'params' => 'class="smallText" width="33%" valign="top" style="border-style: solid; border-width: 2" bordercolor="#EBEDF1"',
										   'text' => strtoupper($matching_products['products_name']) . '<br><br>' . '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $matching_products['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $matching_products['products_image'], $matching_products['products_name'] . ' - ' . $matching_products['products_title'] . ' Label Side A', SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a><br><br><a STYLE="text-decoration:underline" href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $matching_products['products_id']) . '">' . $matching_products['products_title'] . '</a> (' . $matching_products['products_media'] . ')<br><br>' . $products_price . '<br><br><a href="' . tep_href_link(FILENAME_DEFAULT, 'action=buy_now&products_id=' . $matching_products['products_id'], 'NONSSL') . '">' . tep_image_submit('button_buy_now.gif', IMAGE_BUTTON_IN_CART) .'</a>' . '&nbsp;&nbsp;&nbsp;<a href="' . tep_href_link(FILENAME_DEFAULT, 'action=add_wishlist&products_id=' . $matching_products['products_id']) . '">' . tep_image_button('button_wishlist_small.gif', IMAGE_BUTTON_ADD_WISHLIST_SMALL) . '</a>');

Many thanks for a great contrib

Ian

#111 jensen

  • Community Member
  • 2 posts
  • Real Name:julie jensen

Posted 28 February 2009, 01:00

Hi, i installed this fab contribution, and had it working wonderfully. all of a sudden my admin will not hold the SKU's. i enter the numbers, update, and the SKU's disappear. has anyone else have this problem? any help would be great. thank you.

#112 fdvdesign

  • Community Member
  • 3 posts
  • Real Name:Frank

Posted 27 August 2009, 18:36

The contribution (Matching Products Cross Sell 1.1) works great... but i've got a problem. The contribution doesn't show the products prices correctly. When a product is on sale, special price is still show's the original price and not the special on sale price. How can i modify the contribution to show the regular price for the normal products and the special "sale" prices for the items that are on sale?

#113 Vazgen

  • Community Member
  • 1 posts
  • Real Name:Vazgen

Posted 06 May 2010, 18:37

Hi,
I downloaded the latest 1.2 version,
file <matching products cross sell.txt> is broken.
Can you upload it again or send it via e-mail, please?
Thanks.

Edited by Vazgen, 06 May 2010, 18:39.


#114 Dandon

  • Community Member
  • 24 posts
  • Real Name:Daniel Donate
  • Gender:Male
  • Location:Madrid, Spain

Posted 13 May 2010, 18:01

View PostVazgen, on 06 May 2010, 18:37, said:

Hi,
I downloaded the latest 1.2 version,
file <matching products cross sell.txt> is broken.
Can you upload it again or send it via e-mail, please?
Thanks.

Just downloaded this addon and had the same problem. You can solve it by changing the extension to .doc, opening it in MS Word, and selecting "Unicode UTF-7" coding. Then it displays ok, and you can save it in your preferred format.

#115 Dandon

  • Community Member
  • 24 posts
  • Real Name:Daniel Donate
  • Gender:Male
  • Location:Madrid, Spain

Posted 13 May 2010, 20:39

Hi, after installing, I get the matching products input box. But when I click on "view SKU list", I get following error in the new window:
Parse error: syntax error, unexpected T_REQUIRE in [i]<admin_path>[/i]/popup_product_id.php on line 5
I haven't changed the popup_product_id.php file. Can you please help to find the eror?
TIA

#116 bhbilbao

  • Community Member
  • 291 posts
  • Real Name:BLACKHOLE
  • Gender:Male
  • Location:Spain

Posted 10 August 2010, 19:13

I replaced the module code to:
$match_count++;
	   $col ++;
       if ($col > 0) {
         $col = 0;
         $row ++;
       }

I neec to work this as a BOX, on the left, not a module down in product info.

What could be the correct code to place in column_left.php???

#117 robertw477

  • Community Member
  • 74 posts
  • Real Name:robert weisberg
  • Gender:Male

Posted 24 January 2011, 11:52

I treid this on my site which is heavily modded and I see the words matching product appear on the product page once I enter the cross code skus but no images or items show. My SKU numbers are letter based, not number based for example ABC_1, ABC_2 does this present any issues? Appreciate any suggestions.

Sample page: http://www.bigapplecard.com/mlb-gel-air-freshener-p-511.html

Thanks
Robert

Edited by robertw477, 24 January 2011, 11:52.


#118 BurtonDavis

  • Community Member
  • 8 posts
  • Real Name:Burton Davis
  • Gender:Male

Posted 20 April 2011, 15:25

I'm running osC 2.3.1 (very minor mods/add-ons thus far). I'm following the install guide and am changing /catalog/admin/categories.php. Although some of the line numbers were different, I found the first few changes w/o issue. However, when I get to:

find (line 339)
</head>

I can't find anything resembling this at all.

Suggestions?

#119 BurtonDavis

  • Community Member
  • 8 posts
  • Real Name:Burton Davis
  • Gender:Male

Posted 25 April 2011, 02:39

Does this even work with osC 2.3.1?

#120 gshutzy

  • Community Member
  • 98 posts
  • Real Name:graham shuttleworth
  • Gender:Male
  • Location:lancashire,uk

Posted 02 February 2012, 17:24

i would like to edit the width of the matching product box. can anyone please tell me which file this is in. ive searched the txt file that comes with the installation instructions but can find anything that stands out.

by the way, this add on is a must for anyone who has an oscommerse shop