Jump to content
Sign in to follow this  
Vines

Product Extra Fields and ACA2 parse error

Recommended Posts

I'm a total nube on oscommerce. I just did a clean install which is working fine and have added Advanced Categories Admin (ACA2), which I think is working fine. I am now trying to add the Products Extra Fields contribution. I changed all the files necessary, added the additional files, ran the SQL successfully, but have this error when I try to enter the Product Extra Fields admin area at: admin-->catalog --> Product Extra Fields:

 

Parse error: syntax error, unexpected T_REQUIRE in /home/vineswin/public_html/admin/product_extra_fields.php on line 1

 

The require leads to admin/includes/application_top.php, which is present.

 

I searched throughout these forums but I didn't see anything with this problem. I believe I followed the installation instructions for both ACA2 and Extra Fields to the letter.

 

Any assistance would be greatly appreciated.


----------------------------------------------------

Share this post


Link to post
Share on other sites

The first tip is to re-read the entire new code checking every single dash, quote, underscore, etc. I have added several new things from the contributions pages, and have made small errors that I did not catch until I had looked at the offending code until my eyes were blurry! It usually seemed to be something as simple as an extra or out of place quotation mark or a dash instead of an underscore. If you have something you can compare it to, that really helps. Also, locate and download WinMerge. It will become your best friend. Hope that helps some, as I have not used the particular contribution you are talking about. Having added several others though, it really usually is something so unbelievably simple that you will end up kicking yourself. I know I have!

 

Lefty

Share this post


Link to post
Share on other sites
The first tip is to re-read the entire new code checking every single dash, quote, underscore, etc. I have added several new things from the contributions pages, and have made small errors that I did not catch until I had looked at the offending code until my eyes were blurry! It usually seemed to be something as simple as an extra or out of place quotation mark or a dash instead of an underscore. If you have something you can compare it to, that really helps. Also, locate and download WinMerge. It will become your best friend. Hope that helps some, as I have not used the particular contribution you are talking about. Having added several others though, it really usually is something so unbelievably simple that you will end up kicking yourself. I know I have!

 

Lefty

 

Thanks for the tips. I will definitely check out WinMerge. I solved my problem and thought I would post it here. After uninstalling ACA2 and then reinstalling Product Extra Fields, I had the same error. Turns out that I used the "j" version of Extra Fields which has a slight change to product_extra_fields.php to make it work on php 5. It would not work on my php 4.x so I downloaded the version "i" package and uploaded that version of the product_extra_fields.php and voila! it worked!

 

Now I get to re-install ACA2 since that was never the problem :-(


----------------------------------------------------

Share this post


Link to post
Share on other sites

I had the exact problem with version J

 

"parse error: syntax error, unexpected T_REQUIRE"

 

However, version J now works fine on my v.4.x.x of PHP. The problem ended up being a corrupt version of the product_extra_fields.php under the /admin/ directory. Not sure what exactly the problem was but whenever I tried looking at the file under editplus, the code was all over the place and many lines commented out by the first comment.

 

Anyways, I just wanted to let everyone know that the version J of this mod works great under all my versions of 4.x.x and my version 5x as well. I used a different FTP program and uploaded the new v. J of the file and problem solved.

 

Check your file!

 

Have fun,

Shayne

Share this post


Link to post
Share on other sites

Hi everyone,

I just had the same error mentioned here and as explained I tried to download the J version which is compatible with php 5.0 but I kept having the same error.

 

This was due to the corrupted product_extra_fields.php file.

 

The correct one should contain the following code:

 

 

 

 

<?php
/*
 $Id: product_extra_field.php,v 2.0 2004/11/09 22:50:52 ChBu Exp $

 osCommerce, Open Source E-Commerce Solutions
 [url="http://www.oscommerce.com"]http://www.oscommerce.com[/url]

 Copyright © 2003 osCommerce

 Released under the GNU General Public License
 * 
 * v2.0: added languages support
*/
require('includes/application_top.php');

$action = (isset($HTTP_GET_VARS['action']) ? $HTTP_GET_VARS['action'] : '');
// Has "Remove" button been pressed?
if (isset($HTTP_POST_VARS['remove_x']) || isset($HTTP_POST_VARS['remove_y'])) $action='remove';

if (tep_not_null($action)) {
 switch ($action) {
   case 'setflag':
     $sql_data_array = array('products_extra_fields_status' => tep_db_prepare_input($HTTP_GET_VARS['flag']));
  tep_db_perform(TABLE_PRODUCTS_EXTRA_FIELDS, $sql_data_array, 'update', 'products_extra_fields_id=' . $HTTP_GET_VARS['id']);
     tep_redirect(tep_href_link(FILENAME_PRODUCTS_EXTRA_FIELDS));	
  break;
   case 'add':
     $sql_data_array = array('products_extra_fields_name' => tep_db_prepare_input($HTTP_POST_VARS['field']['name']),
                          'languages_id' => tep_db_prepare_input ($HTTP_POST_VARS['field']['language']),
						  'products_extra_fields_order' => tep_db_prepare_input($HTTP_POST_VARS['field']['order']));
		tep_db_perform(TABLE_PRODUCTS_EXTRA_FIELDS, $sql_data_array, 'insert');

     tep_redirect(tep_href_link(FILENAME_PRODUCTS_EXTRA_FIELDS));
     break;
   case 'update':
     foreach ($HTTP_POST_VARS['field'] as $key=>$val) {
       $sql_data_array = array('products_extra_fields_name' => tep_db_prepare_input($val['name']),
	                        'languages_id' =>  tep_db_prepare_input($val['language']),
		   					'products_extra_fields_order' => tep_db_prepare_input($val['order']));
		  tep_db_perform(TABLE_PRODUCTS_EXTRA_FIELDS, $sql_data_array, 'update', 'products_extra_fields_id=' . $key);
     }
     tep_redirect(tep_href_link(FILENAME_PRODUCTS_EXTRA_FIELDS));

     break;
   case 'remove':
     //print_r($HTTP_POST_VARS['mark']);
     if ($HTTP_POST_VARS['mark']) {
       foreach ($HTTP_POST_VARS['mark'] as $key=>$val) {
         tep_db_query("DELETE FROM " . TABLE_PRODUCTS_EXTRA_FIELDS . " WHERE products_extra_fields_id=" . tep_db_input($key));
         tep_db_query("DELETE FROM " . TABLE_PRODUCTS_TO_PRODUCTS_EXTRA_FIELDS . " WHERE products_extra_fields_id=" . tep_db_input($key));
       }
       tep_redirect(tep_href_link(FILENAME_PRODUCTS_EXTRA_FIELDS));
     }

     break;
 }
}

// Put languages information into an array for drop-down boxes
 $languages=tep_get_languages();
 $values[0]=array ('id' =>'0', 'text' => TEXT_ALL_LANGUAGES);
 for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
$values[$i+1]=array ('id' =>$languages[$i]['id'], 'text' =>$languages[$i]['name']);
 }

?>
<!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();">
<!-- 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>
      </tr>
     </table>
    </td>
   </tr>

   <tr>
    <td width="100%">
     <!--
     <div style="font-family: verdana; font-weight: bold; font-size: 17px; margin-bottom: 8px; color: #727272;">
      <?php echo SUBHEADING_TITLE; ?>
     </div>
     -->
     <br />
     <?php //echo tep_draw_form("add_field", FILENAME_PRODUCTS_EXTRA_FIELDS, 'action=add', 'post'); ?>

  <?php echo tep_draw_form('add_field', FILENAME_PRODUCTS_EXTRA_FIELDS, 'action=add', 'post'); ?>
     <table border="0" width="400" cellspacing="0" cellpadding="2">
      <tr class="dataTableHeadingRow">
       <td class="dataTableHeadingContent"><?php echo TABLE_HEADING_FIELDS; ?></td>
       <td class="dataTableHeadingContent" align="center"><?php echo TABLE_HEADING_ORDER; ?></td>
	<td class="dataTableHeadingContent" align="center"><?php echo TABLE_HEADING_LANGUAGE; ?></td>
      </tr>

      <tr>
       <td class="dataTableContent">
        <?php echo tep_draw_input_field('field[name]', $field['name'], 'size=30', false, 'text', true);?>
       </td>
	<td class="dataTableContent" align="center">
        <?php echo tep_draw_input_field('field[order]', $field['order'], 'size=5', false, 'text', true);?>
       </td>
	<td class="dataTableContent" align="center">
        <?php
	 echo tep_draw_pull_down_menu('field[language]', $values, '0', '');?>
       </td>		
       <td class="dataTableHeadingContent" align="right">
<?php echo tep_image_submit('button_add_field.gif',IMAGE_ADD_FIELD)?>
       </td>
      </tr>
      </form>
     </table>
     <hr />
     <br>
     <?php
      echo tep_draw_form('extra_fields', FILENAME_PRODUCTS_EXTRA_FIELDS,'action=update','post');
     ?>
     <?php echo $action_message; ?>
     <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_FIELDS; ?></td>
       <td class="dataTableHeadingContent" align="center"><?php echo TABLE_HEADING_ORDER; ?></td>
	<td class="dataTableHeadingContent" align="center"><?php echo TABLE_HEADING_LANGUAGE; ?></td>
       <td class="dataTableHeadingContent" align="center"><?php echo TABLE_HEADING_STATUS; ?></td>
      </tr>
<?php
$products_extra_fields_query = tep_db_query("SELECT * FROM " . TABLE_PRODUCTS_EXTRA_FIELDS . " ORDER BY products_extra_fields_order");
while ($extra_fields = tep_db_fetch_array($products_extra_fields_query)) {
?>
      <tr>
       <td width="20">
        <?php echo tep_draw_checkbox_field('mark['.$extra_fields['products_extra_fields_id'].']', 1) ?>
       </td>
       <td class="dataTableContent">
        <?php echo tep_draw_input_field('field['.$extra_fields['products_extra_fields_id'].'][name]', $extra_fields['products_extra_fields_name'], 'size=30', false, 'text', true);?>
       </td>
	<td class="dataTableContent" align="center">
        <?php echo tep_draw_input_field('field['.$extra_fields['products_extra_fields_id'].'][order]', $extra_fields['products_extra_fields_order'], 'size=5', false, 'text', true);?>
       </td>
	<td class="dataTableContent" align="center">
	 <?php echo tep_draw_pull_down_menu('field['.$extra_fields['products_extra_fields_id'].'][language]', $values, $extra_fields['languages_id'], ''); ?>
       </td>	
			<td  class="dataTableContent" align="center">
        <?php
         if ($extra_fields['products_extra_fields_status'] == '1') {
           echo tep_image(DIR_WS_IMAGES . 'icon_status_green.gif', IMAGE_ICON_STATUS_GREEN, 10, 10) . '  <a href="' . tep_href_link(FILENAME_PRODUCTS_EXTRA_FIELDS, 'action=setflag&flag=0&id=' . $extra_fields['products_extra_fields_id'], 'NONSSL') . '">' . tep_image(DIR_WS_IMAGES . 'icon_status_red_light.gif', IMAGE_ICON_STATUS_RED_LIGHT, 10, 10) . '</a>';
         }
         else {
           echo '<a href="' . tep_href_link(FILENAME_PRODUCTS_EXTRA_FIELDS, 'action=setflag&flag=1&id=' . $extra_fields['products_extra_fields_id'], 'NONSSL') . '">' . tep_image(DIR_WS_IMAGES . 'icon_status_green_light.gif', IMAGE_ICON_STATUS_GREEN_LIGHT, 10, 10) . '</a>  ' . tep_image(DIR_WS_IMAGES . 'icon_status_red.gif', IMAGE_ICON_STATUS_RED, 10, 10);
         }
        ?>
       </td>
      </tr>
<?php } ?>
      <tr>
       <td colspan="4">
        <?php echo tep_image_submit('button_update_fields.gif',IMAGE_UPDATE_FIELDS)?> 
          
 <?php echo tep_image_submit('button_remove_fields.gif',IMAGE_REMOVE_FIELDS,'name="remove"')?> 
       </td>
      </tr>
      </form>
     </table>
    </td>
   </tr>
  </table>
 </td>
<!-- body_text_eof //-->
</tr>
</table>
<!-- body_eof //-->

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

 

 

Still have some issues thought to make it work with easy populate.

Share this post


Link to post
Share on other sites

hi there,

 

had the same problem but it had nothing to do with the php..

The file is encoded in MAC format, change it to DOS/Windows and reupload.

 

I use Notepad++, there it is in the 'format' menu

 

hope that helps someone

 

have a good life

Robert

Edited by webandbeyond

Share this post


Link to post
Share on other sites

Thanks so much this tip was a lifesaver.......I opened notepad and copy and pasted the information from product_extra_field.php in the original contribution into notepad and saved it with teh same fielname and extension and upload. This took care of the error....thank you

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×