OSCOMMERCE SUPPORT CALL 702-453-3332

 

Help - Search - Members - Calendar
Full Version: Multi images extra contribution
osCommerce Community Support Forums > osCommerce Online Merchant v2.x > Contributions / Add-Ons > Contribution Development
Pages: 1, 2
nico1814
This is the topic to discuss Multi images extra contribution.

You can download it here: Multi images extra

Nico
Pilly
Shouldnt there be instructions for defining the database table in database_tables.php ?
drew_from_orinj
Hi,

I am having the following error message appear on my products pages:


_______________________________________________________________
1146 - Table 'mysql210ec49b33904e7949b3291ef85.TABLE_PRODUCTS_IMAGES' doesn't exist

select p.products_id, pd.products_name, pd.products_description, p.products_model, p.products_quantity, p.products_image, pi.products_image1, pi.products_image2, pi.products_image3, pi.products_image4, pi.products_image5, pi.products_image6, pi.products_image7, pi.products_image8, pi.products_image9, pd.products_url, p.products_price, p.products_tax_class_id, p.products_date_added, p.products_date_available, p.manufacturers_id FROM products p,products_description pd,TABLE_PRODUCTS_IMAGES pi WHERE p.products_status = '1' AND p.products_id = '24' AND pd.products_id = p.products_id AND pi.products_id = p.products_id AND pd.language_id = '1'

[TEP STOP]

_______________________________________________________________


I have installed everything that are in your directions. I have double checked everything.

HELP PLEASE!
redgorilla
Thank you for nice contribution. You should add this code to check for additional images or you will have problem with preview in admin area

$check_query = tep_db_query("SELECT count(*) from " . TABLE_PRODUCTS." p, ".TABLE_PRODUCTS_IMAGES." pi WHERE p.products_id = pi.products_id");
$check = tep_db_fetch_array($check_query);
if ($check['total'] < '1') {
// there is no additional images
$product_query = tep_db_query("SELECT p.products_id, pd.language_id, pd.products_name, pd.products_description, pd.products_head_title_tag, pd.products_head_desc_tag, pd.products_head_keywords_tag, pd.products_url, p.products_quantity, p.products_model, p.products_image, p.products_price, p.products_weight, p.products_date_added, p.products_last_modified, p.products_date_available, p.products_status, p.manufacturers_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_id = pd.products_id and p.products_id = '" . $HTTP_GET_VARS['pID'] . "'");
} else {
// there are additional images
$product_query = tep_db_query("SELECT p.products_id, pd.language_id, pd.products_name, pd.products_description, pd.products_head_title_tag, pd.products_head_desc_tag, pd.products_head_keywords_tag, pd.products_url, p.products_quantity, p.products_model, p.products_image, pi.products_image1, pi.products_image2, pi.products_image3, pi.products_image4, pi.products_image5, pi.products_image6, pi.products_image7, pi.products_image8, pi.products_image9, 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, ". TABLE_PRODUCTS_IMAGES." pi WHERE p.products_id = pd.products_id AND p.products_id = pi.products_id AND p.products_id = '" . (int)$HTTP_GET_VARS['pID'] . "'");
}




Add this before
$product = tep_db_fetch_array($product_query);
$pInfo = new objectInfo($product);
$products_image_name = $pInfo->products_image;

trying to make it work with header tags control contribution.... it change the same queries.
nico1814
QUOTE (drew_from_orinj @ Apr 18 2006, 05:30 PM) *
Hi,

I am having the following error message appear on my products pages:
_______________________________________________________________
1146 - Table 'mysql210ec49b33904e7949b3291ef85.TABLE_PRODUCTS_IMAGES' doesn't exist



Yes, sorry but several bug and missing files in my first post :-(

This error message follows the missed definition of tables in catalog\admin\includes\database_tables.php

I've just sent a new complete archive tagged "Multi images extra 1.02" with all corrects and patches.


Nico
Flotec
I have the contribution 'On the Fly' Auto Thumbnailer using GD Library installed. Can I install also this contribution for more pictures? Do they work together?
Could it be possible to use GD libraries also for the extra images?
cleefor
Hello,

thanks for this great contribution. I have a problem with the product_info page.

It only shows the product's price, description etc. if there is set an extra image! If I have a product without or with only one image it doesn't show the price, description etc.!

But if I have added at least two pictures, it shows everything correctly! I don't understand that!

Can you help me?
dcross02
QUOTE (cleefor @ Apr 22 2006, 09:30 AM) *
Hello,

thanks for this great contribution. I have a problem with the product_info page.

It only shows the product's price, description etc. if there is set an extra image! If I have a product without or with only one image it doesn't show the price, description etc.!

But if I have added at least two pictures, it shows everything correctly! I don't understand that!

Can you help me?


I've had the same problem. However, I noticed that if you go into to "edit" one of your products that currently has one picture, click "preview" (without really editing anything), and then "update", the product then displays correctly. Not sure why this works, but it does. If you have hundreds of products, this could take some time, but it does fix the problem.
dcross02
Got everything working, except that when I click on any of the additional images to enlarge, I get this error:

1054 - Unknown column 'pi.products_image' in 'field list'

SELECT pd.products_name, pi.products_image FROM products_images pi, products p, products_description pd WHERE p.products_id = pd.products_id AND p.products_id = pi.products_id AND p.products_status = '1' AND p.products_id = '107' AND pd.language_id = '1'

[TEP STOP]


This does not happen on the main image when clicking on it to enlarge. Anybody?
e-man
Hello Nico,

thanks for this contribution!

It works and I´m glad about it! But I have a question:

Is it possible to add the extra Pictures to the product listing box? I´m not good in scripting PHP so far, so maybe you have a Tip how that can be work.

Thanks a lot,

Chriss
uconline
nice contribution, thanks i will try it out
mmsos
Hello

I'm having the following error in the admin:

images directory doesnt exit

I have create the folder /catalog/images/images_extra and allow full access (777)

Wat could be wrong...
pingz
Thank you for this contribution!

I got everything working.... Whew!

But i did notice that i only had options to upload only 4 extra images. I believe there should be a total of extra 9 images that we can upload right?

Could you advise?

Maybe I did something wrong along the way or something???
pingz
oh, managed to find out... i have to set the no. of extra images i want in the admin part. no prob now. love it!
Flotec
How about the contibution 'On the Fly' Auto Thumbnailer using GD Library. Does it work together with this contribution?
Duket
Hi; I'm having a problem; I'd follow the step and install the ver. 1.02 but when I try to go to my admin it shows
Parse error: parse error, unexpected $ in /home/phoenixt/public_html/osCommerce/catalog/admin/includes/functions/database.php on line 170; but line 170 is the end of the page; anyone can help???
DrySlickRacing
Hello,

I just finished this long installation and now I'm getting this error:


Parse error: parse error, unexpected '}' in /home/triadpro/public_html/catalog/catalog/product_info.php on line 288

Please advise me some help someone. My company is going to have my head if I can't fix this fast!

Thanks in advance!
DrySlickRacing
Nevermind this thing is too unstable for me...
ken.yong
Yes, I have the same problem too. Your solution saves me big time in figuring out what could have gone wrong.

Thanks a lot!

BTW, GREAT CONTRIBUTION!

QUOTE (dcross02 @ Apr 25 2006, 02:55 PM) *
I've had the same problem. However, I noticed that if you go into to "edit" one of your products that currently has one picture, click "preview" (without really editing anything), and then "update", the product then displays correctly. Not sure why this works, but it does. If you have hundreds of products, this could take some time, but it does fix the problem.
Pilly
Hi,

Ive had this installed for a while, is it possible to change the position of the images. ie. at the moment its located on the right, would it be possible to swap sides to the left or better still have the list on the bottom of the product info page.????


I use firefox 1.5 and when im testing sometimes the popup doesnt show the entire image... is this right? does anyone else have this??
ferfried
hello, my problem with this contrib v 1.02:
pictures will be uploaded, but not written into the sql database table products_images.
if i add the picture manually into the table, all works fine and will be shown in the product page and i also
can delete images.
i`ve checked the modified files a several times, i`ve loaded up the categories.php from the contrib for testing but nothing changed, so the error is in another file. any ideas???
bammhost
Where did you send the corrections to? I just downloaded the contribution and installed it and i am getting the same error.
chimera15
I think I need some help or more info about adding the database registers too, or at least could someone point me to info about how to go about it?

Thanks for any help!
chimera15
Do I need to add these registers using my server somehow or do I need to edit a file in oscommerce? I'm a bit lost.

this part :

2) Run this 2 query on your db(please note that the original table 菟roducts・is not affected):
CREATE TABLE `products_images` (
`products_id` int(11) NOT NULL auto_increment,
`products_image1` varchar(64) default NULL,
`products_image2` varchar(64) NOT NULL default '',
`products_image3` varchar(64) NOT NULL default '',
`products_image4` varchar(64) NOT NULL default '',
`products_image5` varchar(64) NOT NULL default '',
`products_image6` varchar(64) NOT NULL default '',
`products_image7` varchar(64) NOT NULL default '',
`products_image8` varchar(64) NOT NULL default '',
`products_image9` varchar(64) NOT NULL default '',
PRIMARY KEY (`products_id`)
);

INSERT INTO `configuration` ( `configuration_id` , `configuration_title` , `configuration_key` , `configuration_value` , `configuration_description` , `configuration_group_id` , `sort_order` , `last_modified` , `date_added` , `use_function` , `set_function` )
VALUES (
'', 'Number of extra images', 'NB_IMAGE_EXTRA', '4', 'Number of extra images (0 to 9)', '4', '9', NULL , '2006-04-17 14:10:42', NULL , NULL
);

2 query? huh?
chimera15
Alright, I think I got it, the language confused me a little, it should read "insert these two queries into your database using the sql database query tool on your server" I think?

Anyway, thanks smile.gif
chimera15
Alright, now I'm getting this problem.

Parse error: parse error, unexpected T_ELSEIF in /home/chimera/www/storefront/catalog/admin/categories.php on line 712

The code I have right now on that line is this:

<tr>
<td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
</tr>
<tr>
<td class="main" align="right"><?php echo tep_draw_hidden_field('products_date_added', (tep_not_null($pInfo->products_date_added) ? $pInfo->products_date_added : date('Y-m-d'))) . tep_image_submit('button_preview.gif', IMAGE_PREVIEW) . '&nbsp;&nbsp;<a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . (isset($HTTP_GET_VARS['pID']) ? '&pID=' . $HTTP_GET_VARS['pID'] : '')) . '">' . tep_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a>'; ?></td>
</tr>
</table></form>


<?php
elseif ($action == 'new_product_preview'){
if {(tep_not_null($HTTP_POST_VARS))
$pInfo = new objectInfo($HTTP_POST_VARS);
$products_name = $HTTP_POST_VARS['products_name'];
$products_description = $HTTP_POST_VARS['products_description'];
$products_url = $HTTP_POST_VARS['products_url'];
}} else {
$product_query = tep_db_query("SELECT p.products_id, pd.language_id,
pd.products_name, pd.products_description, pd.products_url, p.products_quantity,
p.products_model, p.products_image,
pi.products_image1, pi.products_image2, pi.products_image3, pi.products_image4, pi.products_image5,
pi.products_image6, pi.products_image7, pi.products_image8, pi.products_image9,
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 LEFT JOIN ".TABLE_PRODUCTS_IMAGES." pi ON p.products_id = pi.products_id)
INNER JOIN ".TABLE_PRODUCTS_DESCRIPTION." pd ON p.products_id = pd.products_id
WHERE p.products_id = '" . (int)$HTTP_GET_VARS['pID'] . "'");

$product = tep_db_fetch_array($product_query);
$pInfo = new objectInfo($product);
$products_image_name = $pInfo->products_image;
$products_image1_name = $pInfo->products_image1;
$products_image2_name = $pInfo->products_image2;
$products_image3_name = $pInfo->products_image3;
$products_image4_name = $pInfo->products_image4;
$products_image5_name = $pInfo->products_image5;
$products_image6_name = $pInfo->products_image6;
$products_image7_name = $pInfo->products_image7;
$products_image8_name = $pInfo->products_image8;
$products_image9_name = $pInfo->products_image9;

}

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

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

$languages = tep_get_languages();
for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
if (isset($HTTP_GET_VARS['read']) && ($HTTP_GET_VARS['read'] == 'only')) {
$pInfo->products_name = tep_get_products_name($pInfo->products_id, $languages[$i]['id']);
$pInfo->products_description = tep_get_products_description($pInfo->products_id, $languages[$i]['id']);
$pInfo->products_url = tep_get_products_url($pInfo->products_id, $languages[$i]['id']);
} else {
$pInfo->products_name = tep_db_prepare_input($products_name[$languages[$i]['id']]);
$pInfo->products_description = tep_db_prepare_input($products_description[$languages[$i]['id']]);
$pInfo->products_url = tep_db_prepare_input($products_url[$languages[$i]['id']]);
}
?>
<table border="0" width="100%" cellspacing="0" cellpadding="2">
<tr>
<td><table border="0" width="100%" cell

Any help?
Thanks

Anyone have a working catagories.php file they could just upload to the contribution by chance? 12+ changes is pretty bad.
skeeweeaka
Can someone tell me how this is working for them... I need to add additional images to my products so that I can show different views of the product. I wanted something that did not involve making many changes to the database, however... Any feedback would be appreciated...

Also, I am a novice, totally, will this be difficult for me to intall... blush.gif
skeeweeaka
Okay.....it says upload the file popup_image_extra.php in /catalog. Does this mean I need to create a file with this name and upload to the catalog file????[size=2]
skeeweeaka
Okay, I created the file and uploaded it. It says change the permissions, but when I look at the file the Administrative part of File Manager the permissions look okay...

Now I guess I need to upload the other files that I modified, is that correct???? Also when making the edits I left spaces after lines... Do I need to delete them or does the system automatically delete extra lines....

SKEE
skeeweeaka
Can someone please help me with this contribution?????
skeeweeaka
Okay I uploaded all of the file changes, the only thing different in Administration is under Images, number of extra images line shows up. Nothing else is different. When I go to perhaps add another image, since there are no options, I tried just adding it to the previous picture and nothing happens. Can someone help me out please....
Pilly
Maybe post your admin/catagories.php
skeeweeaka
Still getting the warning that no files are being uploaded because my catalogue images directory is not writable. Does anyone know why I am getting this I changed my permissions on these folders to include write, read, and execute....

Won't allow me to add the extra images AT ALL....

Phil, I don't understand what providing the admin/categories code will do but here it is...

[color=#FF0000]
<?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');

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++) {
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']),
'products_date_available' => $products_date_available,
'products_weight' => tep_db_prepare_input($HTTP_POST_VARS['products_weight']),
'products_status' => tep_db_prepare_input($HTTP_POST_VARS['products_status']),
'products_tax_class_id' => tep_db_prepare_input($HTTP_POST_VARS['products_tax_class_id']),
'manufacturers_id' => tep_db_prepare_input($HTTP_POST_VARS['manufacturers_id']));

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

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

$sql_data_array = array_merge($sql_data_array, $insert_sql_data);

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

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

$sql_data_array = array_merge($sql_data_array, $update_sql_data);

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

//060417/zepitt/multi images extra/modif # 1
//sql instructions to create or update product
unset($sql_data_array);

for($nb=1; $nb <= NB_IMAGE_EXTRA ; $nb++) {
$var_delete_image = "delete_image".$nb;
$var_products_image = "products_image".$nb;
// possibility to delete extra images, but not the standard image
if ($HTTP_POST_VARS[$var_delete_image] == 'yes') {
//not physical deleting
//unlink(DIR_FS_CATALOG_IMAGES_EXTRA.$HTTP_POST_VARS[$var_products_image]);
$sql_data_array[$var_products_image] = tep_db_prepare_input($HTTP_POST_VARS['none']);
}
//end delete image function
else if (isset($HTTP_POST_VARS[$var_products_image]) && tep_not_null($HTTP_POST_VARS[$var_products_image]) && ($HTTP_POST_VARS[$var_products_image] != 'none')) {
$sql_data_array[$var_products_image] = tep_db_prepare_input($HTTP_POST_VARS[$var_products_image]);
}
}
$insert_sql_data = array('products_id' => $products_id);
$sql_data_array = array_merge($sql_data_array, $insert_sql_data);
if(isset($sql_data_array)) tep_db_perform(TABLE_PRODUCTS_IMAGES, $sql_data_array, 'replace');
//060417/zepitt/multi images extra EOF

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

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

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

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



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

tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $products_id));
}

break;

case 'copy_to_confirm':
if (isset($HTTP_POST_VARS['products_id']) && isset($HTTP_POST_VARS['categories_id'])) {
$products_id = tep_db_prepare_input($HTTP_POST_VARS['products_id']);
$categories_id = tep_db_prepare_input($HTTP_POST_VARS['categories_id']);

if ($HTTP_POST_VARS['copy_as'] == 'link') {
if ($categories_id != $current_category_id) {
$check_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_TO_CATEGORIES . " where products_id = '" . (int)$products_id . "' and categories_id = '" . (int)$categories_id . "'");
$check = tep_db_fetch_array($check_query);
if ($check['total'] < '1') {
tep_db_query("insert into " . TABLE_PRODUCTS_TO_CATEGORIES . " (products_id, categories_id) values ('" . (int)$products_id . "', '" . (int)$categories_id . "')");
}
} else {
$messageStack->add_session(ERROR_CANNOT_LINK_TO_SAME_CATEGORY, 'error');
}
//060417/zepitt/multi images extra/modif #02
// update sql copy or duplicate an item
} elseif ($HTTP_POST_VARS['copy_as'] == 'duplicate') {
$product_query = tep_db_query("SELECT p.products_quantity, p.products_model,
p.products_image, p.products_price, p.products_date_available, p.products_weight,
p.products_tax_class_id, p.manufacturers_id,
pi.products_image1, pi.products_image2, pi.products_image3, pi.products_image4, pi.products_image5,
pi.products_image6, pi.products_image7, pi.products_image8, pi.products_image9
FROM (".TABLE_PRODUCTS." p LEFT JOIN ".TABLE_PRODUCTS_IMAGES." pi ON p.products_id = pi.products_id)
WHERE p.products_id = '".(int)$products_id."'");
$product = tep_db_fetch_array($product_query);

tep_db_query("INSERT INTO " . TABLE_PRODUCTS . "
(products_quantity, products_model, products_image, products_price, products_date_added, products_date_available,
products_weight, products_status, products_tax_class_id, manufacturers_id)
VALUES ('" .
tep_db_input($product['products_quantity']) . "', '" .
tep_db_input($product['products_model']) . "', '" .
tep_db_input($product['products_image']) . "', '" .
tep_db_input($product['products_price']) . "', now(), '" .
tep_db_input($product['products_date_available']) . "', '" .
tep_db_input($product['products_weight']) . "', '0', '" .
(int)$product['products_tax_class_id'] . "', '" .
(int)$product['manufacturers_id'] . "')");
$dup_products_id = tep_db_insert_id();

tep_db_query("INSERT INTO " . TABLE_PRODUCTS_IMAGES . "
(products_id, products_image1, products_image2, products_image3, products_image4, products_image5,
products_image6, products_image7, products_image8, products_image9)
VALUES ('" .
(int)$dup_products_id . "', '" .
tep_db_input($product['products_image1']) . "', '" .
tep_db_input($product['products_image2']) . "', '" .
tep_db_input($product['products_image3']) . "', '" .
tep_db_input($product['products_image4']) . "', '" .
tep_db_input($product['products_image5']) . "', '" .
tep_db_input($product['products_image6']) . "', '" .
tep_db_input($product['products_image7']) . "', '" .
tep_db_input($product['products_image8']) . "', '" .
tep_db_input($product['products_image9']) . "')");

//060417/zepitt/multi images extra EOF

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

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

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

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

//060417/zepitt/multi images extra #03
// update images for preview

for($nb=1; $nb <= NB_IMAGE_EXTRA ; $nb++) {
$var_products_image = "products_image".$nb;
$var_products_image_name = "products_image".$nb."_name";
$var_products_previous_image = "products_previous_image".$nb;
$var_delete_image = "delete_image".$nb;

$$var_products_image = new upload($var_products_image);
$$var_products_image->set_destination(DIR_FS_CATALOG_IMAGES_EXTRA);
if ($HTTP_POST_VARS[$var_delete_image] == 'yes') { $$var_products_image_name = ""; }
else {
if ($$var_products_image->parse() && $$var_products_image->save()) {
$$var_products_image_name = $$var_products_image->filename;
} else {
$$var_products_image_name = (isset($HTTP_POST_VARS[$var_products_previous_image]) ? $HTTP_POST_VARS[$var_products_previous_image] : '');
}
}
}
//060417/zepitt/multi images extra EOF
break;
}
}

// check if the catalog image directory exists
if (is_dir(DIR_FS_CATALOG_IMAGES)) {
if (!is_writeable(DIR_FS_CATALOG_IMAGES)) $messageStack->add(ERROR_CATALOG_IMAGE_DIRECTORY_NOT_WRITEABLE, 'error');
} else {
$messageStack->add(ERROR_CATALOG_IMAGE_DIRECTORY_DOES_NOT_EXIST, 'error');

//060417/zepitt/multi images extra #04
}
if (is_dir(DIR_FS_CATALOG_IMAGES_EXTRA)) {
if (!is_writeable(DIR_FS_CATALOG_IMAGES_EXTRA)) $messageStack->add(ERROR_CATALOG_IMAGE_DIRECTORY_NOT_WRITEABLE, 'error');
} else {
$messageStack->add(ERROR_CATALOG_IMAGE_DIRECTORY_DOES_NOT_EXIST, 'error');
}
//060417/zepitt/multi images extra EOF
?>
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html <?php echo HTML_PARAMS; ?>>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
<title><?php echo TITLE; ?></title>
<link rel="stylesheet" type="text/css" href="includes/stylesheet.css">
<script language="javascript" src="includes/general.js"></script>
</head>
<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" bgcolor="#FFFFFF" onload="SetFocus();">
<div id="spiffycalendar" class="text"></div>
<!-- header //-->
<?php require(DIR_WS_INCLUDES . 'header.php'); ?>
<!-- header_eof //-->

<!-- body //-->
<table border="0" width="100%" cellspacing="2" cellpadding="2">
<tr>
<td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="1" cellpadding="1" class="columnLeft">
<!-- left_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
<!-- left_navigation_eof //-->
</table></td>
<!-- body_text //-->
<td width="100%" valign="top">
<?php
if ($action == 'new_product') {
$parameters = array('products_name' => '',
'products_description' => '',
'products_url' => '',
'products_id' => '',
'products_quantity' => '',
'products_model' => '',
'products_image' => '',
//060417/zepitt/multi images extra #05
'products_image1' => '',
'products_image2' => '',
'products_image3' => '',
'products_image4' => '',
'products_image5' => '',
'products_image6' => '',
'products_image7' => '',
'products_image8' => '',
'products_image9' => '',
//060417/zepitt/multi images extra EOF
'products_price' => '',
'products_weight' => '',
'products_date_added' => '',
'products_last_modified' => '',
'products_date_available' => '',
'products_status' => '',
'products_tax_class_id' => '',
'manufacturers_id' => '');

$pInfo = new objectInfo($parameters);


//060417/zepitt/multi images extra #06
if (isset($HTTP_GET_VARS['pID']) && empty($HTTP_POST_VARS)) {
$product_query = tep_db_query("SELECT pd.products_name, pd.products_description,
pd.products_url, p.products_id, p.products_quantity, p.products_model,
p.products_image, p.products_price, p.products_weight, p.products_date_added,
p.products_last_modified, date_format(p.products_date_available, '%Y-%m-%d') as
products_date_available, p.products_status, p.products_tax_class_id,
p.manufacturers_id,
pi.products_image1, pi.products_image2, pi.products_image3, pi.products_image3, pi.products_image4, pi.products_image5,
pi.products_image6, pi.products_image7, pi.products_image8, pi.products_image9
FROM (".TABLE_PRODUCTS." p LEFT JOIN ".TABLE_PRODUCTS_IMAGES." pi ON p.products_id = pi.products_id)
INNER JOIN ".TABLE_PRODUCTS_DESCRIPTION." pd ON p.products_id = pd.products_id
WHERE p.products_id = '" . (int)$HTTP_GET_VARS['pID'] . "'
AND pd.language_id = '".(int)$languages_id."'");
$product = tep_db_fetch_array($product_query);
//060417/zepitt/multi images extra EOF

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

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

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

$languages = tep_get_languages();

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

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

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

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

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

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

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

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

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

document.forms["new_product"].products_price.value = doRound(netValue, 4);
}
//--></script>
<?php echo tep_draw_form('new_product', FILENAME_CATEGORIES, 'cPath=' . $cPath . (isset($HTTP_GET_VARS['pID']) ? '&pID=' . $HTTP_GET_VARS['pID'] : '') . '&action=new_product_preview', 'post', 'enctype="multipart/form-data"'); ?>
<table border="0" width="100%" cellspacing="0" cellpadding="2">
<tr>
<td><table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td class="pageHeading"><?php echo sprintf(TEXT_NEW_PRODUCT, tep_output_generated_category_path($current_category_id)); ?></td>
<td class="pageHeading" align="right"><?php echo tep_draw_separator('pixel_trans.gif', HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>
</tr>
</table></td>
</tr>
<tr>
<td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
</tr>
<tr>
<td><table border="0" cellspacing="0" cellpadding="2">
<tr>
<td class="main"><?php echo TEXT_PRODUCTS_STATUS; ?></td>
<td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;' . tep_draw_radio_field('products_status', '1', $in_status) . '&nbsp;' . TEXT_PRODUCT_AVAILABLE . '&nbsp;' . tep_draw_radio_field('products_status', '0', $out_status) . '&nbsp;' . TEXT_PRODUCT_NOT_AVAILABLE; ?></td>
</tr>
<tr>
<td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
</tr>
<tr>
<td class="main"><?php echo TEXT_PRODUCTS_DATE_AVAILABLE; ?><br><small>(YYYY-MM-DD)</small></td>
<td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;'; ?><script language="javascript">dateAvailable.writeControl(); dateAvailable.dateFormat="yyyy-MM-dd";</script></td>
</tr>
<tr>
<td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
</tr>
<tr>
<td class="main"><?php echo TEXT_PRODUCTS_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_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>
<tr>
<td class="main"><?php echo TEXT_PRODUCTS_IMAGE; ?></td>
<?php
//060417/zepitt/multi images extra #07
// input form
?>
<td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;'.
tep_draw_file_field('products_image').
tep_draw_separator('pixel_trans.gif', '24', '15').'&nbsp;'.
$pInfo->products_image.tep_draw_hidden_field('products_previous_image', $pInfo->products_image);?>
</td>
</tr>
<tr>
<td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
</tr>

<?php
for($nb=1; $nb <= NB_IMAGE_EXTRA ; $nb++) {
$var_products_image = "products_image".$nb;
$var_products_previous_image = "products_previous_image".$nb;
$var_delete_image = "delete_image".$nb;
?>
<tr>
<td class="main"><?php echo TEXT_PRODUCTS_IMAGE_EXTRA.$nb; ?></td>
<td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15').'&nbsp;'.
tep_draw_file_field($var_products_image).
tep_draw_separator('pixel_trans.gif', '24', '15').'&nbsp;'.
$pInfo->$var_products_image.tep_draw_hidden_field($var_products_previous_image, $pInfo->$var_products_image);?>
<?php if($pInfo->$var_products_image) echo tep_draw_separator('pixel_trans.gif', '24', '15').tep_draw_checkbox_field($var_delete_image, 'yes', false).TEXT_DELETE_IMAGE;?>
</td>
</tr>
<tr>
<td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
</tr>
<?php
}
//060417/zepitt/multi images extra EOF
?>


<?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>
</table></td>
</tr>
<tr>
<td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
</tr>
<tr>
<td class="main" align="right"><?php echo tep_draw_hidden_field('products_date_added', (tep_not_null($pInfo->products_date_added) ? $pInfo->products_date_added : date('Y-m-d'))) . tep_image_submit('button_preview.gif', IMAGE_PREVIEW) . '&nbsp;&nbsp;<a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . (isset($HTTP_GET_VARS['pID']) ? '&pID=' . $HTTP_GET_VARS['pID'] : '')) . '">' . tep_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a>'; ?></td>
</tr>
</table></form>
<?php
} elseif ($action == 'new_product_preview') {
if (tep_not_null($HTTP_POST_VARS)) {
$pInfo = new objectInfo($HTTP_POST_VARS);
$products_name = $HTTP_POST_VARS['products_name'];
$products_description = $HTTP_POST_VARS['products_description'];
$products_url = $HTTP_POST_VARS['products_url'];
} else {

//060417/zepitt/multi images extra #08
$product_query = tep_db_query("SELECT p.products_id, pd.language_id,
pd.products_name, pd.products_description, pd.products_url, p.products_quantity,
p.products_model, p.products_image,
pi.products_image1, pi.products_image2, pi.products_image3, pi.products_image4, pi.products_image5,
pi.products_image6, pi.products_image7, pi.products_image8, pi.products_image9,
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 LEFT JOIN ".TABLE_PRODUCTS_IMAGES." pi ON p.products_id = pi.products_id)
INNER JOIN ".TABLE_PRODUCTS_DESCRIPTION." pd ON p.products_id = pd.products_id
WHERE p.products_id = '" . (int)$HTTP_GET_VARS['pID'] . "'");

$product = tep_db_fetch_array($product_query);
$pInfo = new objectInfo($product);
$products_image_name = $pInfo->products_image;
$products_image1_name = $pInfo->products_image1;
$products_image2_name = $pInfo->products_image2;
$products_image3_name = $pInfo->products_image3;
$products_image4_name = $pInfo->products_image4;
$products_image5_name = $pInfo->products_image5;
$products_image6_name = $pInfo->products_image6;
$products_image7_name = $pInfo->products_image7;
$products_image8_name = $pInfo->products_image8;
$products_image9_name = $pInfo->products_image9;
//060417/zepitt/multi images extra EOF
}
$form_action = (isset($HTTP_GET_VARS['pID'])) ? 'update_product' : 'insert_product';

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

$languages = tep_get_languages();
for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
if (isset($HTTP_GET_VARS['read']) && ($HTTP_GET_VARS['read'] == 'only')) {
$pInfo->products_name = tep_get_products_name($pInfo->products_id, $languages[$i]['id']);
$pInfo->products_description = tep_get_products_description($pInfo->products_id, $languages[$i]['id']);
$pInfo->products_url = tep_get_products_url($pInfo->products_id, $languages[$i]['id']);
} else {
$pInfo->products_name = tep_db_prepare_input($products_name[$languages[$i]['id']]);
$pInfo->products_description = tep_db_prepare_input($products_description[$languages[$i]['id']]);
$pInfo->products_url = tep_db_prepare_input($products_url[$languages[$i]['id']]);
}
?>
<table border="0" width="100%" cellspacing="0" cellpadding="2">
<tr>
<td><table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td class="pageHeading"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . '&nbsp;' . $pInfo->products_name; ?></td>
<td class="pageHeading" align="right"><?php echo $currencies->format($pInfo->products_price); ?></td>
</tr>
</table></td>
</tr>
<tr>
<td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
</tr>
<tr>
<td class="main">
<?php
//060417/zepitt/multi images extra #09
// preview
?>

<table border="0" cellspacing="0" cellpadding="2" align="right">
<?php
echo "<tr><td class='smallText'>".tep_image(DIR_WS_CATALOG_IMAGES . $products_image_name, $pInfo->products_name, SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'align="right" hspace="5" vspace="5"') . "</td></tr>";

for($nb=1; $nb <= NB_IMAGE_EXTRA ; $nb++) {
$var_products_image_name = "products_image".$nb."_name";

if ($$var_products_image_name) echo "<tr><td class='smallText'>".tep_image(DIR_WS_CATALOG_IMAGES_EXTRA . $$var_products_image_name, $pInfo->products_name, SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'align="right" hspace="5" vspace="5"') ."</td></tr>";
}
?>
</table>

<table border="0" cellspacing="0" cellpadding="2" align="right">
<tr><td>
<?=$pInfo->products_description;?>
</td></tr></table>
</td>
</tr>
<?php
//060417/zepitt/multi images extra EOF

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('products_url[' . $languages[$i]['id'] . ']', htmlspecialchars(stripslashes($products_url[$languages[$i]['id']])));
}
echo tep_draw_hidden_field('products_image', stripslashes($products_image_name));

//060417/zepitt/multi images extra #10
echo tep_draw_hidden_field('products_image1', stripslashes($products_image1_name));
echo tep_draw_hidden_field('products_image2', stripslashes($products_image2_name));
echo tep_draw_hidden_field('products_image3', stripslashes($products_image3_name));
echo tep_draw_hidden_field('products_image4', stripslashes($products_image4_name));
echo tep_draw_hidden_field('products_image5', stripslashes($products_image5_name));
echo tep_draw_hidden_field('products_image6', stripslashes($products_image6_name));
echo tep_draw_hidden_field('products_image7', stripslashes($products_image7_name));
echo tep_draw_hidden_field('products_image8', stripslashes($products_image8_name));
echo tep_draw_hidden_field('products_image9', stripslashes($products_image9_name));
//060417/zepitt/multi images extra EOF


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_CANC
skeeweeaka
Anyone have any answers, please...
skeeweeaka
Whenever I try to add the pictures, I am getting this error. I tried changing my permissions for the database so I checked all of the possibilities and nothing is working still.... Anybody have a clue....???

Error: Destination not writeable.
Error: Destination not writeable.
Error: Destination not writeable.
Error: Destination not writeable.
Warning: No file uploaded.
Warning: No file uploaded.
Warning: No file uploaded.
Error: Catalog images directory is not writeable: /hsphere/local/home/skeeweea/absolutelybeautifulhairillusions.com/catalog/images/
Error: Catalog images directory is not writeable: /hsphere/local/home/skeeweea/absolutelybeautifulhairillusions.com/catalog/images/


THANKS...
skeeweeaka
Ok, finally after changing the permissions for the image file and image folder it is working. All of the images, however, are showing up on the right hand side. Does anyone know of a fix that might distribute the images evenly in the middle of the product information page, as opposed to on the right... Can someone tell me what to look in....

Also, I am still getting "Warning no file uploaded when I select the images to add to the file and click preview, but as soon as I select update the error goes away.... Anyone have a fix for that one! Wouldn't want that to cause anymore problems...

Thanks!
Sigel
i wish I would have checked this thread before installing this contrib... as there is 0 support for it..

I'm not having any major problems other than you can't delete any of the extra images you add, anyone know how to fix that?
wankel
blink.gif

dear nico,

I follow all the step.

but nothing happen to my osc......

I don't know Y and how come..........

My testing site is here.

http://www.rebeccawatch.cosmic.co.il/catalog/index

Please look look, the problem is on my brain of or others things............

Wankel:)
peterv
QUOTE (dcross02 @ Apr 25 2006, 09:03 PM) *
Got everything working, except that when I click on any of the additional images to enlarge, I get this error:

1054 - Unknown column 'pi.products_image' in 'field list'

SELECT pd.products_name, pi.products_image FROM products_images pi, products p, products_description pd WHERE p.products_id = pd.products_id AND p.products_id = pi.products_id AND p.products_status = '1' AND p.products_id = '107' AND pd.language_id = '1'

[TEP STOP]


This does not happen on the main image when clicking on it to enlarge. Anybody?

I've the same problem. Is this a mysql problem? My provider use mysql 4.1.11?
Is there a solution?
motoroma
Hello, when I have installed this contribution, show on this menssagge in home

Warning: Cannot modify header information - headers already sent by (output started at /data/members/free/tripod/es/s/h/a/shales/htdocs/index.php:1) in /data/members/free/tripod/es/s/h/a/shales/htdocs/includes/functions/general.php on line 1174

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /data/members/free/tripod/es/s/h/a/shales/htdocs/index.php:1) in /data/members/free/tripod/es/s/h/a/shales/htdocs/includes/functions/sessions.php on line 67

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /data/members/free/tripod/es/s/h/a/shales/htdocs/index.php:1) in /data/members/free/tripod/es/s/h/a/shales/htdocs/includes/functions/sessions.php on line 67

can anybody help to me?
thanks
avtoritet
Guys,

Have a problem with this contribution.
One member had it, followed instructions, but nothing changed
Just in case I want to attach database screen shots, I am new to this so maybe input wasn't good.

This pic shows product_images table



This one shows alterations to configuration table



Thanks for patronage
avtoritet
No help required Guys, I fixed it.
leo.lenaour
Hello,
Here is my problem,
When I add a product with extra images, everything seems to be ok untill the preview page : I see the extra images.
But when I click on "Insert", Everything seems to be ok, the extra images are uploaded but nothing happened to my table products_images and no erro message is displayed so the extra images is'nt added to the product.
Thanks
Eldros
hello,

i have a very strange problem. maybe its a small one, but my php is bad^^

the installation worked well and in the admin i can upload the additional images. but they are not shown in the catalog?

you can view the error at
http://www.eldrosmusic.de/shop/catalog/pro...amp;language=en

i would be thankful for every hint.

thanks
xix17
I would like to know if anyone here know where I can find below requirement on displaying extra images...


I manage to install and use extra images, BUT I would like to have the extra images change within the existing image and do not popup.
Meaning it will replace and change the picture in the product_info.php page

anyone can help me?
xix17


this is what i need...
Eldros
do nobody have a clue on that?
i have to reinstall the shop then crying.gif
Sigel
I'm still trying to see why I can't delete any images smile.gif
Eldros
so, nobody seems to care aout this contribute - do not download if you are not good in php!
xix17
QUOTE (xix17 @ Oct 2 2006, 09:46 AM) *


this is what i need...



Anyone can help me with this request.... crying.gif
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2008 Invision Power Services, Inc.