Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Help--changed some code and now I have errors


abendbrot

Recommended Posts

Posted

:'(

 

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

}

}

?>

Posted

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.

Posted

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

Posted

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?

Posted
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

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

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

Posted

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.

Posted
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');
?>

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...