orient Posted September 4, 2004 Share Posted September 4, 2004 I found the following two contribs are very useful, i. Categories and Products Images Folder Tree URL: http://www.oscommerce.com/community/contri...ages+categories ii. 3 Images URL: http://www.oscommerce.com/community/contri...l/search,3+size but they seem not compatible to each other. Anyone implimenting both could help me make them work together? Quote Watermark v1.1 Link to comment Share on other sites More sharing options...
gms Posted February 7, 2005 Share Posted February 7, 2005 I found the following two contribs are very useful, i. Categories and Products Images Folder Tree URL: http://www.oscommerce.com/community/contri...ages+categories ii. 3 Images URL: http://www.oscommerce.com/community/contri...l/search,3+size but they seem not compatible to each other. Anyone implimenting both could help me make them work together? <{POST_SNAPBACK}> I'm working on this as well. I have the multiple images, as well as popup images installed, and I'm trying to get this working. i have the add working, but the popup and multi-images isn't quite there yet. also, I've noticed that when you update a main image for a product, the 'old' image is left in the directory. I'm working on a way to be able to remove it. I haven't tested copy and move functions yet, but that will come once I have the contribs working together. If you've gotten this working already, I'd appreciate knowing Quote Link to comment Share on other sites More sharing options...
ignacionager Posted March 11, 2005 Share Posted March 11, 2005 I'm working on this as well. I have the multiple images, as well as popup images installed, and I'm trying to get this working. <{POST_SNAPBACK}> I would be very interested, as I have install too this contribution to found that the additional images were not linked under the new categories folder, and that any pop up image is also linked to the /images/, and not to the new categories folder. When you have something working, would be nice if you post here or direct, and we can test best Quote Link to comment Share on other sites More sharing options...
LCAngela Posted March 23, 2005 Share Posted March 23, 2005 Hello, all... I'm also having a problem using the Categories and Products Images Folder Tree v1.2 with a multiple product image mod (Extra Images v1.4) on an OSC 2.2 MS2 install. Both mods installed with no problem, but when editing an existing product that already has an image defined, the containing category folder(s) are repeated with every save. For example, jewelry/image01.jpg would become jewelry/jewelry/image01.jpg, then jewelry/jewelry/jewelry/image01.jpg, etc. Product images in one or two levels of subfolders get the same treatment, with a horribly long result: cards/holidays/christmas/cards/holidays/christmas/cards/holidays/christmas/image02.jpg I could, of course, just reupload the image every time I edit a product, but how tedious!! I'm by no means a PHP or mySQL adept, but I have the feeling that the problem lies in the Categories and Products Images Folder Tree mod (which is a relatively small amount of code to pick through). I'm doing the best I can to pinpoint the problem snippet with my limited PHP/mySQL knowledge. Perhaps with this info, someone who is more familiar with PHP/mySQL might be able to find the problem! In the meantime, I'll keep poking around to see what I can figure out. Quote "That's because it's fly soup, sir..." Link to comment Share on other sites More sharing options...
LCAngela Posted March 24, 2005 Share Posted March 24, 2005 K, I've determined that it's just the Categories and Products Images Folder Tree mod that's the issue. It doesn't matter which multiple-image mods I try, I have the same problem when editing existing products. Here is the code portion of the readme file from the troublesome mod. I'm still working on which snippet is causing the problem, so if anyone else has a clue, I'd be eternally grateful for a shove in the right direction. :) ===== admin/categories.php Around Line 57 find: tep_db_perform(TABLE_CATEGORIES, $sql_data_array, 'update', "categories_id = '" . (int)$categories_id . "'"); } $languages = tep_get_languages(); change to: tep_db_perform(TABLE_CATEGORIES, $sql_data_array, 'update', "categories_id = '" . (int)$categories_id . "'"); } // images categories if ($action == 'update_category') { $old_dir_name = DIR_FS_CATALOG_IMAGES . tep_output_generated_category_path_fs($categories_id); } // images categories eof $languages = tep_get_languages(); Around line 78 find: 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 . "'"); } change to: 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'] . "'"); } } // images categories $dir_to_make = DIR_FS_CATALOG_IMAGES . tep_output_generated_category_path_fs($categories_id); if (is_dir($dir_to_make) == false) { if ($action == 'insert_category') { mkdir($dir_to_make,0755); chmod($dir_to_make,0777); } elseif ($action == 'update_category') { rename($old_dir_name, $dir_to_make); $db_folder = tep_output_generated_category_path_fs($categories_id); $products_renamed_query = tep_db_query("update products p, products_to_categories pc set p.products_image = concat('".$db_folder."', (substring_index(p.products_image, '/', -1))) where pc.products_id = p.products_id and pc.categories_id = '" . (int)$categories_id . "'"); $categories_renamed_query = tep_db_query("update categories set categories_image = concat('".$db_folder."', (substring_index(categories_image, '/', -1))) where categories_id = '" . (int)$categories_id . "'"); } } if ($categories_image = new upload('categories_image', $dir_to_make)) { $db_image_file_name = tep_output_generated_category_path_fs($categories_id) . $categories_image->filename; tep_db_query("update " . TABLE_CATEGORIES . " set categories_image = '" . tep_db_input($db_image_file_name) . "' where categories_id = '" . (int)$categories_id . "'"); } // images categories eof Around line 241 find: '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']); } change to: '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')) { // images categories $sql_data_array['products_image'] = tep_output_generated_category_path_fs($current_category_id) . tep_db_prepare_input($HTTP_POST_VARS['products_image']); // eof images categories } around line 335 find: 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()) { change to: case 'new_product_preview': // copy image only if modified $products_image = new upload('products_image'); // images categories $prod_path = $HTTP_GET_VARS['cPath']; $lchar = strrpos($prod_path, '_'); if ($lchar + 1 == 1) { $lachar = 0; } else { $lachar = $lchar + 1; } $prod_path_id = substr($prod_path, $lachar); $prod_folder = tep_output_generated_category_path_fs($prod_path_id); $products_image->set_destination(DIR_FS_CATALOG_IMAGES . $prod_folder); // eof images categories if ($products_image->parse() && $products_image->save()) { admin/includes/functions/general.php add the following at the end of the file before the closing ?> // images categories function tep_output_generated_category_path_fs($id, $from = 'category') { $calculated_category_path_string = ''; $calculated_category_path = tep_generate_category_path($id, $from); for ($i=0, $n=sizeof($calculated_category_path); $i<$n; $i++) { $ii = ($n - 1) - $i; for ($j=0, $k=sizeof($calculated_category_path[$ii]); $j<$k; $j++) { $jj = ($k - 1) - $j; $dir_path = ereg_replace("[^a-z0-9._]", "", str_replace(" ", "_", str_replace("%20", "_", strtolower($calculated_category_path[$ii][$jj]['text'])))); $calculated_category_string .= $dir_path . '/'; } } return $calculated_category_string; } // eof images categories Quote "That's because it's fly soup, sir..." Link to comment Share on other sites More sharing options...
Guest Posted March 27, 2005 Share Posted March 27, 2005 ****For example, jewelry/image01.jpg would become jewelry/jewelry/image01.jpg, then jewelry/jewelry/jewelry/image01.jpg, etc. I got the same problem with only the products images folder tree installed. When i vreate a new product everything is working fine. But when i edit the product and don't change the image the image location folder is added again. Quote Link to comment Share on other sites More sharing options...
Guest Posted March 29, 2005 Share Posted March 29, 2005 Is there still nobody who has a clue to solve this problem? It seems that i'm not hte only one who got stuck on this one. :blink: Please can somebody help us? I hope that the contrib maker is reading this to give some support on his contrib :thumbsup: Quote Link to comment Share on other sites More sharing options...
LCAngela Posted March 29, 2005 Share Posted March 29, 2005 I sent him a PM about it...no response yet. :unsure: This would be such a great contrib if that one bug was fixed...hell, it's a great contrib anyway, but it would be a great FLAWLESS contrib. ;) Quote "That's because it's fly soup, sir..." Link to comment Share on other sites More sharing options...
Guest Posted March 29, 2005 Share Posted March 29, 2005 I found the troubled code (i think) In admin/catagories.php case 'new_product_preview': // copy image only if modified $products_image = new upload('products_image'); // images categories $prod_path = $HTTP_GET_VARS['cPath']; $lchar = strrpos($prod_path, '_'); if ($lchar + 1 == 1) { $lachar = 0; } else { $lachar = $lchar + 1; } $prod_path_id = substr($prod_path, $lachar); $prod_folder = tep_output_generated_category_path_fs($prod_path_id); $products_image->set_destination(DIR_FS_CATALOG_IMAGES . $prod_folder); // eof images categories if ($products_image->parse() && $products_image->save()) { Quote Link to comment Share on other sites More sharing options...
Guest Posted March 29, 2005 Share Posted March 29, 2005 I found the troubled code (i think) In admin/catagories.php ? ? ?case 'new_product_preview': // copy image only if modified ? ? ? ?$products_image = new upload('products_image'); // images categories ? ? ? ?$prod_path = $HTTP_GET_VARS['cPath']; ? ? ? ?$lchar = strrpos($prod_path, '_'); ?if ($lchar + 1 == 1) { ? ? ? ?$lachar = 0; ? ? ? ?} else { ? ? ? ?$lachar = $lchar + 1; ? ? ? ?} ?$prod_path_id = substr($prod_path, $lachar); ? ? ? ?$prod_folder = tep_output_generated_category_path_fs($prod_path_id); ? ? ? ?$products_image->set_destination(DIR_FS_CATALOG_IMAGES . $prod_folder); // eof images categories ? ? ? ?if ($products_image->parse() && $products_image->save()) { <{POST_SNAPBACK}> In addition. When you edit the product you still see in you addressbar: http://www.navco.nl/catalog/admin/categori...Path=23&pID=33&action=new_product This means to my opion that you enter the new product section. Which means you have to upload an image. If you click on preview when you edit the product you still see the image but as soon as you clivk "update" the image path is added again to the image. Quote Link to comment Share on other sites More sharing options...
LCAngela Posted March 31, 2005 Share Posted March 31, 2005 Fantom, you're right...that's the problem snippet of code. I think either the placing is wrong, or it needs some sort of exclusive statement in or around it. I've tried a few things, and while it solves the problem for existing products with images, it doesn't add the category tree to any new image locations. :-/ Still no response from the author; is no one else who's using this contrib having this problem? It seems like such a simple issue, but again, my PHP knowledge is limited. I'm trying simple if/else statements, mostly, and that doesn't seem the way to go, so far. Please let me know if you find a solution (or a working contrib that does the same thing)! Quote "That's because it's fly soup, sir..." Link to comment Share on other sites More sharing options...
dsatchell Posted March 31, 2005 Share Posted March 31, 2005 I'm having this same problem with the Categories and Products Images Folder Tree v1.2 but I'm using DynamicMoPics. It work really nice with the catecory subdirectories, I just upload the main image such as cjn0009bl.jpg and then the additional images as cjn0009bl-1.jpg, cjn0009bl-2.jpg, etc. and no matter how many there are it reads them and inserts them into the product description but I don't have to make the thumbnails as with DynamicMoPics. But like everyone else, if I edit the product and don't upload a new image it adds on the directory name again. Dave. Quote Link to comment Share on other sites More sharing options...
Guest Posted April 1, 2005 Share Posted April 1, 2005 Why isn't anybody replying to this with the knowledge to solve this. :angry: I can't imagine that only the contrib writer has knowledge about this. :-" Please........................anyone?????????????????????????? Quote Link to comment Share on other sites More sharing options...
LCAngela Posted April 2, 2005 Share Posted April 2, 2005 It really bites that no knowledgable person will attempt to tackle this contrib...it would be so great if it worked properly! I've removed the contrib's code from my friend's store site and will be using the solution given here instead. It's not automated, but it's as close as I'm going to get, it seems. I'll be eagerly awaiting any fix that's published, but I refuse to push back my friend's plans any more than they already have been. Good luck to those of you who will continue working the issue... Quote "That's because it's fly soup, sir..." Link to comment Share on other sites More sharing options...
Rockfell Posted April 3, 2005 Share Posted April 3, 2005 Hello, I had the same problem then I asked in the french forum for a solution. User "Osgadou" gave me the link to the answer : original post here. To resume : In admin/categories.php, find : if (isset($HTTP_POST_VARS['products_image']) && tep_not_null($HTTP_POST_VARS['products_image']) && ($HTTP_POST_VARS['products_image'] != 'none')) { // images categories $sql_data_array['products_image'] = tep_output_generated_category_path_fs($current_category_id) . tep_db_prepare_input($HTTP_POST_VARS['products_image']); // eof images categories } Replace with : if (isset($HTTP_POST_VARS['products_image']) && tep_not_null($HTTP_POST_VARS['products_image']) && ($HTTP_POST_VARS['products_image'] != 'none')) { $product_query = tep_db_query("select products_image from " . TABLE_PRODUCTS . " where products_id = '" . (int)$products_id . "'"); $product = tep_db_fetch_array($product_query); // Check if image path is already in the DB if ($product['products_image'] != $HTTP_POST_VARS['products_image']) { // images categories $sql_data_array['products_image'] = tep_output_generated_category_path_fs($current_category_id) . tep_db_prepare_input($HTTP_POST_VARS['products_image']); // eof images categories } } It works for me. I use it too with "More_Pics_6 For 2.2 Ms2" (contrib. 1611), no problems. Sorry for my bad english, it isn't my first language, Good luck ! Quote Link to comment Share on other sites More sharing options...
Guest Posted April 3, 2005 Share Posted April 3, 2005 Rockfell, You're the man :thumbsup: :thumbsup: :thumbsup: Thanks for bringing this to our attention. This thing was really killing me. :blink: You saved me from a lot of explaining to my friend. :rolleyes: Quote Link to comment Share on other sites More sharing options...
LCAngela Posted April 4, 2005 Share Posted April 4, 2005 Rockfell, thanks SO MUCH for sharing this fix! :thumbsup: Not to look a gift horse in the mouth, but I would be on top of the world if someone could figure out how to tell the Additional Images v1.11 contrib to upload a product's extra images into the appropriate subfolder. ;) The tinkering I did with it only resulted in broken image links and a lot of frustration on my part. :P Quote "That's because it's fly soup, sir..." Link to comment Share on other sites More sharing options...
dsatchell Posted April 20, 2005 Share Posted April 20, 2005 I could use some help on this please. I fixed the repeating folder name but when I upload the image and then click on PREVIEW, I don't get an image in the image box. I can see that it has the image name is just doesn't have the folder name in front. Here is my categories.php file. What am I missing? <?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 (c) 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 . "'"); }// images categories if ($action == 'update_category') { $old_dir_name = DIR_FS_CATALOG_IMAGES . tep_output_generated_category_path_fs($categories_id); }// images categories eof $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'] . "'"); } }// images categories $dir_to_make = DIR_FS_CATALOG_IMAGES . tep_output_generated_category_path_fs($categories_id); if (is_dir($dir_to_make) == false) { if ($action == 'insert_category') { mkdir($dir_to_make,0755); chmod($dir_to_make,0777); } elseif ($action == 'update_category') { rename($old_dir_name, $dir_to_make); $db_folder = tep_output_generated_category_path_fs($categories_id); $products_renamed_query = tep_db_query("update products p, products_to_categories pc set p.products_image = concat('".$db_folder."', (substring_index(p.products_image, '/', -1))) where pc.products_id = p.products_id and pc.categories_id = '" . (int)$categories_id . "'"); $categories_renamed_query = tep_db_query("update categories set categories_image = concat('".$db_folder."', (substring_index(categories_image, '/', -1))) where categories_id = '" . (int)$categories_id . "'"); } } if ($categories_image = new upload('categories_image', $dir_to_make)) { $db_image_file_name = tep_output_generated_category_path_fs($categories_id) . $categories_image->filename; tep_db_query("update " . TABLE_CATEGORIES . " set categories_image = '" . tep_db_input($db_image_file_name) . "' where categories_id = '" . (int)$categories_id . "'"); }// images categories eof 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')) { $product_query = tep_db_query("select products_image from " . TABLE_PRODUCTS . " where products_id = '" . (int)$products_id . "'"); $product = tep_db_fetch_array($product_query); // Check if image path is already in the DB if ($product['products_image'] != $HTTP_POST_VARS['products_image']){ // images categories $sql_data_array['products_image'] = tep_output_generated_category_path_fs($current_category_id) . tep_db_prepare_input($HTTP_POST_VARS['products_image']); // eof images categories } } 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]), 'products_url' => tep_db_prepare_input($HTTP_POST_VARS['products_url'][$language_id]),// BoF Header Tag Controller 'products_head_title_tag' => tep_db_prepare_input($HTTP_POST_VARS['products_head_title_tag'][$language_id]), 'products_head_desc_tag' => tep_db_prepare_input($HTTP_POST_VARS['products_head_desc_tag'][$language_id]), 'products_head_keywords_tag' => tep_db_prepare_input($HTTP_POST_VARS['products_head_keywords_tag'][$language_id]));// EoF Header Tag Controller if ($action == 'insert_product') { $insert_sql_data = array('products_id' => $products_id, 'language_id' => $language_id); $sql_data_array = array_merge($sql_data_array, $insert_sql_data); tep_db_perform(TABLE_PRODUCTS_DESCRIPTION, $sql_data_array); } elseif ($action == 'update_product') { tep_db_perform(TABLE_PRODUCTS_DESCRIPTION, $sql_data_array, 'update', "products_id = '" . (int)$products_id . "' and language_id = '" . (int)$language_id . "'"); } } if (USE_CACHE == 'true') { tep_reset_cache_block('categories'); tep_reset_cache_block('also_purchased'); } tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $products_id)); } break; case 'copy_to_confirm': if (isset($HTTP_POST_VARS['products_id']) && isset($HTTP_POST_VARS['categories_id'])) { $products_id = tep_db_prepare_input($HTTP_POST_VARS['products_id']); $categories_id = tep_db_prepare_input($HTTP_POST_VARS['categories_id']); if ($HTTP_POST_VARS['copy_as'] == 'link') { if ($categories_id != $current_category_id) { $check_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_TO_CATEGORIES . " where products_id = '" . (int)$products_id . "' and categories_id = '" . (int)$categories_id . "'"); $check = tep_db_fetch_array($check_query); if ($check['total'] < '1') { tep_db_query("insert into " . TABLE_PRODUCTS_TO_CATEGORIES . " (products_id, categories_id) values ('" . (int)$products_id . "', '" . (int)$categories_id . "')"); } } else { $messageStack->add_session(ERROR_CANNOT_LINK_TO_SAME_CATEGORY, 'error'); } } elseif ($HTTP_POST_VARS['copy_as'] == 'duplicate') { $product_query = tep_db_query("select products_quantity, products_model, products_image, products_price, products_date_available, products_weight, products_tax_class_id, manufacturers_id from " . TABLE_PRODUCTS . " where products_id = '" . (int)$products_id . "'"); $product = tep_db_fetch_array($product_query); tep_db_query("insert into " . TABLE_PRODUCTS . " (products_quantity, products_model,products_image, products_price, products_date_added, products_date_available, products_weight, products_status, products_tax_class_id, manufacturers_id) values ('" . tep_db_input($product['products_quantity']) . "', '" . tep_db_input($product['products_model']) . "', '" . tep_db_input($product['products_image']) . "', '" . tep_db_input($product['products_price']) . "', now(), '" . 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(); // BoF Header Tag Controller $description_query = tep_db_query("select language_id, products_name, products_description, products_head_title_tag, products_head_desc_tag, products_head_keywords_tag, products_url from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$products_id . "'");// EoF Header Tag Controller while ($description = tep_db_fetch_array($description_query)) {// BoF Header Tag Controller tep_db_query("insert into " . TABLE_PRODUCTS_DESCRIPTION . " (products_id, language_id, products_name, products_description, products_head_title_tag, products_head_desc_tag, products_head_keywords_tag, 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_head_title_tag']) . "', '" . tep_db_input($description['products_head_desc_tag']) . "', '" . tep_db_input($description['products_head_keywords_tag']) . "', '" . tep_db_input($description['products_url']) . "', '0')");// EoF Header Tag Controller } 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');// images categories $prod_path = $HTTP_GET_VARS['cPath']; $lchar = strrpos($prod_path, '_'); if ($lchar + 1 == 1) { $lachar = 0; } else { $lachar = $lchar + 1; } $prod_path_id = substr($prod_path, $lachar); $prod_folder = tep_output_generated_category_path_fs($prod_path_id); $products_image->set_destination(DIR_FS_CATALOG_IMAGES . $prod_folder);// eof images categories if ($products_image->parse() && $products_image->save()) { $products_image_name = $products_image->filename; } else { $products_image_name = (isset($HTTP_POST_VARS['products_previous_image']) ? $HTTP_POST_VARS['products_previous_image'] : ''); } break; } } // check if the catalog image directory exists if (is_dir(DIR_FS_CATALOG_IMAGES)) { if (!is_writeable(DIR_FS_CATALOG_IMAGES)) $messageStack->add(ERROR_CATALOG_IMAGE_DIRECTORY_NOT_WRITEABLE, 'error'); } else { $messageStack->add(ERROR_CATALOG_IMAGE_DIRECTORY_DOES_NOT_EXIST, 'error'); }?><!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"><html <?php echo HTML_PARAMS; ?>><head><meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>"><title><?php echo TITLE; ?></title> <link rel="stylesheet" type="text/css" href="includes/stylesheet.css"><script language="javascript" src="includes/general.js"></script></head><body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" bgcolor="#FFFFFF" onload="SetFocus();"><div id="spiffycalendar" class="text"></div><!-- header //--><?php require(DIR_WS_INCLUDES . 'header.php'); ?><!-- header_eof //--> <!-- body //--><table border="0" width="100%" cellspacing="2" cellpadding="2"> <tr> <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="1" cellpadding="1" class="columnLeft"><!-- left_navigation //--><?php require(DIR_WS_INCLUDES . 'column_left.php'); ?><!-- left_navigation_eof //--> </table></td><!-- body_text //--> <td width="100%" valign="top"><?php if ($action == 'new_product') { $parameters = array('products_name' => '', 'products_description' => '', 'products_url' => '', 'products_id' => '', 'products_quantity' => '', 'products_model' => '', 'products_image' => '', 'products_price' => '', 'products_weight' => '', 'products_date_added' => '', 'products_last_modified' => '', 'products_date_available' => '', 'products_status' => '', 'products_tax_class_id' => '', 'manufacturers_id' => ''); $pInfo = new objectInfo($parameters); if (isset($HTTP_GET_VARS['pID']) && empty($HTTP_POST_VARS)) {// BoF Header Tag Controller $product_query = tep_db_query("select 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_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 . "'");// EoF Header Tag Controller $product = tep_db_fetch_array($product_query); $pInfo->objectInfo($product); } elseif (tep_not_null($HTTP_POST_VARS)) { $pInfo->objectInfo($HTTP_POST_VARS); $products_name = $HTTP_POST_VARS['products_name']; $products_description = $HTTP_POST_VARS['products_description']; $products_url = $HTTP_POST_VARS['products_url']; } $manufacturers_array = array(array('id' => '', 'text' => TEXT_NONE)); $manufacturers_query = tep_db_query("select manufacturers_id, manufacturers_name from " . TABLE_MANUFACTURERS . " order by manufacturers_name"); while ($manufacturers = tep_db_fetch_array($manufacturers_query)) { $manufacturers_array[] = array('id' => $manufacturers['manufacturers_id'], 'text' => $manufacturers['manufacturers_name']); } $tax_class_array = array(array('id' => '0', 'text' => TEXT_NONE)); $tax_class_query = tep_db_query("select tax_class_id, tax_class_title from " . TABLE_TAX_CLASS . " order by tax_class_title"); while ($tax_class = tep_db_fetch_array($tax_class_query)) { $tax_class_array[] = array('id' => $tax_class['tax_class_id'], 'text' => $tax_class['tax_class_title']); } $languages = tep_get_languages(); if (!isset($pInfo->products_status)) $pInfo->products_status = '1'; switch ($pInfo->products_status) { case '0': $in_status = false; $out_status = true; break; case '1': default: $in_status = true; $out_status = false; }?><link rel="stylesheet" type="text/css" href="includes/javascript/spiffyCal/spiffyCal_v2_1.css"><script language="JavaScript" src="includes/javascript/spiffyCal/spiffyCal_v2_1.js"></script><script language="javascript"><!-- var dateAvailable = new ctlSpiffyCalendarBox("dateAvailable", "new_product", "products_date_available","btnDate1","<?php echo $pInfo->products_date_available; ?>",scBTNMODE_CUSTOMBLUE);//--></script><script language="javascript"><!--var tax_rates = new Array();<?php for ($i=0, $n=sizeof($tax_class_array); $i<$n; $i++) { if ($tax_class_array[$i]['id'] > 0) { echo 'tax_rates["' . $tax_class_array[$i]['id'] . '"] = ' . tep_get_tax_rate_value($tax_class_array[$i]['id']) . ';' . "\n"; } }?> function doRound(x, places) { return Math.round(x * Math.pow(10, places)) / Math.pow(10, places);} function getTaxRate() { var selected_value = document.forms["new_product"].products_tax_class_id.selectedIndex; var parameterVal = document.forms["new_product"].products_tax_class_id[selected_value].value; if ( (parameterVal > 0) && (tax_rates[parameterVal] > 0) ) { return tax_rates[parameterVal]; } else { return 0; }} function updateGross() { var taxRate = getTaxRate(); var grossValue = document.forms["new_product"].products_price.value; if (taxRate > 0) { grossValue = grossValue * ((taxRate / 100) + 1); } document.forms["new_product"].products_price_gross.value = doRound(grossValue, 4);} function updateNet() { var taxRate = getTaxRate(); var netValue = document.forms["new_product"].products_price_gross.value; if (taxRate > 0) { netValue = netValue / ((taxRate / 100) + 1); } document.forms["new_product"].products_price.value = doRound(netValue, 4);}//--></script> <?php echo tep_draw_form('new_product', FILENAME_CATEGORIES, 'cPath=' . $cPath . (isset($HTTP_GET_VARS['pID']) ? '&pID=' . $HTTP_GET_VARS['pID'] : '') . '&action=new_product_preview', 'post', 'enctype="multipart/form-data"'); ?> <table border="0" width="100%" cellspacing="0" cellpadding="2"> <tr> <td><table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr> <td class="pageHeading"><?php echo sprintf(TEXT_NEW_PRODUCT, tep_output_generated_category_path($current_category_id)); ?></td> <td class="pageHeading" align="right"><?php echo tep_draw_separator('pixel_trans.gif', HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td> </tr> </table></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td> </tr> <tr> <td><table border="0" cellspacing="0" cellpadding="2"> <tr> <td class="main"><?php echo TEXT_PRODUCTS_STATUS; ?></td> <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . tep_draw_radio_field('products_status', '1', $in_status) . ' ' . TEXT_PRODUCT_AVAILABLE . ' ' . tep_draw_radio_field('products_status', '0', $out_status) . ' ' . TEXT_PRODUCT_NOT_AVAILABLE; ?></td> </tr> <tr> <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td> </tr> <tr> <td class="main"><?php echo TEXT_PRODUCTS_DATE_AVAILABLE; ?><br><small>(YYYY-MM-DD)</small></td> <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' '; ?><script language="javascript">dateAvailable.writeControl(); dateAvailable.dateFormat="yyyy-MM-dd";</script></td> </tr> <tr> <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td> </tr> <tr> <td class="main"><?php echo TEXT_PRODUCTS_MANUFACTURER; ?></td> <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . tep_draw_pull_down_menu('manufacturers_id', $manufacturers_array, $pInfo->manufacturers_id); ?></td> </tr> <tr> <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td> </tr><?php for ($i=0, $n=sizeof($languages); $i<$n; $i++) {?> <tr> <td class="main"><?php if ($i == 0) echo TEXT_PRODUCTS_NAME; ?></td> <td class="main"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . tep_draw_input_field('products_name[' . $languages[$i]['id'] . ']', (isset($products_name[$languages[$i]['id']]) ? $products_name[$languages[$i]['id']] : tep_get_products_name($pInfo->products_id, $languages[$i]['id']))); ?></td> </tr><?php }?> <tr> <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td> </tr> <tr bgcolor="#ebebff"> <td class="main"><?php echo TEXT_PRODUCTS_TAX_CLASS; ?></td> <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . tep_draw_pull_down_menu('products_tax_class_id', $tax_class_array, $pInfo->products_tax_class_id, 'onchange="updateGross()"'); ?></td> </tr> <tr bgcolor="#ebebff"> <td class="main"><?php echo TEXT_PRODUCTS_PRICE_NET; ?></td> <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . tep_draw_input_field('products_price', $pInfo->products_price, 'onKeyUp="updateGross()"'); ?></td> </tr> <tr bgcolor="#ebebff"> <td class="main"><?php echo TEXT_PRODUCTS_PRICE_GROSS; ?></td> <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . tep_draw_input_field('products_price_gross', $pInfo->products_price, 'OnKeyUp="updateNet()"'); ?></td> </tr> <tr> <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td> </tr><script language="javascript"><!--updateGross();//--></script><?php for ($i=0, $n=sizeof($languages); $i<$n; $i++) {?> <tr> <td class="main" valign="top"><?php if ($i == 0) echo TEXT_PRODUCTS_DESCRIPTION; ?></td> <td><table border="0" cellspacing="0" cellpadding="0"> <tr> <td class="main" valign="top"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']); ?> </td> <td class="main"><?php echo tep_draw_textarea_field('products_description[' . $languages[$i]['id'] . ']', 'soft', '70', '15', (isset($products_description[$languages[$i]['id']]) ? $products_description[$languages[$i]['id']] : tep_get_products_description($pInfo->products_id, $languages[$i]['id']))); ?></td> </tr> </table></td> </tr><?php }// BoF Header Tag Controller?> <tr> <td colspan="2" class="main"><hr><?php echo TEXT_PRODUCT_METTA_INFO; ?></td> </tr><?php for ($i=0, $n=sizeof($languages); $i<$n; $i++) {?> <tr> <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td> </tr> <tr> <td class="main" valign="top"><?php if ($i == 0) echo TEXT_PRODUCTS_PAGE_TITLE; ?></td> <td><table border="0" cellspacing="0" cellpadding="0"> <tr> <td class="main" valign="top"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']); ?> </td> <td class="main"><?php echo tep_draw_textarea_field('products_head_title_tag[' . $languages[$i]['id'] . ']', 'soft', '70', '5', (isset($products_head_title_tag[$languages[$i]['id']]) ? $products_head_title_tag[$languages[$i]['id']] : tep_get_products_head_title_tag($pInfo->products_id, $languages[$i]['id']))); ?></td> </tr> </table></td> </tr><?php } for ($i=0, $n=sizeof($languages); $i<$n; $i++) {?> <tr> <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td> </tr> <tr> <td class="main" valign="top"><?php if ($i == 0) echo TEXT_PRODUCTS_HEADER_DESCRIPTION; ?></td> <td><table border="0" cellspacing="0" cellpadding="0"> <tr> <td class="main" valign="top"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']); ?> </td> <td class="main"><?php echo tep_draw_textarea_field('products_head_desc_tag[' . $languages[$i]['id'] . ']', 'soft', '70', '5', (isset($products_head_desc_tag[$languages[$i]['id']]) ? $products_head_desc_tag[$languages[$i]['id']] : tep_get_products_head_desc_tag($pInfo->products_id, $languages[$i]['id']))); ?></td> </tr> </table></td> </tr><?php } for ($i=0, $n=sizeof($languages); $i<$n; $i++) {?> <tr> <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td> </tr> <tr> <td class="main" valign="top"><?php if ($i == 0) echo TEXT_PRODUCTS_KEYWORDS; ?></td> <td><table border="0" cellspacing="0" cellpadding="0"> Quote Link to comment Share on other sites More sharing options...
LCAngela Posted April 20, 2005 Share Posted April 20, 2005 I could use some help on this please. I fixed the repeating folder name but when I upload the image and then click on PREVIEW, I don't get an image in the image box. I can see that it has the image name is just doesn't have the folder name in front. Here is my categories.php file. What am I missing? <{POST_SNAPBACK}> Because the folder path + filename is stored as the image name in the database, I'm not sure there's a way to display the image the first time you upload it. I've noticed the same thing in my admin...new photos never preview the first time, but they upload fine and the path is saved in the database correctly. I can't think of a way to fix it, and nobody sees it but me and my friend, so we've resigned ourselves to the fact that it's just an aspect of the contrib; because everything else works right, we try not to let that one little problem worry us -- at least not right now. If I feel like tinkering with it later and come up with a solution, I'll post it here. :) Quote "That's because it's fly soup, sir..." Link to comment Share on other sites More sharing options...
Wendy James Posted April 24, 2005 Share Posted April 24, 2005 I am trying to figure out how to solve the missing image for a new product in the admin area as well. If I figure something out I will be sure to post it. Hoping someone else can figure it out though lol I am not holding my breathe that I will figure it out for myself. =( Quote Wendy James Creativity is allowing yourself to make mistakes. Art is knowing which ones to keep. Link to comment Share on other sites More sharing options...
paul_calf Posted December 19, 2005 Share Posted December 19, 2005 since i installed the 'categories and products images folder tree' contribution, even when 'admin/configuration/images/image required' is set to 'false' i get red crosses where the categories & subcategories images are meant to go (all other missing images are blank). this only happened since installing the contribution, how do i get rid of the red crosses? thanks in advance, paul. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.