Guest Posted January 16, 2006 Posted January 16, 2006 (edited) There is a bug when inserting a new category. The right code, near line 79, should be: // ACA START INSERT CATEGORY TABLE $categories_modules->load_post_values ($HTTP_POST_VARS); $categories_modules->get_insert_table_categories($sql_data_array); // ACA END INSERT CATEGORY TABLE My EasyPhp did not give any error, strange... all i wish to install is seperate price per customer but i think i need ACA2.0 to make it work? You do not need ACA2 to install SPPC, you can also make all the needed modifications manually in categories.php, like explained in the install instructions of SPPC. I had header tags installed prior to installing ACA and i went a replaced the categories.php file with your default one from the mod but i now see no header tags functions in the category edit or in the products edit parts of the file. Do i now need to manually go in and re-add them? I saw you made a post about there beeing an ACA module for header tags but i only see one for STS Plus??? There is an ACA module for Head Tags, but is is for ACA v1.1, not 2.0. The module for ACA2 is not yet released. I have it working for products but not yet for categories. I'll release the product module soon. You can also add it again directly into categories.php, better use a file compare program in this case. can this mod support the More Pics 6 mod? Not yet. And I'm not sure I'm going to do it as I'm not sure I need this contribution. - Rigadin Edited January 27, 2006 by 241 Quote
CDK Posted January 16, 2006 Posted January 16, 2006 (edited) There is a bug when inserting a new category. The right code, near line 79, should be: // ACA START INSERT CATEGORY TABLE $categories_modules->load_post_values ($HTTP_POST_VARS); $categories_modules->get_insert_table_categories($sql_data_array); // ACA END INSERT CATEGORY TABLE My EasyPhp did not give any error, strange... You do not need ACA2 to install SPPC, you can also make all the needed modifications manually in categories.php, like explained in the install instructions of SPPC. There is an ACA module for Head Tags, but is is for ACA v1.1, not 2.0. The module for ACA2 is not yet released. I have it working for products but not yet for categories. I'll release the product module soon. You can also add it again directly into categories.php, better use a file compare program in this case. Not yet. And I'm not sure I'm going to do it as I'm not sure I need this contribution. - Rigadin thx Edited January 27, 2006 by 241 Quote
czeczek Posted January 16, 2006 Posted January 16, 2006 (edited) Hi, I installed ACA v.2.0 (previously I used 1.1) I've got following modules installed: Category: Htmlarea 1.7 Wysywyg Editor for category description 4 Htmlarea 1.7 Javascript for categories 2 Jpsy image uploader 3 Products: Htmlarea 1.7 Wysywyg Editor for category description 4 Htmlarea 1.7 Javascript for categories 2 Jpsy image uploader 3 But whenever I try to edit or add new category or product I don't have html wyswig editor. I see old style edit fields (like without ACA and category edit). What could be wrong ? Do I have set extra thing I forgot ? Thanks, Marcin I have made a version 2.0 of this helpful contribution, it is available here:http://www.oscommerce.com/community/contributions,2611 Here are the changes from v1.1 to v2.0: - Added modules management to the admin panel, no need to modify categories.php to use them. - categories.php much more similar to the original file, making much much easier to install contributions "the old way" (for contributions that does not have an ACA module yet) - modules of v1.1 are not compatible with modules of v2.0 - Installation instruction provided - Rigadin Edited January 27, 2006 by 241 Quote
Guest Posted January 17, 2006 Posted January 17, 2006 Hi,I installed ACA v.2.0 (previously I used 1.1) I've got following modules installed: Category: Htmlarea 1.7 Wysywyg Editor for category description 4 Htmlarea 1.7 Javascript for categories 2 Jpsy image uploader 3 Products: Htmlarea 1.7 Wysywyg Editor for category description 4 Htmlarea 1.7 Javascript for categories 2 Jpsy image uploader 3 But whenever I try to edit or add new category or product I don't have html wyswig editor. I see old style edit fields (like without ACA and category edit). What could be wrong ? Do I have set extra thing I forgot ? Thanks, Marcin - ACA v2.2 is out, make the update first. - HtmlArea and Jpsy work only in Internet Explorer. Which browser are you using? - If you don't use Category Description contribution, you do not need to install the 'Htmlarea 1.7 Wysywyg Editor for category description' module. There is no description available for categories in the stock osC, so no Wysiwyg editor. - TinyMCE editor is working in all major browsers, you can try it too. - If you are using IE and no Htmlarea, look in the html source of your page what are the javascript scripts added in header? - RIgadin Quote
Guest Posted January 17, 2006 Posted January 17, 2006 So far the latest version of ACA is v2.2 and you should make the update if you are running v2.0 or v2.1 . Here is the list of available modules for ACA2 (the contribution nbr is in brackets): [0716] Separate Pricing Per Customer 4 (SPPC) [1347] Htmlarea 1.7 JS for products modules [1347] Htmlarea 1.7 Editor for products description [1347] Jpsy uploader for product image [1347] Htmlarea 1.7 JS for categories modules [1347] Jpsy uploader for category image [1373] Category Description module [1373] Htmlarea for Category Description [1373] TinyMCE for Category Description [3039] Quantity Price Break for SPPC [3768] TinyMCE for product description Coming soon... [0207] Header Tags Controller (product + categories) Quote
nocloo Posted January 19, 2006 Posted January 19, 2006 Just tried to install ACA from a fresh config and I got this error in /admin/includes/boxes/modules.php Parse error: parse error, unexpected '}' in /home/xxx/xxx/admin/includes/boxes/modules.php on line 31 I did follow these instructions from the install.html guide: FIND '<a href="' . tep_href_link(FILENAME_MODULES, 'set=ordertotal', 'NONSSL') . '" class="menuBoxContentLink">' . BOX_MODULES_ORDER_TOTAL . '</a><br>'); ADD after it: // START ACA 2.0 '<a href="' . tep_href_link(FILENAME_MODULES, 'set=acapro', 'NONSSL') . '" class="menuBoxContentLink">' . BOX_MODULES_ACAPRO . '</a><br>' . '<a href="' . tep_href_link(FILENAME_MODULES, 'set=acacat', 'NONSSL') . '" class="menuBoxContentLink">' . BOX_MODULES_ACACAT . '</a><br>' . // END ACA 2.0 Should it be : ? - if ($selected_box == 'modules') { $contents[] = array('text' => '<a href="' . tep_href_link(FILENAME_MODULES, 'set=payment', 'NONSSL') . '" class="menuBoxContentLink">' . BOX_MODULES_PAYMENT . '</a><br>' . '<a href="' . tep_href_link(FILENAME_MODULES, 'set=shipping', 'NONSSL') . '" class="menuBoxContentLink">' . BOX_MODULES_SHIPPING . '</a><br>' . '<a href="' . tep_href_link(FILENAME_MODULES, 'set=ordertotal', 'NONSSL') . '" class="menuBoxContentLink">' . BOX_MODULES_ORDER_TOTAL . '</a>' . // START ACA 2.0 '<a href="' . tep_href_link(FILENAME_MODULES, 'set=acapro', 'NONSSL') . '" class="menuBoxContentLink">' . BOX_MODULES_ACAPRO . '</a><br>' . '<a href="' . tep_href_link(FILENAME_MODULES, 'set=acacat', 'NONSSL') . '" class="menuBoxContentLink">' . BOX_MODULES_ACACAT . '</a><br>'); // END ACA 2.0 Thanks, -Minh Lai == Quote
Guest Posted January 19, 2006 Posted January 19, 2006 Just tried to install ACA from a fresh config and I got this error in /admin/includes/boxes/modules.php Parse error: parse error, unexpected '}' in /home/xxx/xxx/admin/includes/boxes/modules.php on line 31 I did follow these instructions from the install.html guide: FIND '<a href="' . tep_href_link(FILENAME_MODULES, 'set=ordertotal', 'NONSSL') . '" class="menuBoxContentLink">' . BOX_MODULES_ORDER_TOTAL . '</a><br>'); ADD after it: // START ACA 2.0 '<a href="' . tep_href_link(FILENAME_MODULES, 'set=acapro', 'NONSSL') . '" class="menuBoxContentLink">' . BOX_MODULES_ACAPRO . '</a><br>' . '<a href="' . tep_href_link(FILENAME_MODULES, 'set=acacat', 'NONSSL') . '" class="menuBoxContentLink">' . BOX_MODULES_ACACAT . '</a><br>' . // END ACA 2.0 Should it be : ? - if ($selected_box == 'modules') { $contents[] = array('text' => '<a href="' . tep_href_link(FILENAME_MODULES, 'set=payment', 'NONSSL') . '" class="menuBoxContentLink">' . BOX_MODULES_PAYMENT . '</a><br>' . '<a href="' . tep_href_link(FILENAME_MODULES, 'set=shipping', 'NONSSL') . '" class="menuBoxContentLink">' . BOX_MODULES_SHIPPING . '</a><br>' . '<a href="' . tep_href_link(FILENAME_MODULES, 'set=ordertotal', 'NONSSL') . '" class="menuBoxContentLink">' . BOX_MODULES_ORDER_TOTAL . '</a>' . // START ACA 2.0 '<a href="' . tep_href_link(FILENAME_MODULES, 'set=acapro', 'NONSSL') . '" class="menuBoxContentLink">' . BOX_MODULES_ACAPRO . '</a><br>' . '<a href="' . tep_href_link(FILENAME_MODULES, 'set=acacat', 'NONSSL') . '" class="menuBoxContentLink">' . BOX_MODULES_ACACAT . '</a><br>'); // END ACA 2.0 Thanks, -Minh Lai == You are right, the instructions are wrong. Your solution is ok. The instructions should read "ADD before it". Thanks, Rigadin Quote
Mtwo Posted January 19, 2006 Posted January 19, 2006 Same error and solution for me. I recommend updating the contribution... Quote
Guest Posted January 24, 2006 Posted January 24, 2006 (edited) Same error and solution for me. I recommend updating the contribution... There is a new version 2.3 available on this contribution page. Install instructions have been corrected, as well as a bug in class product.php concerning duplication of products. [207] Header Tags Controller module has been released some while ago. For those interested. - Rigadin Edited January 27, 2006 by 241 Quote
Guest Posted January 26, 2006 Posted January 26, 2006 (edited) can this mod support the More Pics 6 mod? Not yet. And I'm not sure I'm going to do it as I'm not sure I need this contribution. - Rigadin Please do look into this. We need this mod as well and are using your ACA for a couple things, I'd hate to now remove it. I tried looking at making the module for this contrib but looks pretty Greek. Edited January 27, 2006 by 241 Quote
Guest Posted January 27, 2006 Posted January 27, 2006 I'll probably have a look one day, but if you need it fast, 2 choices: try to make a module (I can give the directions), or install this contribution over ACA, like you would do without ACA. ACA2 is more friendly than ACA1 and should be easier to find where to make the changes. - Rigadin Quote
Guest Posted January 27, 2006 Posted January 27, 2006 Directions would be great. If you could even wrap instructions into your mod it might really take off. Quote
teksun Posted February 1, 2006 Posted February 1, 2006 I have added ACA2.3 and now cannot access my catalog in admin. I get a blank page. <?php /* $Id: categories.php,v 1.146 2003/07/11 14:40:27 hpdl Exp $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright © 2003 osCommerce Released under the GNU General Public License */ require('includes/application_top.php'); require(DIR_WS_CLASSES . 'currencies.php'); $currencies = new currencies(); $action = (isset($HTTP_GET_VARS['action']) ? $HTTP_GET_VARS['action'] : ''); if (tep_not_null($action)) { switch ($action) { case 'setflag': if ( ($HTTP_GET_VARS['flag'] == '0') || ($HTTP_GET_VARS['flag'] == '1') ) { if (isset($HTTP_GET_VARS['pID'])) { tep_set_product_status($HTTP_GET_VARS['pID'], $HTTP_GET_VARS['flag']); } if (USE_CACHE == 'true') { tep_reset_cache_block('categories'); tep_reset_cache_block('also_purchased'); } } tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $HTTP_GET_VARS['cPath'] . '&pID=' . $HTTP_GET_VARS['pID'])); break; case 'insert_category': case 'update_category': if (isset($HTTP_POST_VARS['categories_id'])) $categories_id = tep_db_prepare_input($HTTP_POST_VARS['categories_id']); $sort_order = tep_db_prepare_input($HTTP_POST_VARS['sort_order']); $sql_data_array = array('sort_order' => $sort_order); if ($action == 'insert_category') { $insert_sql_data = array('parent_id' => $current_category_id, 'date_added' => 'now()'); $sql_data_array = array_merge($sql_data_array, $insert_sql_data); tep_db_perform(TABLE_CATEGORIES, $sql_data_array); $categories_id = tep_db_insert_id(); } elseif ($action == 'update_category') { $update_sql_data = array('last_modified' => 'now()'); $sql_data_array = array_merge($sql_data_array, $update_sql_data); tep_db_perform(TABLE_CATEGORIES, $sql_data_array, 'update', "categories_id = '" . (int)$categories_id . "'"); } $languages = tep_get_languages(); //HTC BOC $categories_htc_title_array = $HTTP_POST_VARS['categories_htc_title_tag']; $categories_htc_desc_array = $HTTP_POST_VARS['categories_htc_desc_tag']; $categories_htc_keywords_array = $HTTP_POST_VARS['categories_htc_keywords_tag']; $categories_htc_description_array = $HTTP_POST_VARS['categories_htc_description']; //HTC EOC $language_id = $languages[$i]['id']; //HTC BOC $sql_data_array = array('categories_name' => tep_db_prepare_input($categories_name_array[$language_id]), 'categories_htc_title_tag' => tep_db_prepare_input($categories_htc_title_array[$language_id]), 'categories_htc_desc_tag' => tep_db_prepare_input($categories_htc_desc_array[$language_id]), 'categories_htc_keywords_tag' => tep_db_prepare_input($categories_htc_keywords_array[$language_id]), 'categories_htc_description' => tep_db_prepare_input($categories_htc_description_array[$language_id])); //HTC EOC if ($action == 'insert_category') { $insert_sql_data = array('categories_id' => $categories_id, 'language_id' => $languages[$i]['id']); $sql_data_array = array_merge($sql_data_array, $insert_sql_data); tep_db_perform(TABLE_CATEGORIES_DESCRIPTION, $sql_data_array); } elseif ($action == 'update_category') { tep_db_perform(TABLE_CATEGORIES_DESCRIPTION, $sql_data_array, 'update', "categories_id = '" . (int)$categories_id . "' and language_id = '" . (int)$languages[$i]['id'] . "'"); } } if ($categories_image = new upload('categories_image', DIR_FS_CATALOG_IMAGES)) { tep_db_query("update " . TABLE_CATEGORIES . " set categories_image = '" . tep_db_input($categories_image->filename) . "' where categories_id = '" . (int)$categories_id . "'"); } if (USE_CACHE == 'true') { tep_reset_cache_block('categories'); tep_reset_cache_block('also_purchased'); } tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&cID=' . $categories_id)); break; case 'delete_category_confirm': if (isset($HTTP_POST_VARS['categories_id'])) { $categories_id = tep_db_prepare_input($HTTP_POST_VARS['categories_id']); $categories = tep_get_category_tree($categories_id, '', '0', '', true); $products = array(); $products_delete = array(); for ($i=0, $n=sizeof($categories); $i<$n; $i++) { $product_ids_query = tep_db_query("select products_id from " . TABLE_PRODUCTS_TO_CATEGORIES . " where categories_id = '" . (int)$categories[$i]['id'] . "'"); while ($product_ids = tep_db_fetch_array($product_ids_query)) { $products[$product_ids['products_id']]['categories'][] = $categories[$i]['id']; } } reset($products); while (list($key, $value) = each($products)) { $category_ids = ''; for ($i=0, $n=sizeof($value['categories']); $i<$n; $i++) { $category_ids .= "'" . (int)$value['categories'][$i] . "', "; } $category_ids = substr($category_ids, 0, -2); $check_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_TO_CATEGORIES . " where products_id = '" . (int)$key . "' and categories_id not in (" . $category_ids . ")"); $check = tep_db_fetch_array($check_query); if ($check['total'] < '1') { $products_delete[$key] = $key; } } // removing categories can be a lengthy process tep_set_time_limit(0); for ($i=0, $n=sizeof($categories); $i<$n; $i++) { tep_remove_category($categories[$i]['id']); } reset($products_delete); while (list($key) = each($products_delete)) { tep_remove_product($key); } } if (USE_CACHE == 'true') { tep_reset_cache_block('categories'); tep_reset_cache_block('also_purchased'); } tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath)); break; case 'delete_product_confirm': if (isset($HTTP_POST_VARS['products_id']) && isset($HTTP_POST_VARS['product_categories']) && is_array($HTTP_POST_VARS['product_categories'])) { $product_id = tep_db_prepare_input($HTTP_POST_VARS['products_id']); $product_categories = $HTTP_POST_VARS['product_categories']; for ($i=0, $n=sizeof($product_categories); $i<$n; $i++) { tep_db_query("delete from " . TABLE_PRODUCTS_TO_CATEGORIES . " where products_id = '" . (int)$product_id . "' and categories_id = '" . (int)$product_categories[$i] . "'"); } $product_categories_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_TO_CATEGORIES . " where products_id = '" . (int)$product_id . "'"); $product_categories = tep_db_fetch_array($product_categories_query); if ($product_categories['total'] == '0') { tep_remove_product($product_id); } } if (USE_CACHE == 'true') { tep_reset_cache_block('categories'); tep_reset_cache_block('also_purchased'); } tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath)); break; case 'move_category_confirm': if (isset($HTTP_POST_VARS['categories_id']) && ($HTTP_POST_VARS['categories_id'] != $HTTP_POST_VARS['move_to_category_id'])) { $categories_id = tep_db_prepare_input($HTTP_POST_VARS['categories_id']); $new_parent_id = tep_db_prepare_input($HTTP_POST_VARS['move_to_category_id']); $path = explode('_', tep_get_generated_category_path_ids($new_parent_id)); if (in_array($categories_id, $path)) { $messageStack->add_session(ERROR_CANNOT_MOVE_CATEGORY_TO_PARENT, 'error'); tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&cID=' . $categories_id)); } else { tep_db_query("update " . TABLE_CATEGORIES . " set parent_id = '" . (int)$new_parent_id . "', last_modified = now() where categories_id = '" . (int)$categories_id . "'"); if (USE_CACHE == 'true') { tep_reset_cache_block('categories'); tep_reset_cache_block('also_purchased'); } tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $new_parent_id . '&cID=' . $categories_id)); } } break; case 'move_product_confirm': $products_id = tep_db_prepare_input($HTTP_POST_VARS['products_id']); $new_parent_id = tep_db_prepare_input($HTTP_POST_VARS['move_to_category_id']); $duplicate_check_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_TO_CATEGORIES . " where products_id = '" . (int)$products_id . "' and categories_id = '" . (int)$new_parent_id . "'"); $duplicate_check = tep_db_fetch_array($duplicate_check_query); if ($duplicate_check['total'] < 1) tep_db_query("update " . TABLE_PRODUCTS_TO_CATEGORIES . " set categories_id = '" . (int)$new_parent_id . "' where products_id = '" . (int)$products_id . "' and categories_id = '" . (int)$current_category_id . "'"); if (USE_CACHE == 'true') { tep_reset_cache_block('categories'); tep_reset_cache_block('also_purchased'); } tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $new_parent_id . '&pID=' . $products_id)); break; case 'insert_product': case 'update_product': if (isset($HTTP_POST_VARS['edit_x']) || isset($HTTP_POST_VARS['edit_y'])) { $action = 'new_product'; } else { if (isset($HTTP_GET_VARS['pID'])) $products_id = tep_db_prepare_input($HTTP_GET_VARS['pID']); $products_date_available = tep_db_prepare_input($HTTP_POST_VARS['products_date_available']); $products_date_available = (date('Y-m-d') < $products_date_available) ? $products_date_available : 'null'; $sql_data_array = array('products_quantity' => tep_db_prepare_input($HTTP_POST_VARS['products_quantity']), 'products_model' => tep_db_prepare_input($HTTP_POST_VARS['products_model']), 'products_price' => tep_db_prepare_input($HTTP_POST_VARS['products_price']), 'products_date_available' => $products_date_available, 'products_weight' => tep_db_prepare_input($HTTP_POST_VARS['products_weight']), 'products_status' => tep_db_prepare_input($HTTP_POST_VARS['products_status']), 'products_tax_class_id' => tep_db_prepare_input($HTTP_POST_VARS['products_tax_class_id']), 'manufacturers_id' => tep_db_prepare_input($HTTP_POST_VARS['manufacturers_id'])); if (isset($HTTP_POST_VARS['products_image']) && tep_not_null($HTTP_POST_VARS['products_image']) && ($HTTP_POST_VARS['products_image'] != 'none')) { $sql_data_array['products_image'] = tep_db_prepare_input($HTTP_POST_VARS['products_image']); } if ($action == 'insert_product') { $insert_sql_data = array('products_date_added' => 'now()'); $sql_data_array = array_merge($sql_data_array, $insert_sql_data); tep_db_perform(TABLE_PRODUCTS, $sql_data_array); $products_id = tep_db_insert_id(); tep_db_query("insert into " . TABLE_PRODUCTS_TO_CATEGORIES . " (products_id, categories_id) values ('" . (int)$products_id . "', '" . (int)$current_category_id . "')"); } elseif ($action == 'update_product') { $update_sql_data = array('products_last_modified' => 'now()'); $sql_data_array = array_merge($sql_data_array, $update_sql_data); tep_db_perform(TABLE_PRODUCTS, $sql_data_array, 'update', "products_id = '" . (int)$products_id . "'"); } $languages = tep_get_languages(); for ($i=0, $n=sizeof($languages); $i<$n; $i++) { $language_id = $languages[$i]['id']; //HTC BOC $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]), '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])); //HTC EOC 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(); //HTC BOC $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 . "'"); while ($description = tep_db_fetch_array($description_query)) { tep_db_query("insert into " . TABLE_PRODUCTS_DESCRIPTION . " (products_id, language_id, products_name, products_description, products_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')"); } //HTC EOC tep_db_query("insert into " . TABLE_PRODUCTS_TO_CATEGORIES . " (products_id, categories_id) values ('" . (int)$dup_products_id . "', '" . (int)$categories_id . "')"); $products_id = $dup_products_id; } if (USE_CACHE == 'true') { tep_reset_cache_block('categories'); tep_reset_cache_block('also_purchased'); } } tep_redirect(tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $categories_id . '&pID=' . $products_id)); break; case 'new_product_preview': // copy image only if modified $products_image = new upload('products_image'); $products_image->set_destination(DIR_FS_CATALOG_IMAGES); if ($products_image->parse() && $products_image->save()) { $products_image_name = $products_image->filename; } else { $products_image_name = (isset($HTTP_POST_VARS['products_previous_image']) ? $HTTP_POST_VARS['products_previous_image'] : ''); } 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); //HTC BOC if (isset ($HTTP_GET_VARS['pID']) && (!$HTTP_POST_VARS) ) { $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 . "'"); $product = tep_db_fetch_array($product_query); //HTC EOC $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> <!-- HTC BOC //--> <?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 } ?> <tr> <td colspan="2" class="main"><hr><?php echo TEXT_PRODUCT_METTA_INFO; ?></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" 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"> <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_keywords_tag[' . $languages[$i]['id'] . ']', 'soft', '70', '5', (isset($products_head_keywords_tag[$languages[$i]['id']]) ? $products_head_keywords_tag[$languages[$i]['id']] : tep_get_products_head_keywords_tag($pInfo->products_id, $languages[$i]['id']))); ?></td> </tr> </table></td> </tr> <?php } ?> <tr> <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td> </tr> <tr> <td colspan="2" class="main"><hr></td> </tr> <!-- HTC EOC //--> <tr> <td class="main"><?php echo TEXT_PRODUCTS_QUANTITY; ?></td> <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . tep_draw_input_field('products_quantity', $pInfo->products_quantity); ?></td> </tr> <tr> <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td> </tr> <tr> <td class="main"><?php echo TEXT_PRODUCTS_MODEL; ?></td> <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . tep_draw_input_field('products_model', $pInfo->products_model); ?></td> </tr> <tr> <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td> </tr> <tr> <td class="main"><?php echo TEXT_PRODUCTS_IMAGE; ?></td> <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . tep_draw_file_field('products_image') . '<br>' . tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . $pInfo->products_image . tep_draw_hidden_field('products_previous_image', $pInfo->products_image); ?></td> </tr> <tr> <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td> </tr> <?php for ($i=0, $n=sizeof($languages); $i<$n; $i++) { ?> <tr> <td class="main"><?php if ($i == 0) echo TEXT_PRODUCTS_URL . '<br><small>' . TEXT_PRODUCTS_URL_WITHOUT_HTTP . '</small>'; ?></td> <td class="main"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . tep_draw_input_field('products_url[' . $languages[$i]['id'] . ']', (isset($products_url[$languages[$i]['id']]) ? $products_url[$languages[$i]['id']] : tep_get_products_url($pInfo->products_id, $languages[$i]['id']))); ?></td> </tr> <?php } ?> <tr> <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td> </tr> <tr> <td class="main"><?php echo TEXT_PRODUCTS_WEIGHT; ?></td> <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . tep_draw_input_field('products_weight', $pInfo->products_weight); ?></td> </tr> </table></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td> </tr> <tr> <td class="main" align="right"><?php echo tep_draw_hidden_field('products_date_added', (tep_not_null($pInfo->products_date_added) ? $pInfo->products_date_added : date('Y-m-d'))) . tep_image_submit('button_preview.gif', IMAGE_PREVIEW) . ' <a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . (isset($HTTP_GET_VARS['pID']) ? '&pID=' . $HTTP_GET_VARS['pID'] : '')) . '">' . tep_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a>'; ?></td> </tr> </table></form> <!-- HTC BOC //--> <?php } elseif ($action == 'new_product_preview') { if (tep_not_null($HTTP_POST_VARS)) { $pInfo = new objectInfo($HTTP_POST_VARS); $products_name = $HTTP_POST_VARS['products_name']; $products_description = $HTTP_POST_VARS['products_description']; $products_head_title_tag = $HTTP_POST_VARS['products_head_title_tag']; $products_head_desc_tag = $HTTP_POST_VARS['products_head_desc_tag']; $products_head_keywords_tag = $HTTP_POST_VARS['products_head_keywords_tag']; $products_url = $HTTP_POST_VARS['products_url']; } else { $product_query = tep_db_query("select p.products_id, pd.language_id, pd.products_name, pd.products_description, pd.products_head_title_tag, pd.products_head_desc_tag, pd.products_head_keywords_tag, pd.products_url, p.products_quantity, p.products_model, p.products_image, p.products_price, p.products_weight, p.products_date_added, p.products_last_modified, p.products_date_available, p.products_status, p.manufacturers_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_id = pd.products_id and p.products_id = '" . $HTTP_GET_VARS['pID'] . "'"); $product = tep_db_fetch_array($product_query); // HTC EOC $pInfo = new objectInfo($product); $products_image_name = $pInfo->products_image; } $form_action = (isset($HTTP_GET_VARS['pID'])) ? 'update_product' : 'insert_product'; echo tep_draw_form($form_action, FILENAME_CATEGORIES, 'cPath=' . $cPath . (isset($HTTP_GET_VARS['pID']) ? '&pID=' . $HTTP_GET_VARS['pID'] : '') . '&action=' . $form_action, 'post', 'enctype="multipart/form-data"'); // HTC BOC $languages = tep_get_languages(); for ($i=0, $n=sizeof($languages); $i<$n; $i++) { if (isset($HTTP_GET_VARS['read']) && ($HTTP_GET_VARS['read'] == 'only')) { $pInfo->products_name = tep_get_products_name($pInfo->products_id, $languages[$i]['id']); $pInfo->products_description = tep_get_products_description($pInfo->products_id, $languages[$i]['id']); $pInfo->products_head_title_tag = tep_db_prepare_input($products_head_title_tag[$languages[$i]['id']]); $pInfo->products_head_desc_tag = tep_db_prepare_input($products_head_desc_tag[$languages[$i]['id']]); $pInfo->products_head_keywords_tag = tep_db_prepare_input($products_head_keywords_tag[$languages[$i]['id']]); $pInfo->products_url = tep_get_products_url($pInfo->products_id, $languages[$i]['id']); } else { $pInfo->products_name = tep_db_prepare_input($products_name[$languages[$i]['id']]); $pInfo->products_description = tep_db_prepare_input($products_description[$languages[$i]['id']]); $pInfo->products_head_title_tag = tep_db_prepare_input($products_head_title_tag[$languages[$i]['id']]); $pInfo->products_head_desc_tag = tep_db_prepare_input($products_head_desc_tag[$languages[$i]['id']]); $pInfo->products_head_keywords_tag = tep_db_prepare_input($products_head_keywords_tag[$languages[$i]['id']]); $pInfo->products_url = tep_db_prepare_input($products_url[$languages[$i]['id']]); } // HTC EOC ?> <table border="0" width="100%" cellspacing="0" cellpadding="2"> <tr> <td><table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr> <td class="pageHeading"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . $pInfo->products_name; ?></td> <td class="pageHeading" align="right"><?php echo $currencies->format($pInfo->products_price); ?></td> </tr> </table></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td> </tr> <tr> <td class="main"><?php echo tep_image(DIR_WS_CATALOG_IMAGES . $products_image_name, $pInfo->products_name, SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'align="right" hspace="5" vspace="5"') . $pInfo->products_description; ?></td> </tr> <?php if ($pInfo->products_url) { ?> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td> </tr> <tr> <td class="main"><?php echo sprintf(TEXT_PRODUCT_MORE_INFORMATION, $pInfo->products_url); ?></td> </tr> <?php } ?> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td> </tr> <?php if ($pInfo->products_date_available > date('Y-m-d')) { ?> <tr> <td align="center" class="smallText"><?php echo sprintf(TEXT_PRODUCT_DATE_AVAILABLE, tep_date_long($pInfo->products_date_available)); ?></td> </tr> <?php } else { ?> <tr> <td align="center" class="smallText"><?php echo sprintf(TEXT_PRODUCT_DATE_ADDED, tep_date_long($pInfo->products_date_added)); ?></td> </tr> <?php } ?> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td> </tr> <?php } if (isset($HTTP_GET_VARS['read']) && ($HTTP_GET_VARS['read'] == 'only')) { if (isset($HTTP_GET_VARS['origin'])) { $pos_params = strpos($HTTP_GET_VARS['origin'], '?', 0); if ($pos_params != false) { $back_url = substr($HTTP_GET_VARS['origin'], 0, $pos_params); $back_url_params = substr($HTTP_GET_VARS['origin'], $pos_params + 1); } else { $back_url = $HTTP_GET_VARS['origin']; $back_url_params = ''; } } else { $back_url = FILENAME_CATEGORIES; $back_url_params = 'cPath=' . $cPath . '&pID=' . $pInfo->products_id; } ?> <tr> <td align="right"><?php echo '<a href="' . tep_href_link($back_url, $back_url_params, 'NONSSL') . '">' . tep_image_button('button_back.gif', IMAGE_BACK) . '</a>'; ?></td> </tr> <?php } else { ?> <tr> <td align="right" class="smallText"> <?php /* Re-Post all POST'ed variables */ reset($HTTP_POST_VARS); while (list($key, $value) = each($HTTP_POST_VARS)) { if (!is_array($HTTP_POST_VARS[$key])) { echo tep_draw_hidden_field($key, htmlspecialchars(stripslashes($value))); } } // HTC BOC $languages = tep_get_languages(); for ($i=0, $n=sizeof($languages); $i<$n; $i++) { echo tep_draw_hidden_field('products_name[' . $languages[$i]['id'] . ']', htmlspecialchars(stripslashes($products_name[$languages[$i]['id']]))); echo tep_draw_hidden_field('products_description[' . $languages[$i]['id'] . ']', htmlspecialchars(stripslashes($products_description[$languages[$i]['id']]))); echo tep_draw_hidden_field('products_head_title_tag[' . $languages[$i]['id'] . ']', htmlspecialchars(stripslashes($products_head_title_tag[$languages[$i]['id']]))); echo tep_draw_hidden_field('products_head_desc_tag[' . $languages[$i]['id'] . ']', htmlspecialchars(stripslashes($products_head_desc_tag[$languages[$i]['id']]))); echo tep_draw_hidden_field('products_head_keywords_tag[' . $languages[$i]['id'] . ']', htmlspecialchars(stripslashes($products_head_keywords_tag[$languages[$i]['id']]))); echo tep_draw_hidden_field('products_url[' . $languages[$i]['id'] . ']', htmlspecialchars(stripslashes($products_url[$languages[$i]['id']]))); } // HTC EOC echo tep_draw_hidden_field('products_image', stripslashes($products_image_name)); echo tep_image_submit('button_back.gif', IMAGE_BACK, 'name="edit"') . ' '; if (isset($HTTP_GET_VARS['pID'])) { echo tep_image_submit('button_update.gif', IMAGE_UPDATE); } else { echo tep_image_submit('button_insert.gif', IMAGE_INSERT); } echo ' <a href="' . tep_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . (isset($HTTP_GET_VARS['pID']) ? '&pID=' . $HTTP_GET_VARS['pID'] : '')) . '">' . tep_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a>'; ?></td> </tr> </table></form> <?php } } else { ?> <table border="0" width="100%" cellspacing="0" cellpadding="2"> <tr> <td><table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr> <td class="pageHeading"><?php echo HEADING_TITLE; ?></td> <td class="pageHeading" align="right"><?php echo tep_draw_separator('pixel_trans.gif', 1, HEADING_IMAGE_HEIGHT); ?></td> <td align="right"><table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr> <td class="smallText" align="right"> <?php echo tep_draw_form('search', FILENAME_CATEGORIES, '', 'get'); echo HEADING_TITLE_SEARCH . ' ' . tep_draw_input_field('search'); echo '</form>'; ?> </td> </tr> <tr> <td class="smallText" align="right"> <?php echo tep_draw_form('goto', FILENAME_CATEGORIES, '', 'get'); echo HEADING_TITLE_GOTO . ' ' . tep_draw_pull_down_menu('cPath', tep_get_category_tree(), $current_category_id, 'onChange="this.form.submit();"'); echo '</form>'; ?> Quote
teksun Posted February 2, 2006 Posted February 2, 2006 Well I got it working somewhat. I can install ACA for products but cannot install ACA for categories. When I click on the install button nothing happens Quote
Guest Posted February 2, 2006 Posted February 2, 2006 I too get an error when trying to access the catalog from the backend after installing ACA. However I get the following errors: Warning: categories(includes/languages/english/modules/categories/MODULE_ACACAT_INSTALLED): failed to open stream: No such file or directory in /home/xxx/xxx/admin/includes/classes/categories.php on line 34 Warning: categories(): Failed opening 'includes/languages/english/modules/categories/MODULE_ACACAT_INSTALLED' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/xxx/xxx/admin/includes/classes/categories.php on line 34 Warning: categories(includes/modules/categories/MODULE_ACACAT_INSTALLED): failed to open stream: No such file or directory in /home/xxx/xxx/admin/includes/classes/categories.php on line 35 Warning: categories(): Failed opening 'includes/modules/categories/MODULE_ACACAT_INSTALLED' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/xxx/xxx/admin/includes/classes/categories.php on line 35 Fatal error: Cannot instantiate non-existent class: module_acacat_insta in /home/xxx/xxx/admin/includes/classes/categories.php on line 36 My grasp on this code is pretty weak so if anyone can explain to me what these errors mean it would be greatly appreciated. Also of note: I've installed a couple other contribs and wonder if maybe they are conflicting with ACA. They are 1) Header Tags Controller for Admin MS 2.2; and 2) Ultimate SEO URLs v2.1 Huge thanks in advance for any help on this issue! Quote
Guest Posted February 3, 2006 Posted February 3, 2006 MODULE_ACACAT_INSTALLED is the variable that holds the names of the category modules installed. I suppose that you have no category module installed and this variable has never been set, even not empty. I propose to try this: - Go to modules, ACA for categories and look do you have any module available here. If yes, install and remove one by clicking the corresponding button. Now the variable should be set. - If you don't have any category module, take one for example from the Header Tag Controller contribution and press the install button. Press remove after that if you don't want to keep it, but you said you are using Header Tags, so I think you should use ACA modules for this contribution (products + categories). Ultimate SEO URLs does not interfere with ACA. - Rigadin Quote
|Dexter| Posted February 3, 2006 Posted February 3, 2006 Hi All I got ACA v2.3 installed and I've got following modules installed: Category: Htmlarea 1.7 Wysywyg Editor for category description 4 Htmlarea 1.7 Javascript for categories 2 Jpsy image uploader 3 Products: Htmlarea 1.7 Wysywyg Editor for category description 4 Htmlarea 1.7 Javascript for categories 2 Jpsy image uploader 3 In Category everthing working fine, but in products ever time I try add a new product I get the following error: Fatal error: Cannot use object of type objectInfo as array in C:\Server\htdocs\osCommerce\admin\includes\modules\products\jpsy.php on line 66 When I disable Jpsy image uploader 3 for products all working fine what is wrong?? Quote
teksun Posted February 3, 2006 Posted February 3, 2006 I am still having issues with ACA catagories. I have it installed. ACA for products works fine. When I go to modules ACA products click install, it then asks me if I am using HTC I click yes and update. I then click on ACA categories then install and I get nothing. My browser reacts to the click on the button by reloading but no options for true or false. I have HTC, and Link Exchange installed. I really need to get these modules working together before I can move on to Ultimate SEO URLs. Please help. Quote
Guest Posted February 3, 2006 Posted February 3, 2006 MODULE_ACACAT_INSTALLED is the variable that holds the names of the category modules installed. I suppose that you have no category module installed and this variable has never been set, even not empty. I propose to try this: - Go to modules, ACA for categories and look do you have any module available here. If yes, install and remove one by clicking the corresponding button. Now the variable should be set. - If you don't have any category module, take one for example from the Header Tag Controller contribution and press the install button. Press remove after that if you don't want to keep it, but you said you are using Header Tags, so I think you should use ACA modules for this contribution (products + categories). Ultimate SEO URLs does not interfere with ACA. - Rigadin Thanks for tips! I went to the ACA for Categories module like you said, but was greeted with an error: "Fatal error: Call to undefined function: check() in /home/xxx/public_html/admin/modules.php on line 153" I don't believe that file, admin/modules.php, has been changed from the original other than some tweaks for the ACA 2.0 contrib. And there is a module listed in the backend as you were wondering ("Htmlarea 1.7 Wysywyg Editor") but it seems that there's an error with it because it has no options beside it or clickable areas. Quote
Guest Posted February 6, 2006 Posted February 6, 2006 "Fatal error: Call to undefined function: check() in /home/xxx/public_html/admin/modules.php on line 153" I don't believe that file, admin/modules.php, has been changed from the original other than some tweaks for the ACA 2.0 contrib. And there is a module listed in the backend as you were wondering ("Htmlarea 1.7 Wysywyg Editor") but it seems that there's an error with it because it has no options beside it or clickable areas. You are using ACA2 but there is still a module for ACA1 in your modules/categories folder. ACA1 modules do not have the "check()" function and that gives this error. Remove all files and add them one by one to see which one is wrong. - Rigadin Quote
Guest Posted February 6, 2006 Posted February 6, 2006 Hi All I got ACA v2.3 installed and I've got following modules installed: Category: Htmlarea 1.7 Wysywyg Editor for category description 4 Htmlarea 1.7 Javascript for categories 2 Jpsy image uploader 3 Products: Htmlarea 1.7 Wysywyg Editor for category description 4 Htmlarea 1.7 Javascript for categories 2 Jpsy image uploader 3 In Category everthing working fine, but in products ever time I try add a new product I get the following error: Fatal error: Cannot use object of type objectInfo as array in C:\Server\htdocs\osCommerce\admin\includes\modules\products\jpsy.php on line 66 When I disable Jpsy image uploader 3 for products all working fine what is wrong?? In the products/jpsy.php, replace the function repost_values() by this one: function repost_values () { // Repost all values that are not arrays if ($this->is_image_handler) { foreach ($this->pInfo as $key=>$val) { if (!is_array($val)) echo tep_draw_hidden_field($this->code .'['.$key.']', stripslashes($val))."\n"; } // end for each pInfo } } // end method And tell us if it works. What is your php version? Mine does not give any error with this module. - Rigadin Quote
hjkl Posted February 9, 2006 Posted February 9, 2006 Hello, I installed ACA v 2.3. Then I see at Modules: Payment Shipping ACA for products ACA for categories If I click "install" in "ACA for products", ( I see a possible directory) nothing happens (instead on Shipping for example) Is my configuration well done or not complete? Thanks a lot hjkl Quote
Guest Posted February 10, 2006 Posted February 10, 2006 Heiko, You probably have installed ACA correctly, but you don't have any module available in admin/includes/modules/categories or /products => you don't see anything from admin side. Modules are available with their respective contribution. - Rigadin Quote
Guest Posted February 10, 2006 Posted February 10, 2006 You are using ACA2 but there is still a module for ACA1 in your modules/categories folder. ACA1 modules do not have the "check()" function and that gives this error. Remove all files and add them one by one to see which one is wrong. - Rigadin I took out all the ACA2 files and got as far as updating only the admin/categories.php and admin/modules.php files from the contribution before seeing the error for the check() function again. I'm sorry, I'm really lost as to why this is happening. I don't remember ever installing ACA1 files so I'm not sure why I'd be getting that check() function error. Quote
Guest Posted February 10, 2006 Posted February 10, 2006 (edited) Nevermind, I fixed it. Aparently there were several ACA1 modules that were messing it up. I just deleted them and I don't get anymore errors. Thanks for all your help, Chris. Edited February 10, 2006 by shadylane Quote
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.
Note: Your post will require moderator approval before it will be visible.