Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Sign in to follow this  
orient

Categories Products Images Folder Tree + 3 Images

Recommended Posts

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?

Share this post


Link to post
Share on other sites
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?

 

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

Share this post


Link to post
Share on other sites
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 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

Share this post


Link to post
Share on other sites

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.


"That's because it's fly soup, sir..."

Share this post


Link to post
Share on other sites

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


"That's because it's fly soup, sir..."

Share this post


Link to post
Share on other sites
Guest
****

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.

Share this post


Link to post
Share on other sites
Guest

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:

Share this post


Link to post
Share on other sites

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


"That's because it's fly soup, sir..."

Share this post


Link to post
Share on other sites
Guest

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()) {

Share this post


Link to post
Share on other sites
Guest
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()) {

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.

Share this post


Link to post
Share on other sites

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)!


"That's because it's fly soup, sir..."

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
Guest

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??????????????????????????

Share this post


Link to post
Share on other sites

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...


"That's because it's fly soup, sir..."

Share this post


Link to post
Share on other sites

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 !

Share this post


Link to post
Share on other sites
Guest

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:

Share this post


Link to post
Share on other sites

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


"That's because it's fly soup, sir..."

Share this post


Link to post
Share on other sites

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">

     

Share this post


Link to post
Share on other sites
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?

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. :)


"That's because it's fly soup, sir..."

Share this post


Link to post
Share on other sites

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. =(


Wendy James

 

Creativity is allowing yourself to make mistakes. Art is knowing which ones to keep.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×