Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Problem with action_recorder.php (QTpro 4.6.1)


Draconous

Recommended Posts

Ok here's whats happening and what I've found:

Optional={option} and content=Warning: require(/home/content/test/test/html/includes/classes/action_recorder.php) [function.require]: failed to open stream: No such file or directory in /home/content/test/test/html/admin/includes/classes/action_recorder.php on line 13

 

Fatal error: require() [function.require]: Failed opening required '/home/content/test/test/html/includes/classes/action_recorder.php' (include_path='.:/usr/local/php5/lib/php') in /home/content/test/test/html/admin/includes/classes/action_recorder.php on line 13

 

 

What I've found:

 

/action_recorder.php looks like this

 

<?php
/*
 $Id$
 osCommerce, Open Source E-Commerce Solutions
 http://www.oscommerce.com
 Copyright (c) 2010 osCommerce
 Released under the GNU General Public License
*/
 require('includes/application_top.php');
 $file_extension = substr($PHP_SELF, strrpos($PHP_SELF, '.'));
 $directory_array = array();
 if ($dir = @[member='dir'](DIR_FS_CATALOG_MODULES . 'action_recorder/')) {
while ($file = $dir->read()) {
  if (!is_dir(DIR_FS_CATALOG_MODULES . 'action_recorder/' . $file)) {
	if (substr($file, strrpos($file, '.')) == $file_extension) {
	  $directory_array[] = $file;
	}
  }
}
sort($directory_array);
$dir->close();
 }
 for ($i=0, $n=sizeof($directory_array); $i<$n; $i++) {
$file = $directory_array[$i];
if (file_exists(DIR_FS_CATALOG_LANGUAGES . $language . '/modules/action_recorder/' . $file)) {
  include(DIR_FS_CATALOG_LANGUAGES . $language . '/modules/action_recorder/' . $file);
}
include(DIR_FS_CATALOG_MODULES . 'action_recorder/' . $file);
$class = substr($file, 0, strrpos($file, '.'));
if (tep_class_exists($class)) {
  ${$class} = new $class;
}
 }
 $modules_array = array();
 $modules_list_array = array(array('id' => '', 'text' => TEXT_ALL_MODULES));
 $modules_query = tep_db_query("select distinct module from " . TABLE_ACTION_RECORDER . " order by module");
 while ($modules = tep_db_fetch_array($modules_query)) {
$modules_array[] = $modules['module'];
$modules_list_array[] = array('id' => $modules['module'],
							  'text' => (is_object(${$modules['module']}) ? ${$modules['module']}->title : $modules['module']));
 }
 $action = (isset($HTTP_GET_VARS['action']) ? $HTTP_GET_VARS['action'] : '');
 if (tep_not_null($action)) {
switch ($action) {
  case 'expire':
	$expired_entries = 0;
	if (isset($HTTP_GET_VARS['module']) && in_array($HTTP_GET_VARS['module'], $modules_array)) {
	  if (is_object(${$HTTP_GET_VARS['module']})) {
		$expired_entries += ${$HTTP_GET_VARS['module']}->expireEntries();
	  } else {
		$delete_query = tep_db_query("delete from " . TABLE_ACTION_RECORDER . " where module = '" . tep_db_input($HTTP_GET_VARS['module']) . "'");
		$expired_entries += mysql_affected_rows($db_link);
	  }
	} else {
	  foreach ($modules_array as $module) {
		if (is_object(${$module})) {
		  $expired_entries += ${$module}->expireEntries();
		}
	  }
	}
	$messageStack->add_session(sprintf(SUCCESS_EXPIRED_ENTRIES, $expired_entries), 'success');
	tep_redirect(tep_href_link(FILENAME_ACTION_RECORDER));
	break;
}
 }
 require(DIR_WS_INCLUDES . 'template_top.php');
?>
<table border="0" width="100%" cellspacing="0" cellpadding="2">
  <tr>
	<td><table border="0" width="100%" cellspacing="0" cellpadding="2" height="40">
	  <tr>
		<td class="pageHeading"><?php echo HEADING_TITLE; ?></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_ACTION_RECORDER, '', 'get');
 echo TEXT_FILTER_SEARCH . ' ' . tep_draw_input_field('search');
 echo tep_draw_hidden_field('module') . tep_hide_session_id() . '</form>';
?>
			</td>
		  </tr>
		  <tr>
			<td class="smallText" align="right">
<?php
 echo tep_draw_form('filter', FILENAME_ACTION_RECORDER, '', 'get');
 echo tep_draw_pull_down_menu('module', $modules_list_array, null, 'onchange="this.form.submit();"');
 echo tep_draw_hidden_field('search') . tep_hide_session_id() . '</form>';
?>
			</td>
		  </tr>
		</table></td>
		<td class="smallText" align="right"><?php echo tep_draw_button(IMAGE_DELETE, 'trash', tep_href_link(FILENAME_ACTION_RECORDER, 'action=expire' . (isset($HTTP_GET_VARS['module']) && in_array($HTTP_GET_VARS['module'], $modules_array) ? '&module=' . $HTTP_GET_VARS['module'] : '')), 'primary'); ?></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" width="20"> </td>
			<td class="dataTableHeadingContent"><?php echo TABLE_HEADING_MODULE; ?></td>
			<td class="dataTableHeadingContent"><?php echo TABLE_HEADING_CUSTOMER; ?></td>
			<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_DATE_ADDED; ?></td>
			<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_ACTION; ?> </td>
		  </tr>
<?php
 $filter = array();
 if (isset($HTTP_GET_VARS['module']) && in_array($HTTP_GET_VARS['module'], $modules_array)) {
$filter[] = " module = '" . tep_db_input($HTTP_GET_VARS['module']) . "' ";
 }
 if (isset($HTTP_GET_VARS['search']) && !empty($HTTP_GET_VARS['search'])) {
$filter[] = " identifier like '%" . tep_db_input($HTTP_GET_VARS['search']) . "%' ";
 }
 $actions_query_raw = "select * from " . TABLE_ACTION_RECORDER . (!empty($filter) ? " where " . implode(" and ", $filter) : "") . " order by date_added desc";
 $actions_split = new splitPageResults($HTTP_GET_VARS['page'], MAX_DISPLAY_SEARCH_RESULTS, $actions_query_raw, $actions_query_numrows);
 $actions_query = tep_db_query($actions_query_raw);
 while ($actions = tep_db_fetch_array($actions_query)) {
$module = $actions['module'];
$module_title = $actions['module'];
if (is_object(${$module})) {
  $module_title = ${$module}->title;
}
if ((!isset($HTTP_GET_VARS['aID']) || (isset($HTTP_GET_VARS['aID']) && ($HTTP_GET_VARS['aID'] == $actions['id']))) && !isset($aInfo)) {
  $actions_extra_query = tep_db_query("select identifier from " . TABLE_ACTION_RECORDER . " where id = '" . (int)$actions['id'] . "'");
  $actions_extra = tep_db_fetch_array($actions_extra_query);
  $aInfo_array = array_merge($actions, $actions_extra, array('module' => $module_title));
  $aInfo = new objectInfo($aInfo_array);
}
if ( (isset($aInfo) && is_object($aInfo)) && ($actions['id'] == $aInfo->id) ) {
  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_ACTION_RECORDER, 'aID=' . $actions['id']) . '\'">' . "\n";
}
?>
			<td class="dataTableContent" align="center"><?php echo tep_image(DIR_WS_IMAGES . 'icons/' . (($actions['success'] == '1') ? 'tick.gif' : 'cross.gif')); ?></td>
			<td class="dataTableContent"><?php echo $module_title; ?></td>
			<td class="dataTableContent"><?php echo tep_output_string_protected($actions['user_name']) . ' [' . (int)$actions['user_id'] . ']'; ?></td>
			<td class="dataTableContent" align="right"><?php echo tep_datetime_short($actions['date_added']); ?></td>
			<td class="dataTableContent" align="right"><?php if ( (isset($aInfo) && is_object($aInfo)) && ($actions['id'] == $aInfo->id) ) { echo tep_image(DIR_WS_IMAGES . 'icon_arrow_right.gif', ''); } else { echo '<a href="' . tep_href_link(FILENAME_ACTION_RECORDER, 'aID=' . $actions['id']) . '">' . tep_image(DIR_WS_IMAGES . 'icon_info.gif', IMAGE_ICON_INFO) . '</a>'; } ?> </td>
		  </tr>
<?php
 }
?>
		  <tr>
			<td colspan="5"><table border="0" width="100%" cellspacing="0" cellpadding="2">
			  <tr>
				<td class="smallText" valign="top"><?php echo $actions_split->display_count($actions_query_numrows, MAX_DISPLAY_SEARCH_RESULTS, $HTTP_GET_VARS['page'], TEXT_DISPLAY_NUMBER_OF_ENTRIES); ?></td>
				<td class="smallText" align="right"><?php echo $actions_split->display_links($actions_query_numrows, MAX_DISPLAY_SEARCH_RESULTS, MAX_DISPLAY_PAGE_LINKS, $HTTP_GET_VARS['page'], (isset($HTTP_GET_VARS['module']) && in_array($HTTP_GET_VARS['module'], $modules_array) && is_object(${$HTTP_GET_VARS['module']}) ? 'module=' . $HTTP_GET_VARS['module'] : null) . '&' . (isset($HTTP_GET_VARS['search']) && !empty($HTTP_GET_VARS['search']) ? 'search=' . $HTTP_GET_VARS['search'] : null)); ?></td>
			  </tr>
			</table></td>
		  </tr>
		</table></td>
<?php
 $heading = array();
 $contents = array();
 switch ($action) {
default:
  if (isset($aInfo) && is_object($aInfo)) {
	$heading[] = array('text' => '<strong>' . $aInfo->module . '</strong>');
	$contents[] = array('text' => TEXT_INFO_IDENTIFIER . '<br /><br />' . (!empty($aInfo->identifier) ? '<a href="' . tep_href_link(FILENAME_ACTION_RECORDER, 'search=' . $aInfo->identifier) . '"><u>' . tep_output_string_protected($aInfo->identifier) . '</u></a>': '(empty)'));
	$contents[] = array('text' => '<br />' . TEXT_INFO_DATE_ADDED . ' ' . tep_datetime_short($aInfo->date_added));
  }
  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>
<?php
 require(DIR_WS_INCLUDES . 'template_bottom.php');
 require(DIR_WS_INCLUDES . 'application_bottom.php');
?>

 

and the code we're looking at in action_recorder.php is here:

 

  
if ($dir = @[member='dir'](DIR_FS_CATALOG_MODULES . 'action_recorder/')) {

 

 

 

Am I missing a very crucial part of code to fix this issue or is the file really missing? I looked and they are in they're exact places and cannot figure out what in the code could be wrong. I even did searches for it like i was tought in class but found nothing... End result, looking for some skilled coders to help me see where I went wrong when following the setup for this contrib. I will add that I understand that they are used at own risk but not worried cause I have backups of everything on my MacBook Pro. Any and all help is greatly appreciated!!!!

Link to comment
Share on other sites

Archived

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

×
×
  • Create New...