Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Error message after install


Recommended Posts

I installed the USPS methods module and when I hit the edit button in admin I get the following error message

 

Parse error: syntax error, unexpected T_GLOBAL, expecting ')' in /home/mysite/public_html/catalog/admin/modules.php(224) : eval()'d code on line 1

 

I have gone through the installation twice and cannot seem to find the error. Could someone help?

 

Here is the code:

 

<?php
/*
 $Id: modules.php,v 1.47 2003/06/29 22:50:52 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');

 $set = (isset($HTTP_GET_VARS['set']) ? $HTTP_GET_VARS['set'] : '');

 if (tep_not_null($set)) {
switch ($set) {
  // START STS 4.1
  case 'sts':
	$module_type = 'sts';
	$module_directory = DIR_FS_CATALOG_MODULES . 'sts/';
	$module_key = 'MODULE_STS_INSTALLED';
	define('HEADING_TITLE', HEADING_TITLE_MODULES_STS);		
	break;
  // END STS 4.1	
  case 'shipping':
	$module_type = 'shipping';
	$module_directory = DIR_FS_CATALOG_MODULES . 'shipping/';
	$module_key = 'MODULE_SHIPPING_INSTALLED';
	define('HEADING_TITLE', HEADING_TITLE_MODULES_SHIPPING);
	break;
  case 'ordertotal':
	$module_type = 'order_total';
	$module_directory = DIR_FS_CATALOG_MODULES . 'order_total/';
	$module_key = 'MODULE_ORDER_TOTAL_INSTALLED';
	define('HEADING_TITLE', HEADING_TITLE_MODULES_ORDER_TOTAL);
	break;
  case 'payment':
  default:
	$module_type = 'payment';
	$module_directory = DIR_FS_CATALOG_MODULES . 'payment/';
	$module_key = 'MODULE_PAYMENT_INSTALLED';
	define('HEADING_TITLE', HEADING_TITLE_MODULES_PAYMENT);
	break;
}
 }

 $action = (isset($HTTP_GET_VARS['action']) ? $HTTP_GET_VARS['action'] : '');

 if (tep_not_null($action)) {
switch ($action) {
  case 'save':
	while (list($key, $value) = each($HTTP_POST_VARS['configuration'])) {
	if( is_array( $value ) ){
	  $value = implode( ", ", $value);
	  $value = ereg_replace (", --none--", "", $value);
		}
	  tep_db_query("update " . TABLE_CONFIGURATION . " set configuration_value = '" . $value . "' where configuration_key = '" . $key . "'");
	}
	tep_redirect(tep_href_link(FILENAME_MODULES, 'set=' . $set . '&module=' . $HTTP_GET_VARS['module']));
	break;
  case 'install':
  case 'remove':
	$file_extension = substr($PHP_SELF, strrpos($PHP_SELF, '.'));
	$class = basename($HTTP_GET_VARS['module']);
	if (file_exists($module_directory . $class . $file_extension)) {
	  include($module_directory . $class . $file_extension);
	  $module = new $class;
	  if ($action == 'install') {
		$module->install();
	  } elseif ($action == 'remove') {
		$module->remove();
	  }
	}
	tep_redirect(tep_href_link(FILENAME_MODULES, 'set=' . $set . '&module=' . $class));
	break;
}
 }
?>
<!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">
<!-- 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"><table border="0" width="100%" cellspacing="0" cellpadding="2">
  <tr>
	<td width="100%"><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', HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>
	  </tr>
	</table></td>
  </tr>
  <tr>
	<td><table border="0" width="100%" cellspacing="0" cellpadding="0">
	  <tr>
		<td valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
		  <tr class="dataTableHeadingRow">
			<td class="dataTableHeadingContent"><?php echo TABLE_HEADING_MODULES; ?></td>
			<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_SORT_ORDER; ?></td>
			<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_ACTION; ?> </td>
		  </tr>
<?php
 $file_extension = substr($PHP_SELF, strrpos($PHP_SELF, '.'));
 $directory_array = array();
 if ($dir = @dir($module_directory)) {
while ($file = $dir->read()) {
  if (!is_dir($module_directory . $file)) {
	if (substr($file, strrpos($file, '.')) == $file_extension) {
	  $directory_array[] = $file;
	}
  }
}
sort($directory_array);
$dir->close();
 }

 $installed_modules = array();
 for ($i=0, $n=sizeof($directory_array); $i<$n; $i++) {
$file = $directory_array[$i];

include(DIR_FS_CATALOG_LANGUAGES . $language . '/modules/' . $module_type . '/' . $file);
include($module_directory . $file);

$class = substr($file, 0, strrpos($file, '.'));
if (tep_class_exists($class)) {
  $module = new $class;
  if ($module->check() > 0) {
	if ($module->sort_order > 0) {
	  $installed_modules[$module->sort_order] = $file;
	} else {
	  $installed_modules[] = $file;
	}
  }

  if ((!isset($HTTP_GET_VARS['module']) || (isset($HTTP_GET_VARS['module']) && ($HTTP_GET_VARS['module'] == $class))) && !isset($mInfo)) {
	$module_info = array('code' => $module->code,
						 'title' => $module->title,
						 'description' => $module->description,
						 'status' => $module->check());

	$module_keys = $module->keys();

	$keys_extra = array();
	for ($j=0, $k=sizeof($module_keys); $j<$k; $j++) {
	  $key_value_query = tep_db_query("select configuration_title, configuration_value, configuration_description, use_function, set_function from " . TABLE_CONFIGURATION . " where configuration_key = '" . $module_keys[$j] . "'");
	  $key_value = tep_db_fetch_array($key_value_query);

	  $keys_extra[$module_keys[$j]]['title'] = $key_value['configuration_title'];
	  $keys_extra[$module_keys[$j]]['value'] = $key_value['configuration_value'];
	  $keys_extra[$module_keys[$j]]['description'] = $key_value['configuration_description'];
	  $keys_extra[$module_keys[$j]]['use_function'] = $key_value['use_function'];
	  $keys_extra[$module_keys[$j]]['set_function'] = $key_value['set_function'];
	}

	$module_info['keys'] = $keys_extra;

	$mInfo = new objectInfo($module_info);
  }

  if (isset($mInfo) && is_object($mInfo) && ($class == $mInfo->code) ) {
	if ($module->check() > 0) {
	  echo '			  <tr id="defaultSelected" class="dataTableRowSelected" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href=\'' . tep_href_link(FILENAME_MODULES, 'set=' . $set . '&module=' . $class . '&action=edit') . '\'">' . "\n";
	} else {
	  echo '			  <tr id="defaultSelected" class="dataTableRowSelected" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)">' . "\n";
	}
  } else {
	echo '			  <tr class="dataTableRow" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href=\'' . tep_href_link(FILENAME_MODULES, 'set=' . $set . '&module=' . $class) . '\'">' . "\n";
  }
?>
			<td class="dataTableContent"><?php echo $module->title; ?></td>
			<td class="dataTableContent" align="right"><?php if (is_numeric($module->sort_order)) echo $module->sort_order; ?></td>
			<td class="dataTableContent" align="right"><?php if (isset($mInfo) && is_object($mInfo) && ($class == $mInfo->code) ) { echo tep_image(DIR_WS_IMAGES . 'icon_arrow_right.gif'); } else { echo '<a href="' . tep_href_link(FILENAME_MODULES, 'set=' . $set . '&module=' . $class) . '">' . tep_image(DIR_WS_IMAGES . 'icon_info.gif', IMAGE_ICON_INFO) . '</a>'; } ?> </td>
		  </tr>
<?php
}
 }

 ksort($installed_modules);
 $check_query = tep_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = '" . $module_key . "'");
 if (tep_db_num_rows($check_query)) {
$check = tep_db_fetch_array($check_query);
if ($check['configuration_value'] != implode(';', $installed_modules)) {
  tep_db_query("update " . TABLE_CONFIGURATION . " set configuration_value = '" . implode(';', $installed_modules) . "', last_modified = now() where configuration_key = '" . $module_key . "'");
}
 } else {
tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Installed Modules', '" . $module_key . "', '" . implode(';', $installed_modules) . "', 'This is automatically updated. No need to edit.', '6', '0', now())");
 }
?>
		  <tr>
			<td colspan="3" class="smallText"><?php echo TEXT_MODULE_DIRECTORY . ' ' . $module_directory; ?></td>
		  </tr>
		</table></td>
<?php
 $heading = array();
 $contents = array();

 switch ($action) {
case 'edit':
  $keys = '';
  reset($mInfo->keys);
  while (list($key, $value) = each($mInfo->keys)) {
	$keys .= '<b>' . $value['title'] . '</b><br>' . $value['description'] . '<br>';

	if ($value['set_function']) {
	  eval('$keys .= ' . $value['set_function'] . "'" . $value['value'] . "', '" . $key . "');");
	} else {
	  $keys .= tep_draw_input_field('configuration[' . $key . ']', $value['value']);
	}
	$keys .= '<br><br>';
  }
  $keys = substr($keys, 0, strrpos($keys, '<br><br>'));

  $heading[] = array('text' => '<b>' . $mInfo->title . '</b>');

  $contents = array('form' => tep_draw_form('modules', FILENAME_MODULES, 'set=' . $set . '&module=' . $HTTP_GET_VARS['module'] . '&action=save'));
  $contents[] = array('text' => $keys);
  $contents[] = array('align' => 'center', 'text' => '<br>' . tep_image_submit('button_update.gif', IMAGE_UPDATE) . ' <a href="' . tep_href_link(FILENAME_MODULES, 'set=' . $set . '&module=' . $HTTP_GET_VARS['module']) . '">' . tep_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a>');
  break;
default:
  $heading[] = array('text' => '<b>' . $mInfo->title . '</b>');

  if ($mInfo->status == '1') {
	$keys = '';
	reset($mInfo->keys);
	while (list(, $value) = each($mInfo->keys)) {
	  $keys .= '<b>' . $value['title'] . '</b><br>';
	  if ($value['use_function']) {
		$use_function = $value['use_function'];
		if (ereg('->', $use_function)) {
		  $class_method = explode('->', $use_function);
		  if (!is_object(${$class_method[0]})) {
			include(DIR_WS_CLASSES . $class_method[0] . '.php');
			${$class_method[0]} = new $class_method[0]();
		  }
		  $keys .= tep_call_function($class_method[1], $value['value'], ${$class_method[0]});
		} else {
		  $keys .= tep_call_function($use_function, $value['value']);
		}
	  } else {
		$keys .= $value['value'];
	  }
	  $keys .= '<br><br>';
	}
	$keys = substr($keys, 0, strrpos($keys, '<br><br>'));

	$contents[] = array('align' => 'center', 'text' => '<a href="' . tep_href_link(FILENAME_MODULES, 'set=' . $set . '&module=' . $mInfo->code . '&action=remove') . '">' . tep_image_button('button_module_remove.gif', IMAGE_MODULE_REMOVE) . '</a> <a href="' . tep_href_link(FILENAME_MODULES, 'set=' . $set . (isset($HTTP_GET_VARS['module']) ? '&module=' . $HTTP_GET_VARS['module'] : '') . '&action=edit') . '">' . tep_image_button('button_edit.gif', IMAGE_EDIT) . '</a>');
	$contents[] = array('text' => '<br>' . $mInfo->description);
	$contents[] = array('text' => '<br>' . $keys);
  } else {
	$contents[] = array('align' => 'center', 'text' => '<a href="' . tep_href_link(FILENAME_MODULES, 'set=' . $set . '&module=' . $mInfo->code . '&action=install') . '">' . tep_image_button('button_module_install.gif', IMAGE_MODULE_INSTALL) . '</a>');
	$contents[] = array('text' => '<br>' . $mInfo->description);
  }
  break;
 }

 if ( (tep_not_null($heading)) && (tep_not_null($contents)) ) {
echo '			<td width="25%" valign="top">' . "\n";

$box = new box;
echo $box->infoBox($heading, $contents);

echo '			</td>' . "\n";
 }
?>
	  </tr>
	</table></td>
  </tr>
</table></td>
<!-- body_text_eof //-->
 </tr>
</table>
<!-- body_eof //-->

<!-- footer //-->
<?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
<!-- footer_eof //-->
<br>
</body>
</html>
<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>

Just between us, remember there are only 10 kinds of people in the world; those who understand binary and those who don't!!

 

Remember, learning is a "do-it-yourself" experience; although, not necessarily a "do-it-BY-yourself" experience.

 

The quickest way to learn is to forget to BACKUP!

Link to comment
Share on other sites

I don't know how this got here, I tried to post it to the support forum at

 

http://www.oscommerce.com/forums/index.php?showtopic=146950

Just between us, remember there are only 10 kinds of people in the world; those who understand binary and those who don't!!

 

Remember, learning is a "do-it-yourself" experience; although, not necessarily a "do-it-BY-yourself" experience.

 

The quickest way to learn is to forget to BACKUP!

Link to comment
Share on other sites

someone's not reading all the instructions. :) it says in the instructions if you get a parse error when you hit the edit button in the admin you need to update your database.

Link to comment
Share on other sites

someone's not reading all the instructions. :) it says in the instructions if you get a parse error when you hit the edit button in the admin you need to update your database.

 

 

I have already done that. The error persists.

 

Field Type Collation Attributes Null Default Extra Action

configuration_id int(11) No auto_increment

configuration_title varchar(64) latin1_swedish_ci No

configuration_key varchar(64) latin1_swedish_ci No

configuration_value varchar(255) latin1_swedish_ci No

configuration_description varchar(255) latin1_swedish_ci No

configuration_group_id int(11) No 0

sort_order int(5) Yes NULL

last_modified datetime Yes NULL

date_added datetime No 0000-00-00 00:00:00

use_function varchar(255) latin1_swedish_ci Yes NULL

set_function text latin1_swedish

Just between us, remember there are only 10 kinds of people in the world; those who understand binary and those who don't!!

 

Remember, learning is a "do-it-yourself" experience; although, not necessarily a "do-it-BY-yourself" experience.

 

The quickest way to learn is to forget to BACKUP!

Link to comment
Share on other sites

Sometimes feet work better than heads!!

 

Whatever that means!!

 

I did update the database, but did forget to uninstall and reinstall the module.

 

Sorry.

Just between us, remember there are only 10 kinds of people in the world; those who understand binary and those who don't!!

 

Remember, learning is a "do-it-yourself" experience; although, not necessarily a "do-it-BY-yourself" experience.

 

The quickest way to learn is to forget to BACKUP!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...