abendbrot Posted October 2, 2006 Posted October 2, 2006 :'( Help! I get this now, after I changed some code. What stinks is that I even backed up everything prior to changing the code, and it didn't restore it!. The message is as follows: Fatal error: Cannot redeclare class table in /home/lims2/public_html/catalog/includes/modules/shipping/table.php on line 13 Just in case, I have copied my code into here. I'd appreciate any help...or if worse comes to worse...the code for the table.php page that came with oscommerce. _________________________________________________ <?php /* $Id: table.php,v 1.27 2003/02/05 22:41:52 hpdl Exp $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright ? 2003 osCommerce Released under the GNU General Public License */ class table { var $code, $title, $description, $icon, $enabled; // class constructor function table() { global $order; $this->code = 'table'; $this->title = MODULE_SHIPPING_TABLE_TEXT_TITLE; $this->description = MODULE_SHIPPING_TABLE_TEXT_DESCRIPTION; $this->sort_order = MODULE_SHIPPING_TABLE_SORT_ORDER; $this->icon = ''; $this->tax_class = MODULE_SHIPPING_TABLE_TAX_CLASS; $this->enabled = ((MODULE_SHIPPING_TABLE_STATUS == 'True') ? true : false); if ( ($this->enabled == true) && ((int)MODULE_SHIPPING_TABLE_ZONE > 0) ) { $check_flag = false; $check_query = tep_db_query("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_SHIPPING_TABLE_ZONE . "' and zone_country_id = '" . $order->delivery['country']['id'] . "' order by zone_id"); while ($check = tep_db_fetch_array($check_query)) { if ($check['zone_id'] < 1) { $check_flag = true; break; } elseif ($check['zone_id'] == $order->delivery['zone_id']) { $check_flag = true; break; } } if ($check_flag == false) { $this->enabled = false; } } } // class methods function quote($method = '') { global $order, $cart, $shipping_weight, $shipping_num_boxes; if (MODULE_SHIPPING_TABLE_MODE == 'price') { $order_total = $cart->show_total(); } else { $order_total = $shipping_weight; } // jgp - when processing the shipping option, check the method and use the appropriate cost table if ($method) { if ($method == 'table2day') $table_cost = split("[:,]" , MODULE_SHIPPING_TABLE_COST_2DAY); else $table_cost = split("[:,]" , MODULE_SHIPPING_TABLE_COST); // jgp - added 2-day shipping cost $table_cost_2day = split("[:,]" , MODULE_SHIPPING_TABLE_COST_2DAY); $size = sizeof($table_cost); for ($i=0, $n=$size; $i<$n; $i+=2) { if ($order_total <= $table_cost[$i]) { $shipping = $table_cost[$i+1]; break; } } if (MODULE_SHIPPING_TABLE_MODE == 'weight') { $shipping = $shipping * $shipping_num_boxes; } $this->quotes = array('id' => $this->code, 'module' => MODULE_SHIPPING_TABLE_TEXT_TITLE, 'methods' => array(array('id' => $this->code, 'title' => MODULE_SHIPPING_TABLE_TEXT_WAY, 'cost' => $shipping + MODULE_SHIPPING_TABLE_HANDLING))); } else { $table_cost = split("[:,]" , MODULE_SHIPPING_TABLE_COST); // jgp - added 2-day shipping cost $table_cost_2day = split("[:,]" , MODULE_SHIPPING_TABLE_COST_2DAY); $size = sizeof($table_cost); for ($i=0, $n=$size; $i<$n; $i+=2) { if ($order_total <= $table_cost[$i]) { $shipping = $table_cost[$i+1]; break; } } if (MODULE_SHIPPING_TABLE_MODE == 'weight') { $shipping = $shipping * $shipping_num_boxes; } // jgp - duplicated the shipping cost application for 2-day shipping $size = sizeof($table_cost_2day); for ($i=0, $n=$size; $i<$n; $i+=2) { if ($order_total <= $table_cost[$i]) { $shipping_2day = $table_cost_2day[$i+1]; break; } } if (MODULE_SHIPPING_TABLE_MODE == 'weight') { $shipping_2day = $shipping_2day * $shipping_num_boxes; } // jgp - added 2day shipping to methods array $this->quotes = array('id' => $this->code, 'module' => MODULE_SHIPPING_TABLE_TEXT_TITLE, 'methods' => array(array('id' => $this->code, 'title' => MODULE_SHIPPING_TABLE_TEXT_WAY, 'cost' => $shipping + MODULE_SHIPPING_TABLE_HANDLING), array('id' => 'table2day', 'title' => MODULE_SHIPPING_TABLE_TEXT_WAY_2DAY, 'cost' => $shipping_2day + MODULE_SHIPPING_TABLE_HANDLING))); } if ($this->tax_class > 0) { $this->quotes['tax'] = tep_get_tax_rate($this->tax_class, $order->delivery['country']['id'], $order->delivery['zone_id']); } if (tep_not_null($this->icon)) $this->quotes['icon'] = tep_image($this->icon, $this->title); return $this->quotes; } function check() { if (!isset($this->_check)) { $check_query = tep_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_SHIPPING_TABLE_STATUS'"); $this->_check = tep_db_num_rows($check_query); } return $this->_check; } function install() { tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) VALUES ('Enable Table Method', 'MODULE_SHIPPING_TABLE_STATUS', 'True', 'Do you want to offer table rate shipping?', '6', '0', 'tep_cfg_select_option(array(\'True\', \'False\'), ', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Shipping Table', 'MODULE_SHIPPING_TABLE_COST', '25:8.50,50:5.50,10000:0.00', 'The shipping cost is based on the total cost or weight of items. Example: 25:8.50,50:5.50,etc.. Up to 25 charge 8.50, from there to 50 charge 5.50, etc', '6', '0', now())"); // jgp - added additional (2day) shipping type tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Shipping Table 2-Day', 'MODULE_SHIPPING_TABLE_COST_2DAY', '25:8.50,50:5.50,10000:0.00', 'The shipping cost is based on the total cost or weight of items. Example: 25:8.50,50:5.50,etc.. Up to 25 charge 8.50, from there to 50 charge 5.50, etc', '6', '0', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Table Method', 'MODULE_SHIPPING_TABLE_MODE', 'weight', 'The shipping cost is based on the order total or the total weight of the items ordered.', '6', '0', 'tep_cfg_select_option(array(\'weight\', \'price\'), ', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Handling Fee', 'MODULE_SHIPPING_TABLE_HANDLING', '0', 'Handling fee for this shipping method.', '6', '0', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) values ('Tax Class', 'MODULE_SHIPPING_TABLE_TAX_CLASS', '0', 'Use the following tax class on the shipping fee.', '6', '0', 'tep_get_tax_class_title', 'tep_cfg_pull_down_tax_classes(', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) values ('Shipping Zone', 'MODULE_SHIPPING_TABLE_ZONE', '0', 'If a zone is selected, only enable this shipping method for that zone.', '6', '0', 'tep_get_zone_class_title', 'tep_cfg_pull_down_zone_classes(', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Sort Order', 'MODULE_SHIPPING_TABLE_SORT_ORDER', '0', 'Sort order of display.', '6', '0', now())"); } function remove() { tep_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')"); } function keys() { // jgp - added 2day shipping key return array('MODULE_SHIPPING_TABLE_STATUS', 'MODULE_SHIPPING_TABLE_COST', 'MODULE_SHIPPING_TABLE_COST_2DAY', 'MODULE_SHIPPING_TABLE_MODE', 'MODULE_SHIPPING_TABLE_HANDLING', 'MODULE_SHIPPING_TABLE_TAX_CLASS', 'MODULE_SHIPPING_TABLE_ZONE', 'MODULE_SHIPPING_TABLE_SORT_ORDER'); } } ?>
Guest Posted October 2, 2006 Posted October 2, 2006 What, specifically, did you change? It appears that the file table.php itself is not in error. There must be somewhere else that is trying to declare a new table class. Maybe search through your files for "class table" and see what is returned.
squeekit Posted October 2, 2006 Posted October 2, 2006 by chance you do not have an "extra" file in the 'shipping' folder, do you? that is a folder that you can NOT simply call a duplicate, or different version, something like "oldtable.php" for example -- or if by chance you're working locally on your computer and are using an editor that stores a temp file in such folder > gotta delete that temp - stuff like this --- make sure you only have one copy of what's needed in this folder (or simular folders)...
abendbrot Posted October 2, 2006 Author Posted October 2, 2006 Ok, here's what I found...i looked in my folder and found: a table.php file in the following shipping folder there-- /public_html/catalog/includes/languages/english/modules/shipping (filename is also table.php)--think that could be it?
mushindo Posted October 2, 2006 Posted October 2, 2006 Ok, here's what I found...i looked in my folder and found: a table.php file in the following shipping folder there-- /public_html/catalog/includes/languages/english/modules/shipping (filename is also table.php)--think that could be it? Thats not it, as every shipping module has a corresponding language file with it in location above. I am with squeekit on this one: chances are you have a duplicate file in your /includes/modules/shipping/ folder, like a backup file or something similar. I would be willing to bet that if you go into ADMIN > MODULES > SHIPPING you may come across the same error. Let me know. If so, please list the contents of the following folder here: /includes/modules/shipping/ If there is not a backup / duplicate tables.php file, chances are some other contribution you installed by some genius, is using the same class name of 'table'. Sincerely, Bruce 19 contributions submitted
Guest Posted October 2, 2006 Posted October 2, 2006 Ok, here's what I found...i looked in my folder and found: a table.php file in the following shipping folder there-- /public_html/catalog/includes/languages/english/modules/shipping (filename is also table.php)--think that could be it? Unlikely. This file does not have any declarations for a table class. I would strongly recommend doing a proper search through the files themselves for the text string "class table". ;) It's very possible that the file this is occuring in is NOT called table.php. :)
abendbrot Posted October 9, 2006 Author Posted October 9, 2006 Unlikely. This file does not have any declarations for a table class. I would strongly recommend doing a proper search through the files themselves for the text string "class table". ;) It's very possible that the file this is occuring in is NOT called table.php. :) Currently, I am still looking through my files to find a "Class Table" but I also looked in my includes/modules/shipping, and this is what I have: flat.php item.php table.php usps.php zones.php don't know if that helps at all. But I also think that part of the problem is that I used some contribution that some genius wrote, and I have no idea how to get out of that. Ah, well.
abendbrot Posted October 9, 2006 Author Posted October 9, 2006 Oh, addendum: So far, I've found class table in several locations (though am still looking just in case it turns up elsewhere)... one in: includes/modules/shipping/table.php and includes/languages/english/modules/shipping I looked at the codes for both, and one is the one I copied to have things like 2 day shipping, priority, etc. and the other looks like it's the original stuff with shipping weights. -s.
Guest Posted October 9, 2006 Posted October 9, 2006 Oh, addendum: So far, I've found class table in several locations (though am still looking just in case it turns up elsewhere)... one in: includes/modules/shipping/table.php and includes/languages/english/modules/shipping I looked at the codes for both, and one is the one I copied to have things like 2 day shipping, priority, etc. and the other looks like it's the original stuff with shipping weights. As far as I can tell, there shouldn't be a declaration for the table class in the languages/english/modules/shipping area. Can you merge the code in that file with the modules/shipping one? Just FYI, my table.php in the english area consists entirely of the following: <?php /* $Id: table.php,v 1.5 2002/11/19 01:48:08 dgw_ Exp $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2002 osCommerce Released under the GNU General Public License */ define('MODULE_SHIPPING_TABLE_TEXT_TITLE', 'Table Rate'); define('MODULE_SHIPPING_TABLE_TEXT_DESCRIPTION', 'Table Rate'); define('MODULE_SHIPPING_TABLE_TEXT_WAY', 'Best Way'); define('MODULE_SHIPPING_TABLE_TEXT_WEIGHT', 'Weight'); define('MODULE_SHIPPING_TABLE_TEXT_AMOUNT', 'Amount'); ?>
Recommended Posts
Archived
This topic is now archived and is closed to further replies.