Jump to content
Sign in to follow this  
Chandra

Option Type Feature v1.6 (for osc 2.2 MS2)

Recommended Posts

Hello,

I installed the Product Attributes - Option Type Feature and I am having a problem. Everything seems to work fine. A customer can add their custom text as an attribute to the product. It shows up fine in the Checkout screen for the customer.

 

The problem comes when I look at the order in admin section. The attribute field has a generic "Text" string in it not the Customer Text that the customer typed.

 

Any help you can give me as to why the attribute field in the Cart Attributes table is not updating the field the the Order Atributes table properly would be greatly appreciated.

 

thanks.

Share this post


Link to post
Share on other sites
I am having the same problem! Looking through the code on product_info.php I see that it sets the number of rows, but not the width. How do we add that? I tried just adding COLS=20 below where it says rows=5, but that did nothing. How can I define the width of the textarea box using php code, which I know little about!?!

 

Thanks, Karen

 

I'm having this same problem...any solutions?

Thanks,

Ken

Share this post


Link to post
Share on other sites
I'm having this same problem...any solutions?
I don't see that problem using Firefox and Safari on a Mac. I must say I use slightly different code for the text area. I also notice that the div of the progress bar can pull on the text box to make it bigger. Might interfer with something?

Share this post


Link to post
Share on other sites
I don't see that problem using Firefox and Safari on a Mac. I must say I use slightly different code for the text area. I also notice that the div of the progress bar can pull on the text box to make it bigger. Might interfer with something?

 

It's only a problem with IE and Opera...I had no problem with Mozilla (FireFox) or Safari. But I did finally find a fix for it. In product_info.php, in the section that adds the logic for the text option is this:

 

<tr>

<?php

if ($products_attribs_array['options_values_price'] != '0') {

?>

<td class="main"><?php echo $products_options_name['products_options_name'] . '<br>(' . $products_options_name['products_options_comment'] . ' ' . $products_attribs_array['price_prefix'] . $currencies->display_price($products_attribs_array['options_values_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) . ')'; ?></td>

<?php } else {

?>

<td class="main"><?php echo $products_options_name['products_options_name'] . '<br>(' . $products_options_name['products_options_comment'] . ')'; ?></td>

<?php }

?>

<td class="main" width="300"><?php echo $tmp_html; ?></td>

</tr>

 

The bit I added (in red) opens up that <td> and lets the text box be displayed. Now works with IE and Opera...just thought you'd like to know.

Share this post


Link to post
Share on other sites

Hi-

 

I'm a real php newbie, but seem to have the rest of this working... Keep running into this error - and can't figure out where the problem lies.

 

Here's the complete error message I get:

Parse error: syntax error, unexpected T_CASE in /Library/WebServer///Path hidden to admin///products_attributes.php on line 44

 

Here's the first 100 or so lines of code in that file:

 

Code:

 

<?php
/*
 $Id: products_attributes.php,v 1.52 2003/07/10 20:46:01 dgw_ 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');
 $languages = tep_get_languages();

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

 if (tep_not_null($action)) {
$page_info = '';
if (isset($HTTP_GET_VARS['option_page'])) $page_info .= 'option_page=' . $HTTP_GET_VARS['option_page'] . '&';
if (isset($HTTP_GET_VARS['value_page'])) $page_info .= 'value_page=' . $HTTP_GET_VARS['value_page'] . '&';
if (isset($HTTP_GET_VARS['attribute_page'])) $page_info .= 'attribute_page=' . $HTTP_GET_VARS['attribute_page'] . '&';
if (tep_not_null($page_info)) {
  $page_info = substr($page_info, 0, -1);
}

switch ($action) {
  case 'add_product_options':
	$products_options_id = tep_db_prepare_input($HTTP_POST_VARS['products_options_id']);
	$option_name_array = $HTTP_POST_VARS['option_name'];
	$option_type = $HTTP_POST_VARS['option_type'];   //clr 030714 update to add option type to products_option
  $option_length = $HTTP_POST_VARS['option_length'];   //clr 030714 update to add option length to products_option

	for ($i=0, $n=sizeof($languages); $i<$n; $i ++) {
	  $option_name = tep_db_prepare_input($option_name_array[$languages[$i]['id']]);
	$option_comment = $HTTP_POST_VARS['option_comment'];   //clr 030714 update to add option comment to products_option

	  tep_db_query("insert into " . TABLE_PRODUCTS_OPTIONS . " (products_options_id, products_options_name, language_id, products_options_type, products_options_length, products_options_comment) values ('" . (int)$products_options_id . "', '" . tep_db_input($option_name) . "', '" . (int)$languages[$i]['id'] . "', '" . $option_type . "', '" . $option_length . "', '" . $option_comment[$languages[$i]['id']]  . "')");
	   if($option_type != 0 && $option_type != 2){
			  tep_db_query("insert into " . TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS . " (products_options_id, products_options_values_id) values ('" . (int)$products_options_id . "', '0')");
		   }
	tep_redirect(tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, $page_info));
	break;
	case 'add_product_option_values':
	$value_name_array = $HTTP_POST_VARS['value_name'];
	$value_id = tep_db_prepare_input($HTTP_POST_VARS['value_id']);
	$option_id = tep_db_prepare_input($HTTP_POST_VARS['option_id']);

	for ($i=0, $n=sizeof($languages); $i<$n; $i ++) {
	  $value_name = tep_db_prepare_input($value_name_array[$languages[$i]['id']]);

	  tep_db_query("insert into " . TABLE_PRODUCTS_OPTIONS_VALUES . " (products_options_values_id, language_id, products_options_values_name) values ('" . (int)$value_id . "', '" . (int)$languages[$i]['id'] . "', '" . tep_db_input($value_name) . "')");
	}

	tep_db_query("insert into " . TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS . " (products_options_id, products_options_values_id) values ('" . (int)$option_id . "', '" . (int)$value_id . "')");

	tep_redirect(tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, $page_info));
	break;
  case 'add_product_attributes':
	$products_id = tep_db_prepare_input($HTTP_POST_VARS['products_id']);
	$options_id = tep_db_prepare_input($HTTP_POST_VARS['options_id']);
	$values_id = tep_db_prepare_input($HTTP_POST_VARS['values_id']);
	$value_price = tep_db_prepare_input($HTTP_POST_VARS['value_price']);
	$price_prefix = tep_db_prepare_input($HTTP_POST_VARS['price_prefix']);

	tep_db_query("insert into " . TABLE_PRODUCTS_ATTRIBUTES . " values ('', '" . (int)$products_id . "', '" . (int)$options_id . "', '" . (int)$values_id . "', '" . tep_db_input($value_price) . "', '" . tep_db_input($price_prefix) . "')");

	if (DOWNLOAD_ENABLED == 'true') {
	  $products_attributes_id = tep_db_insert_id();

	  $products_attributes_filename = tep_db_prepare_input($HTTP_POST_VARS['products_attributes_filename']);
	  $products_attributes_maxdays = tep_db_prepare_input($HTTP_POST_VARS['products_attributes_maxdays']);
	  $products_attributes_maxcount = tep_db_prepare_input($HTTP_POST_VARS['products_attributes_maxcount']);

	  if (tep_not_null($products_attributes_filename)) {
		tep_db_query("insert into " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " values (" . (int)$products_attributes_id . ", '" . tep_db_input($products_attributes_filename) . "', '" . tep_db_input($products_attributes_maxdays) . "', '" . tep_db_input($products_attributes_maxcount) . "')");
	  }
	}

 

 

Any ideas or thoughts?

 

Thanks in advance!

 

--Jeff

Edited by HDLLC

Share this post


Link to post
Share on other sites

Hi there i've been trying to get this contribution going for quite a while now and it seems to be working almost perfectly. When using a text area the text appears in the shopping cart as it should but it does not appear in the invoice or the e-mail which pretty much makes it useless. The only thing that appears in the invoice is:

1 x  	test
 - : 

 

I am using oscommerce MS2 with a the files in the Option Type Feature v1.7.2 package. I hope someone can help.

Share this post


Link to post
Share on other sites
Hi there i've been trying to get this contribution going for quite a while now and it seems to be working almost perfectly. When using a text area the text appears in the shopping cart as it should but it does not appear in the invoice or the e-mail which pretty much makes it useless. The only thing that appears in the invoice is:

1 x  	test
 - : 

 

I am using oscommerce MS2 with a the files in the Option Type Feature v1.7.2 package. I hope someone can help.

 

That is discouraging... Hopefully, someone can help us both.

 

Really need this contribution so that I can register people for events. The registrants will be kids for wrestling tournaments, so the customer information will be different than what is required for a "registration".

 

Text fields will be key to this working for me... More importantly, getting it to function will be first.

 

=^)

 

Thanks!

 

--Jeff

Share this post


Link to post
Share on other sites
Here's the complete error message I get:

Parse error: syntax error, unexpected T_CASE in /Library/WebServer///Path hidden to admin///products_attributes.php on line 44

You removed a } which causes that error.

if($option_type != 0 && $option_type != 2){
			  tep_db_query("insert into " . TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS . " (products_options_id, products_options_values_id) values ('" . (int)$products_options_id . "', '0')");
		   }
	} // missing brace
	tep_redirect(tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, $page_info));
	break;
	case 'add_product_option_values':
	$value_name_array = $HTTP_POST_VARS['value_name'];
	$value_id = tep_db_prepare_input($HTTP_POST_VARS['value_id']);
	$option_id = tep_db_prepare_input($HTTP_POST_VARS['option_id']);

Share this post


Link to post
Share on other sites
You removed a } which causes that error.

if($option_type != 0 && $option_type != 2){
			  tep_db_query("insert into " . TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS . " (products_options_id, products_options_values_id) values ('" . (int)$products_options_id . "', '0')");
		   }
	} // missing brace
	tep_redirect(tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, $page_info));
	break;
	case 'add_product_option_values':
	$value_name_array = $HTTP_POST_VARS['value_name'];
	$value_id = tep_db_prepare_input($HTTP_POST_VARS['value_id']);
	$option_id = tep_db_prepare_input($HTTP_POST_VARS['option_id']);

 

Thanks! Much appreciated!

 

That worked - then it snagged another error on line 308...

 

Grrr..... I'll try posting the whole file... Not sure what the deal is...

 

I obviously have something else going on with this...

 

Thanks in advance!

 

--Jeff

 

 

 

 

<?php
/*
 $Id: products_attributes.php,v 1.52 2003/07/10 20:46:01 dgw_ 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');
 $languages = tep_get_languages();

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

 if (tep_not_null($action)) {
$page_info = '';
if (isset($HTTP_GET_VARS['option_page'])) $page_info .= 'option_page=' . $HTTP_GET_VARS['option_page'] . '&';
if (isset($HTTP_GET_VARS['value_page'])) $page_info .= 'value_page=' . $HTTP_GET_VARS['value_page'] . '&';
if (isset($HTTP_GET_VARS['attribute_page'])) $page_info .= 'attribute_page=' . $HTTP_GET_VARS['attribute_page'] . '&';
if (tep_not_null($page_info)) {
  $page_info = substr($page_info, 0, -1);
}

switch ($action) {
  case 'add_product_options':
	$products_options_id = tep_db_prepare_input($HTTP_POST_VARS['products_options_id']);
	$option_name_array = $HTTP_POST_VARS['option_name'];
	$option_type = $HTTP_POST_VARS['option_type'];	//clr 030714 update to add option type to products_option
	$option_length = $HTTP_POST_VARS['option_length'];	//clr 030714 update to add option length to products_option

	for ($i=0, $n=sizeof($languages); $i<$n; $i ++) {
	  $option_name = tep_db_prepare_input($option_name_array[$languages[$i]['id']]);
	  $option_comment = $HTTP_POST_VARS['option_comment'];	//clr 030714 update to add option comment to products_option

	  tep_db_query("insert into " . TABLE_PRODUCTS_OPTIONS . " (products_options_id, products_options_name, language_id, products_options_type, products_options_length, products_options_comment) values ('" . (int)$products_options_id . "', '" . tep_db_input($option_name) . "', '" . (int)$languages[$i]['id'] . "', '" . $option_type . "', '" . $option_length . "', '" . $option_comment[$languages[$i]['id']]  . "')");
		if($option_type != 0 && $option_type != 2){
					tep_db_query("insert into " . TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS . " (products_options_id, products_options_values_id) values ('" . (int)$products_options_id . "', '0')");
				}
	}
	tep_redirect(tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, $page_info));
	break;
	case 'add_product_option_values':
	$value_name_array = $HTTP_POST_VARS['value_name'];
	$value_id = tep_db_prepare_input($HTTP_POST_VARS['value_id']);
	$option_id = tep_db_prepare_input($HTTP_POST_VARS['option_id']);

	for ($i=0, $n=sizeof($languages); $i<$n; $i ++) {
	  $value_name = tep_db_prepare_input($value_name_array[$languages[$i]['id']]);

	  tep_db_query("insert into " . TABLE_PRODUCTS_OPTIONS_VALUES . " (products_options_values_id, language_id, products_options_values_name) values ('" . (int)$value_id . "', '" . (int)$languages[$i]['id'] . "', '" . tep_db_input($value_name) . "')");
	}

	tep_db_query("insert into " . TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS . " (products_options_id, products_options_values_id) values ('" . (int)$option_id . "', '" . (int)$value_id . "')");

	tep_redirect(tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, $page_info));
	break;
  case 'add_product_attributes':
	$products_id = tep_db_prepare_input($HTTP_POST_VARS['products_id']);
	$options_id = tep_db_prepare_input($HTTP_POST_VARS['options_id']);
	$values_id = tep_db_prepare_input($HTTP_POST_VARS['values_id']);
	$value_price = tep_db_prepare_input($HTTP_POST_VARS['value_price']);
	$price_prefix = tep_db_prepare_input($HTTP_POST_VARS['price_prefix']);

	tep_db_query("insert into " . TABLE_PRODUCTS_ATTRIBUTES . " values ('', '" . (int)$products_id . "', '" . (int)$options_id . "', '" . (int)$values_id . "', '" . tep_db_input($value_price) . "', '" . tep_db_input($price_prefix) . "')");

	if (DOWNLOAD_ENABLED == 'true') {
	  $products_attributes_id = tep_db_insert_id();

	  $products_attributes_filename = tep_db_prepare_input($HTTP_POST_VARS['products_attributes_filename']);
	  $products_attributes_maxdays = tep_db_prepare_input($HTTP_POST_VARS['products_attributes_maxdays']);
	  $products_attributes_maxcount = tep_db_prepare_input($HTTP_POST_VARS['products_attributes_maxcount']);

	  if (tep_not_null($products_attributes_filename)) {
		tep_db_query("insert into " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " values (" . (int)$products_attributes_id . ", '" . tep_db_input($products_attributes_filename) . "', '" . tep_db_input($products_attributes_maxdays) . "', '" . tep_db_input($products_attributes_maxcount) . "')");
	  }
	}

	tep_redirect(tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, $page_info));
	break;
  case 'update_option_name':
	$option_name_array = $HTTP_POST_VARS['option_name'];

	$option_type = $HTTP_POST_VARS['option_type'];	//clr 030714 update to add option type to products_option

	$option_length = $HTTP_POST_VARS['option_length'];	//clr 030714 update to add option length to products_option

	$option_id = tep_db_prepare_input($HTTP_POST_VARS['option_id']);



	for ($i=0, $n=sizeof($languages); $i<$n; $i ++) {

	  $option_name = tep_db_prepare_input($option_name_array[$languages[$i]['id']]);	

	  $option_comment = $HTTP_POST_VARS['option_comment'];	//clr 030714 update to add option comment to products_option



	  tep_db_query("update " . TABLE_PRODUCTS_OPTIONS . " set products_options_name = '" . tep_db_input($option_name) . "', products_options_type = '" . $option_type . "', products_options_length = '" . $option_length . "', products_options_comment = '" . $option_comment[$languages[$i]['id']] . "' where products_options_id = '" . (int)$option_id . "' and language_id = '" . (int)$languages[$i]['id'] . "'");

	}

	tep_redirect(tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, $page_info));
	break;
  case 'update_value':
	$value_name_array = $HTTP_POST_VARS['value_name'];
	$value_id = tep_db_prepare_input($HTTP_POST_VARS['value_id']);
	$option_id = tep_db_prepare_input($HTTP_POST_VARS['option_id']);

	for ($i=0, $n=sizeof($languages); $i<$n; $i ++) {
	  $value_name = tep_db_prepare_input($value_name_array[$languages[$i]['id']]);

	  tep_db_query("update " . TABLE_PRODUCTS_OPTIONS_VALUES . " set products_options_values_name = '" . tep_db_input($value_name) . "' where products_options_values_id = '" . tep_db_input($value_id) . "' and language_id = '" . (int)$languages[$i]['id'] . "'");
	}

	tep_db_query("update " . TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS . " set products_options_id = '" . (int)$option_id . "'  where products_options_values_id = '" . (int)$value_id . "'");

	tep_redirect(tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, $page_info));
	break;
  case 'update_product_attribute':
	$products_id = tep_db_prepare_input($HTTP_POST_VARS['products_id']);
	$options_id = tep_db_prepare_input($HTTP_POST_VARS['options_id']);
	$values_id = tep_db_prepare_input($HTTP_POST_VARS['values_id']);
	$value_price = tep_db_prepare_input($HTTP_POST_VARS['value_price']);
	$price_prefix = tep_db_prepare_input($HTTP_POST_VARS['price_prefix']);
	$attribute_id = tep_db_prepare_input($HTTP_POST_VARS['attribute_id']);

	tep_db_query("update " . TABLE_PRODUCTS_ATTRIBUTES . " set products_id = '" . (int)$products_id . "', options_id = '" . (int)$options_id . "', options_values_id = '" . (int)$values_id . "', options_values_price = '" . tep_db_input($value_price) . "', price_prefix = '" . tep_db_input($price_prefix) . "' where products_attributes_id = '" . (int)$attribute_id . "'");

	if (DOWNLOAD_ENABLED == 'true') {
	  $products_attributes_filename = tep_db_prepare_input($HTTP_POST_VARS['products_attributes_filename']);
	  $products_attributes_maxdays = tep_db_prepare_input($HTTP_POST_VARS['products_attributes_maxdays']);
	  $products_attributes_maxcount = tep_db_prepare_input($HTTP_POST_VARS['products_attributes_maxcount']);

	  if (tep_not_null($products_attributes_filename)) {
		tep_db_query("replace into " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " set products_attributes_id = '" . (int)$attribute_id . "', products_attributes_filename = '" . tep_db_input($products_attributes_filename) . "', products_attributes_maxdays = '" . tep_db_input($products_attributes_maxdays) . "', products_attributes_maxcount = '" . tep_db_input($products_attributes_maxcount) . "'");
	  }
	}

	tep_redirect(tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, $page_info));
	break;
  case 'delete_option':
	$option_id = tep_db_prepare_input($HTTP_GET_VARS['option_id']);

	tep_db_query("delete from " . TABLE_PRODUCTS_OPTIONS . " where products_options_id = '" . (int)$option_id . "'");

	tep_redirect(tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, $page_info));
	break;
  case 'delete_value':
	$value_id = tep_db_prepare_input($HTTP_GET_VARS['value_id']);

	tep_db_query("delete from " . TABLE_PRODUCTS_OPTIONS_VALUES . " where products_options_values_id = '" . (int)$value_id . "'");
	tep_db_query("delete from " . TABLE_PRODUCTS_OPTIONS_VALUES . " where products_options_values_id = '" . (int)$value_id . "'");
	tep_db_query("delete from " . TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS . " where products_options_values_id = '" . (int)$value_id . "'");

	tep_redirect(tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, $page_info));
	break;
  case 'delete_attribute':
	$attribute_id = tep_db_prepare_input($HTTP_GET_VARS['attribute_id']);

	tep_db_query("delete from " . TABLE_PRODUCTS_ATTRIBUTES . " where products_attributes_id = '" . (int)$attribute_id . "'");

// added for DOWNLOAD_ENABLED. Always try to remove attributes, even if downloads are no longer enabled
	tep_db_query("delete from " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " where products_attributes_id = '" . (int)$attribute_id . "'");

	tep_redirect(tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, $page_info));
	break;
}
 }
//CLR 030312 add function to draw pulldown list of option types
// Draw a pulldown for Option Types
function draw_optiontype_pulldown($name, $default = '') {

 $values = array();
 $values[] = array('id' => 0, 'text' => 'Select');
 $values[] = array('id' => 1, 'text' => 'Text');
 $values[] = array('id' => 2, 'text' => 'Radio');
 $values[] = array('id' => 3, 'text' => 'Checkbox');
 $values[] = array('id' => 4, 'text' => 'Textarea');
 return tep_draw_pull_down_menu($name, $values, $default);
}

//CLR 030312 add function to translate type_id to name
// Translate option_type_values to english string

function translate_type_to_name($opt_type) {
 if ($opt_type == 0) return 'Select';
 if ($opt_type == 1) return 'Text';
 if ($opt_type == 2) return 'Radio';
 if ($opt_type == 3) return 'Checkbox';
 if ($opt_type == 4) return 'Textarea';
 return 'Error ' . $opt_type;
}

?>
<!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"><!--
function go_option() {
 if (document.option_order_by.selected.options[document.option_order_by.selected.selectedIndex].value != "none") {
location = "<?php echo tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, 'option_page=' . ($HTTP_GET_VARS['option_page'] ? $HTTP_GET_VARS['option_page'] : 1)); ?>&option_order_by="+document.option_order_by.selected.options[document.option_order_by.selected.selectedIndex].value;
 }
}
//--></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="0">
<!-- options and values//-->
  <tr>
	<td width="100%"><table width="100%" border="0" cellspacing="0" cellpadding="0">
	  <tr>
		<td valign="top" width="50%"><table width="100%" border="0" cellspacing="0" cellpadding="2">
<!-- options //-->
<?php
 if ($action == 'delete_product_option') { // delete product option
$options = tep_db_query("select products_options_id, products_options_name from " . TABLE_PRODUCTS_OPTIONS . " where products_options_id = '" . (int)$HTTP_GET_VARS['option_id'] . "' and language_id = '" . (int)$languages_id . "'");
$options_values = tep_db_fetch_array($options);
?>
		  <tr>
			<td class="pageHeading"> <?php echo $options_values['products_options_name']; ?> </td>
			<td> <?php echo tep_image(DIR_WS_IMAGES . 'pixel_trans.gif', '', '1', '53'); ?> </td>
		  </tr>
		  <tr>
			<td><table border="0" width="100%" cellspacing="0" cellpadding="2">
			  <tr>
				<td colspan="6"><?php echo tep_black_line(); ?></td>

		  </tr>

		  <tr class="dataTableHeadingRow">

			<td class="dataTableHeadingContent"> <?php echo TABLE_HEADING_ID; ?> </td>

			<td class="dataTableHeadingContent"> <?php echo TABLE_HEADING_OPT_NAME; ?> </td>

			<td class="dataTableHeadingContent"> <?php echo TABLE_HEADING_OPT_TYPE; ?> </td>	<!-- CLR 030212 - Add column for option type //-->

			<td class="dataTableHeadingContent"> <?php echo TABLE_HEADING_OPT_LENGTH; ?> </td>	<!-- CLR 030212 - Add column for option length //-->

			<td class="dataTableHeadingContent"> <?php echo TABLE_HEADING_OPT_COMMENT; ?> </td>	<!-- CLR 030212 - Add column for option comment //-->

			<td class="dataTableHeadingContent" align="center"> <?php echo TABLE_HEADING_ACTION; ?> </td>

		  </tr>

		  <tr>

			<td colspan="6"><?php echo tep_black_line(); ?></td>

		  </tr>
<?php
  $rows = 0;
  while ($products_values = tep_db_fetch_array($products)) {
	$rows++;
?>
			  <tr class="<?php echo (floor($rows/2) == ($rows/2) ? 'attributes-even' : 'attributes-odd'); ?>">
				<td align="center" class="smallText"> <?php echo $products_values['products_id']; ?> </td>
				<td class="smallText"> <?php echo $products_values['products_name']; ?> </td>
				<td class="smallText"> <?php echo $products_values['products_options_values_name']; ?> </td>
			  </tr>
<?php
  }
?>
			  <tr>
				<td colspan="3"><?php echo tep_black_line(); ?></td>
			  </tr>
			  <tr>
				<td colspan="3" class="main"><br><?php echo TEXT_WARNING_OF_DELETE; ?></td>
			  </tr>
			  <tr>
				<td align="right" colspan="3" class="main"><br><?php echo '<a href="' . tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, (isset($HTTP_GET_VARS['value_page']) ? 'value_page=' . $HTTP_GET_VARS['value_page'] . '&' : '') . (isset($HTTP_GET_VARS['attribute_page']) ? 'attribute_page=' . $HTTP_GET_VARS['attribute_page'] : ''), 'NONSSL') . '">'; ?><?php echo tep_image_button('button_cancel.gif', ' cancel '); ?></a> </td>
			  </tr>
<?php
} else {
?>
			  <tr>
				<td class="main" colspan="3"><br><?php echo TEXT_OK_TO_DELETE; ?></td>
			  </tr>
			  <tr>
				<td class="main" align="right" colspan="3"><br><?php echo '<a href="' . tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, 'action=delete_option&option_id=' . $HTTP_GET_VARS['option_id'], 'NONSSL') . '">'; ?><?php echo tep_image_button('button_delete.gif', ' delete '); ?></a>   <?php echo '<a href="' . tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, (isset($HTTP_GET_VARS['order_by']) ? 'order_by=' . $HTTP_GET_VARS['order_by'] . '&' : '') . (isset($HTTP_GET_VARS['page']) ? 'page=' . $HTTP_GET_VARS['page'] : ''), 'NONSSL') . '">'; ?><?php echo tep_image_button('button_cancel.gif', ' cancel '); ?></a> </td>
			  </tr>
<?php
}
?>
			</table></td>
		  </tr>
<?php
 } else {
if (isset($HTTP_GET_VARS['option_order_by'])) {
  $option_order_by = $HTTP_GET_VARS['option_order_by'];
} else {
  $option_order_by = 'products_options_id';
}
?>
		  <tr>
			<td colspan="2" class="pageHeading"> <?php echo HEADING_TITLE_OPT; ?> </td>
			<td align="right"><br><form name="option_order_by" action="<?php echo FILENAME_PRODUCTS_ATTRIBUTES; ?>"><select name="selected" onChange="go_option()"><option value="products_options_id"<?php if ($option_order_by == 'products_options_id') { echo ' SELECTED'; } ?>><?php echo TEXT_OPTION_ID; ?></option><option value="products_options_name"<?php if ($option_order_by == 'products_options_name') { echo ' SELECTED'; } ?>><?php echo TEXT_OPTION_NAME; ?></option></select></form></td>
		  </tr>
		  <tr>
			<td colspan="3" class="smallText">
<?php
$per_page = MAX_ROW_LISTS_OPTIONS;
$options = "select * from " . TABLE_PRODUCTS_OPTIONS . " where language_id = '" . (int)$languages_id . "' order by " . $option_order_by;
if (!isset($option_page)) {
  $option_page = 1;
}
$prev_option_page = $option_page - 1;
$next_option_page = $option_page + 1;

$option_query = tep_db_query($options);

$option_page_start = ($per_page * $option_page) - $per_page;
$num_rows = tep_db_num_rows($option_query);

if ($num_rows <= $per_page) {
  $num_pages = 1;
} else if (($num_rows % $per_page) == 0) {
  $num_pages = ($num_rows / $per_page);
} else {
  $num_pages = ($num_rows / $per_page) + 1;
}
$num_pages = (int) $num_pages;

$options = $options . " LIMIT $option_page_start, $per_page";

// Previous
if ($prev_option_page)  {
  echo '<a href="' . tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, 'option_page=' . $prev_option_page) . '"> << </a> | ';
}

for ($i = 1; $i <= $num_pages; $i++) {
  if ($i != $option_page) {
	echo '<a href="' . tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, 'option_page=' . $i) . '">' . $i . '</a> | ';
  } else {
	echo '<b><font color=red>' . $i . '</font></b> | ';
  }
}

// Next
if ($option_page != $num_pages) {
  echo '<a href="' . tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, 'option_page=' . $next_option_page) . '"> >> </a>';
}
?>
			</td>
		  </tr>
		  <tr>
			<td colspan="3"><?php echo tep_black_line(); ?></td>
		  </tr>
		  <tr class="dataTableHeadingRow">
			<td class="dataTableHeadingContent"> <?php echo TABLE_HEADING_ID; ?> </td>
			<td class="dataTableHeadingContent"> <?php echo TABLE_HEADING_OPT_NAME; ?> </td>
			<td class="dataTableHeadingContent" align="center"> <?php echo TABLE_HEADING_ACTION; ?> </td>
		  </tr>
		  <tr>
			<td colspan="3"><?php echo tep_black_line(); ?></td>
		  </tr>
<?php
$next_id = 1;
$rows = 0;
$options = tep_db_query($options);
while ($options_values = tep_db_fetch_array($options)) {
  $rows++;
?>
		  <tr class="<?php echo (floor($rows/2) == ($rows/2) ? 'attributes-even' : 'attributes-odd'); ?>">
<?php
  if (($action == 'update_option') && ($HTTP_GET_VARS['option_id'] == $options_values['products_options_id'])) {
	echo '<form name="option" action="' . tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, 'action=update_option_name', 'NONSSL') . '" method="post">';
	$inputs = '';
	for ($i = 0, $n = sizeof($languages); $i < $n; $i ++) {
	  $option_name = tep_db_query("select products_options_name, products_options_length, products_options_comment from " . TABLE_PRODUCTS_OPTIONS . " where products_options_id = '" . $options_values['products_options_id'] . "' and language_id = '" . $languages[$i]['id'] . "'");

	  $option_name = tep_db_fetch_array($option_name);

		  $inputs .= $languages[$i]['code'] . ': <input type="text" name="option_name[' . $languages[$i]['id'] . ']" size="32" value="' . $option_name['products_options_name'] . '">  ' . TABLE_HEADING_OPT_COMMENT . ' <input type="text" name="option_comment[' . $languages[$i]['id'] . ']" size="32" value="' . $option_name['products_options_comment'] . '"><br>';

	}

//CLR 030212 - Add column for option type

?>

			<td align="center" class="smallText"> <?php echo $options_values['products_options_id']; ?><input type="hidden" name="option_id" value="<?php echo $options_values['products_options_id']; ?>"> </td>

			<td class="smallText" colspan="3"><?php echo $inputs; ?></td>

			<td class="smallText"><?php echo TABLE_HEADING_OPT_LENGTH . ' <input type="text" name="option_length" size="4" value="' . $option_name['products_options_length'] . '">'; ?></td>	<!-- CLR 030212 - Add column for option length //-->

			<td class="smallText"><?php echo draw_optiontype_pulldown('option_type', $options_values['products_options_type']); ?></td>	<!-- CLR 030212 - Add column for option type //-->

			<td align="center" class="smallText"> <?php echo tep_image_submit('button_update.gif', IMAGE_UPDATE); ?> <?php echo '<a href="' . tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, '', 'NONSSL') . '">'; ?><?php echo tep_image_button('button_cancel.gif', IMAGE_CANCEL); ?></a> </td>

<?php

	echo '</form>' . "\n";

  } else {
?>
			<td align="center" class="smallText"> <?php echo $options_values["products_options_id"]; ?> </td>
			<td class="smallText"> <?php echo $options_values["products_options_name"]; ?> </td>
			<td class="smallText"> <?php echo translate_type_to_name($options_values["products_options_type"]); ?> </td> <!-- CLR 030212 - Add column for option type //-->
			<td class="smallText"> <?php echo $options_values["products_options_length"]; ?> </td>	<!-- CLR 030212 - Add column for option length //-->
			<td class="smallText"> <?php echo $options_values["products_options_comment"]; ?> </td>	<!-- CLR 030212 - Add column for option comment //-->

			<td align="center" class="smallText"> <?php echo '<a href="' . tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, 'action=update_option&option_id=' . $options_values['products_options_id'] . '&option_order_by=' . $option_order_by . '&option_page=' . $option_page, 'NONSSL') . '">'; ?><?php echo tep_image_button('button_edit.gif', IMAGE_UPDATE); ?></a>  <?php echo '<a href="' . tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, 'action=delete_product_option&option_id=' . $options_values['products_options_id'], 'NONSSL') , '">'; ?><?php echo tep_image_button('button_delete.gif', IMAGE_DELETE); ?></a> </td>
<?php
  }
?>
		  </tr>
<?php
  $max_options_id_query = tep_db_query("select max(products_options_id) + 1 as next_id from " . TABLE_PRODUCTS_OPTIONS);
  $max_options_id_values = tep_db_fetch_array($max_options_id_query);
  $next_id = $max_options_id_values['next_id'];
}
?>
		  <tr>
			<td colspan="6"><?php echo tep_black_line(); ?></td>
		  </tr>
<?php
if ($action != 'update_option') {
?>
		  <tr class="<?php echo (floor($rows/2) == ($rows/2) ? 'attributes-even' : 'attributes-odd'); ?>">
<?php
  echo '<form name="options" action="' . tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, 'action=add_product_options&option_page=' . $option_page, 'NONSSL') . '" method="post"><input type="hidden" name="products_options_id" value="' . $next_id . '">';
  $inputs = '';
  for ($i = 0, $n = sizeof($languages); $i < $n; $i ++) {
	$inputs .= $languages[$i]['code'] . ': <input type="text" name="option_name[' . $languages[$i]['id'] . ']" size="32">' . TABLE_HEADING_OPT_COMMENT . ' <input type="text" name="option_comment[' . $languages[$i]['id'] . ']" size="32"><br>';
  }
?>
			<td align="center" class="smallText"> <?php echo $next_id; ?> </td>
			<td class="smallText" colspan="2"><?php echo $inputs; ?></td>
			<td class="smallText"><?php echo TABLE_HEADING_OPT_LENGTH . ' <input type="text" name="option_length" size="4" value="' . $option_name['products_options_length'] . '">'; ?></td>	<!-- CLR 030212 - Add column for option length //-->
			<td class="smallText"><?php echo draw_optiontype_pulldown('option_type'); ?></td>	<!-- CLR 030212 - Add column for option type //-->
			<td align="center" class="smallText"> <?php echo tep_image_submit('button_insert.gif', IMAGE_INSERT); ?> </td>
<?php
  echo '</form>';
?>
		  </tr>
		  <tr>
			<td colspan="6"><?php echo tep_black_line(); ?></td>
		  </tr>
<?php
}
 }
?>
		</table></td>
<!-- options eof //-->
		<td valign="top" width="50%"><table width="100%" border="0" cellspacing="0" cellpadding="2">
<!-- value //-->
<?php
 if ($action == 'delete_option_value') { // delete product option value
$values = tep_db_query("select products_options_values_id, products_options_values_name from " . TABLE_PRODUCTS_OPTIONS_VALUES . " where products_options_values_id = '" . (int)$HTTP_GET_VARS['value_id'] . "' and language_id = '" . (int)$languages_id . "'");
$values_values = tep_db_fetch_array($values);
?>
		  <tr>
			<td colspan="3" class="pageHeading"> <?php echo $values_values['products_options_values_name']; ?> </td>
			<td> <?php echo tep_image(DIR_WS_IMAGES . 'pixel_trans.gif', '', '1', '53'); ?> </td>
		  </tr>
		  <tr>
			<td><table border="0" width="100%" cellspacing="0" cellpadding="2">
			  <tr>
				<td colspan="3"><?php echo tep_black_line(); ?></td>
			  </tr>
<?php
$products = tep_db_query("select p.products_id, pd.products_name, po.products_options_name from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_OPTIONS . " po, " . TABLE_PRODUCTS_DESCRIPTION . " pd where pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "' and po.language_id = '" . (int)$languages_id . "' and pa.products_id = p.products_id and pa.options_values_id='" . (int)$HTTP_GET_VARS['value_id'] . "' and po.products_options_id = pa.options_id order by pd.products_name");
if (tep_db_num_rows($products)) {
?>
			  <tr class="dataTableHeadingRow">
				<td class="dataTableHeadingContent" align="center"> <?php echo TABLE_HEADING_ID; ?> </td>
				<td class="dataTableHeadingContent"> <?php echo TABLE_HEADING_PRODUCT; ?> </td>
				<td class="dataTableHeadingContent"> <?php echo TABLE_HEADING_OPT_NAME; ?> </td>
			  </tr>
			  <tr>
				<td colspan="3"><?php echo tep_black_line(); ?></td>
			  </tr>
<?php
  while ($products_values = tep_db_fetch_array($products)) {
	$rows++;
?>
			  <tr class="<?php echo (floor($rows/2) == ($rows/2) ? 'attributes-even' : 'attributes-odd'); ?>">
				<td align="center" class="smallText"> <?php echo $products_values['products_id']; ?> </td>
				<td class="smallText"> <?php echo $products_values['products_name']; ?> </td>
				<td class="smallText"> <?php echo $products_values['products_options_name']; ?> </td>
			  </tr>
<?php
  }
?>
			  <tr>
				<td colspan="3"><?php echo tep_black_line(); ?></td>
			  </tr>
			  <tr>
				<td class="main" colspan="3"><br><?php echo TEXT_WARNING_OF_DELETE; ?></td>
			  </tr>
			  <tr>
				<td class="main" align="right" colspan="3"><br><?php echo '<a href="' . tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, (isset($HTTP_GET_VARS['value_page']) ? 'value_page=' . $HTTP_GET_VARS['value_page'] . '&' : '') . (isset($HTTP_GET_VARS['attribute_page']) ? 'attribute_page=' . $attribute_page : ''), 'NONSSL') . '">'; ?><?php echo tep_image_button('button_cancel.gif', ' cancel '); ?></a> </td>
			  </tr>
<?php
} else {
?>
			  <tr>
				<td class="main" colspan="3"><br><?php echo TEXT_OK_TO_DELETE; ?></td>
			  </tr>
			  <tr>
				<td class="main" align="right" colspan="3"><br><?php echo '<a href="' . tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, 'action=delete_value&value_id=' . $HTTP_GET_VARS['value_id'], 'NONSSL') . '">'; ?><?php echo tep_image_button('button_delete.gif', ' delete '); ?></a>   <?php echo '<a href="' . tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, '&option_page=' . $option_page . (isset($HTTP_GET_VARS['value_page']) ? '&value_page=' . $value_page : '') . (isset($HTTP_GET_VARS['attribute_page']) ? '&attribute_page=' . $attribute_page : ''), 'NONSSL') . '">'; ?><?php echo tep_image_button('button_cancel.gif', ' cancel '); ?></a> </td>
			  </tr>
<?php
}
?>
			  </table></td>
		  </tr>
<?php
 } else {
?>
		  <tr>
			<td colspan="3" class="pageHeading"> <?php echo HEADING_TITLE_VAL; ?> </td>
			<td> <?php echo tep_image(DIR_WS_IMAGES . 'pixel_trans.gif', '', '1', '53'); ?> </td>
		  </tr>
		  <tr>
			<td colspan="4" class="smallText">
<?php
$per_page = MAX_ROW_LISTS_OPTIONS;
$values = "select pov.products_options_values_id, pov.products_options_values_name, pov2po.products_options_id from " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov left join " . TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS . " pov2po on pov.products_options_values_id = pov2po.products_options_values_id where pov.language_id = '" . (int)$languages_id . "' order by pov.products_options_values_id";
if (!isset($value_page)) {
  $value_page = 1;
}
$prev_value_page = $value_page - 1;
$next_value_page = $value_page + 1;

$value_query = tep_db_query($values);

$value_page_start = ($per_page * $value_page) - $per_page;
$num_rows = tep_db_num_rows($value_query);

if ($num_rows <= $per_page) {
  $num_pages = 1;
} else if (($num_rows % $per_page) == 0) {
  $num_pages = ($num_rows / $per_page);
} else {
  $num_pages = ($num_rows / $per_page) + 1;
}
$num_pages = (int) $num_pages;

$values = $values . " LIMIT $value_page_start, $per_page";

// Previous
if ($prev_value_page)  {
  echo '<a href="' . tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, 'option_order_by=' . $option_order_by . '&value_page=' . $prev_value_page) . '"> << </a> | ';
}

for ($i = 1; $i <= $num_pages; $i++) {
  if ($i != $value_page) {
	 echo '<a href="' . tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, (isset($option_order_by) ? 'option_order_by=' . $option_order_by . '&' : '') . 'value_page=' . $i) . '">' . $i . '</a> | ';
  } else {
	 echo '<b><font color=red>' . $i . '</font></b> | ';
  }
}

// Next
if ($value_page != $num_pages) {
  echo '<a href="' . tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, (isset($option_order_by) ? 'option_order_by=' . $option_order_by . '&' : '') . 'value_page=' . $next_value_page) . '"> >></a> ';
}
?>
			</td>
		  </tr>
		  <tr>
			<td colspan="4"><?php echo tep_black_line(); ?></td>
		  </tr>
		  <tr class="dataTableHeadingRow">
			<td class="dataTableHeadingContent"> <?php echo TABLE_HEADING_ID; ?> </td>
			<td class="dataTableHeadingContent"> <?php echo TABLE_HEADING_OPT_NAME; ?> </td>
			<td class="dataTableHeadingContent"> <?php echo TABLE_HEADING_OPT_VALUE; ?> </td>
			<td class="dataTableHeadingContent" align="center"> <?php echo TABLE_HEADING_ACTION; ?> </td>
		  </tr>
		  <tr>
			<td colspan="4"><?php echo tep_black_line(); ?></td>
		  </tr>
<?php
$next_id = 1;
$rows = 0;
$values = tep_db_query($values);
while ($values_values = tep_db_fetch_array($values)) {
  $options_name = tep_options_name($values_values['products_options_id']);
  $values_name = $values_values['products_options_values_name'];
  $rows++;
?>
		  <tr class="<?php echo (floor($rows/2) == ($rows/2) ? 'attributes-even' : 'attributes-odd'); ?>">
<?php
  if (($action == 'update_option_value') && ($HTTP_GET_VARS['value_id'] == $values_values['products_options_values_id'])) {
	echo '<form name="values" action="' . tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, 'action=update_value', 'NONSSL') . '" method="post">';
	$inputs = '';
	for ($i = 0, $n = sizeof($languages); $i < $n; $i ++) {
	  $value_name = tep_db_query("select products_options_values_name from " . TABLE_PRODUCTS_OPTIONS_VALUES . " where products_options_values_id = '" . (int)$values_values['products_options_values_id'] . "' and language_id = '" . (int)$languages[$i]['id'] . "'");
	  $value_name = tep_db_fetch_array($value_name);
	  $inputs .= $languages[$i]['code'] . ': <input type="text" name="value_name[' . $languages[$i]['id'] . ']" size="15" value="' . $value_name['products_options_values_name'] . '"> <br>';
	}
?>
			<td align="center" class="smallText"> <?php echo $values_values['products_options_values_id']; ?><input type="hidden" name="value_id" value="<?php echo $values_values['products_options_values_id']; ?>"> </td>
			<td align="center" class="smallText"> <?php echo "\n"; ?><select name="option_id">
<?php
	$options = tep_db_query("select products_options_id, products_options_name from " . TABLE_PRODUCTS_OPTIONS . " where language_id = '" . (int)$languages_id . "' order by products_options_name");
	while ($options_values = tep_db_fetch_array($options)) {
	  echo "\n" . '<option name="' . $options_values['products_options_name'] . '" value="' . $options_values['products_options_id'] . '"';
	  if ($values_values['products_options_id'] == $options_values['products_options_id']) { 
		echo ' selected';
	  }
	  echo '>' . $options_values['products_options_name'] . '</option>';
	} 
?>
			</select> </td>
			<td class="smallText"><?php echo $inputs; ?></td>
			<td align="center" class="smallText"> <?php echo tep_image_submit('button_update.gif', IMAGE_UPDATE); ?> <?php echo '<a href="' . tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, '', 'NONSSL') . '">'; ?><?php echo tep_image_button('button_cancel.gif', IMAGE_CANCEL); ?></a> </td>
<?php
	echo '</form>';
  } else {
?>
			<td align="center" class="smallText"> <?php echo $values_values["products_options_values_id"]; ?> </td>
			<td align="center" class="smallText"> <?php echo $options_name; ?> </td>
			<td class="smallText"> <?php echo $values_name; ?> </td>
			<td align="center" class="smallText"> <?php echo '<a href="' . tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, 'action=update_option_value&value_id=' . $values_values['products_options_values_id'] . (isset($HTTP_GET_VARS['value_page']) ? '&value_page=' . $HTTP_GET_VARS['value_page'] : ''), 'NONSSL') . '">'; ?><?php echo tep_image_button('button_edit.gif', IMAGE_UPDATE); ?></a>  <?php echo '<a href="' . tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, 'action=delete_option_value&value_id=' . $values_values['products_options_values_id'], 'NONSSL') , '">'; ?><?php echo tep_image_button('button_delete.gif', IMAGE_DELETE); ?></a> </td>
<?php
  }
  $max_values_id_query = tep_db_query("select max(products_options_values_id) + 1 as next_id from " . TABLE_PRODUCTS_OPTIONS_VALUES);
  $max_values_id_values = tep_db_fetch_array($max_values_id_query);
  $next_id = $max_values_id_values['next_id'];
}
?>
		  </tr>
		  <tr>
			<td colspan="4"><?php echo tep_black_line(); ?></td>
		  </tr>
<?php
if ($action != 'update_option_value') {
?>
		  <tr class="<?php echo (floor($rows/2) == ($rows/2) ? 'attributes-even' : 'attributes-odd'); ?>">
<?php
  echo '<form name="values" action="' . tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, 'action=add_product_option_values&value_page=' . $value_page, 'NONSSL') . '" method="post">';
?>
			<td align="center" class="smallText"> <?php echo $next_id; ?> </td>
			<td align="center" class="smallText"> <select name="option_id">
<?php
  $options = tep_db_query("select products_options_id, products_options_name from " . TABLE_PRODUCTS_OPTIONS . " where language_id = '" . $languages_id . "' order by products_options_name");
  while ($options_values = tep_db_fetch_array($options)) {
	echo '<option name="' . $options_values['products_options_name'] . '" value="' . $options_values['products_options_id'] . '">' . $options_values['products_options_name'] . '</option>';
  }

  $inputs = '';
  for ($i = 0, $n = sizeof($languages); $i < $n; $i ++) {
	$inputs .= $languages[$i]['code'] . ': <input type="text" name="value_name[' . $languages[$i]['id'] . ']" size="15"> <br>';
  }
?>
			</select> </td>
			<td class="smallText"><input type="hidden" name="value_id" value="<?php echo $next_id; ?>"><?php echo $inputs; ?></td>
			<td align="center" class="smallText"> <?php echo tep_image_submit('button_insert.gif', IMAGE_INSERT); ?> </td>
<?php
  echo '</form>';
?>
		  </tr>
		  <tr>
			<td colspan="4"><?php echo tep_black_line(); ?></td>
		  </tr>
<?php
}
 }
?>
		</table></td>
	  </tr>
	</table></td>
<!-- option value eof //-->
  </tr> 
<!-- products_attributes //-->  
  <tr>
	<td width="100%"><table border="0" width="100%" cellspacing="0" cellpadding="0">
	  <tr>
		<td class="pageHeading"> <?php echo HEADING_TITLE_ATRIB; ?> </td>
		<td> <?php echo tep_image(DIR_WS_IMAGES . 'pixel_trans.gif', '', '1', '53'); ?> </td>
	  </tr>
	</table></td>
  </tr>
  <tr>
<?php
 if ($action == 'update_attribute') {
$form_action = 'update_product_attribute';
 } else {
$form_action = 'add_product_attributes';
 }

 if (!isset($attribute_page)) {
$attribute_page = 1;
 }
 $prev_attribute_page = $attribute_page - 1;
 $next_attribute_page = $attribute_page + 1;
?>
	<td><form name="attributes" action="<?php echo tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, 'action=' . $form_action . '&option_page=' . $option_page . '&value_page=' . $value_page . '&attribute_page=' . $attribute_page); ?>" method="post"><table border="0" width="100%" cellspacing="0" cellpadding="2">
	  <tr>
		<td colspan="7" class="smallText">
<?php
 $per_page = MAX_ROW_LISTS_OPTIONS;
 $attributes = "select pa.* from " . TABLE_PRODUCTS_ATTRIBUTES . " pa left join " . TABLE_PRODUCTS_DESCRIPTION . " pd on pa.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "' order by pd.products_name";
 $attribute_query = tep_db_query($attributes);

 $attribute_page_start = ($per_page * $attribute_page) - $per_page;
 $num_rows = tep_db_num_rows($attribute_query);

 if ($num_rows <= $per_page) {
 $num_pages = 1;
 } else if (($num_rows % $per_page) == 0) {
 $num_pages = ($num_rows / $per_page);
 } else {
 $num_pages = ($num_rows / $per_page) + 1;
 }
 $num_pages = (int) $num_pages;

 $attributes = $attributes . " LIMIT $attribute_page_start, $per_page";

 // Previous
 if ($prev_attribute_page) {
echo '<a href="' . tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, 'attribute_page=' . $prev_attribute_page) . '"> << </a> | ';
 }

 for ($i = 1; $i <= $num_pages; $i++) {
if ($i != $attribute_page) {
  echo '<a href="' . tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, 'attribute_page=' . $i) . '">' . $i . '</a> | ';
} else {
  echo '<b><font color="red">' . $i . '</font></b> | ';
}
 }

 // Next
 if ($attribute_page != $num_pages) {
echo '<a href="' . tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, 'attribute_page=' . $next_attribute_page) . '"> >> </a>';
 }
?>
		</td>
	  </tr>
	  <tr>
		<td colspan="7"><?php echo tep_black_line(); ?></td>
	  </tr>
	  <tr class="dataTableHeadingRow">
		<td class="dataTableHeadingContent"> <?php echo TABLE_HEADING_ID; ?> </td>
		<td class="dataTableHeadingContent"> <?php echo TABLE_HEADING_PRODUCT; ?> </td>
		<td class="dataTableHeadingContent"> <?php echo TABLE_HEADING_OPT_NAME; ?> </td>
		<td class="dataTableHeadingContent"> <?php echo TABLE_HEADING_OPT_VALUE; ?> </td>
		<td class="dataTableHeadingContent" align="right"> <?php echo TABLE_HEADING_OPT_PRICE; ?> </td>
		<td class="dataTableHeadingContent" align="center"> <?php echo TABLE_HEADING_OPT_PRICE_PREFIX; ?> </td>
		<td class="dataTableHeadingContent" align="center"> <?php echo TABLE_HEADING_ACTION; ?> </td>
	  </tr>
	  <tr>
		<td colspan="7"><?php echo tep_black_line(); ?></td>
	  </tr>
<?php
 $next_id = 1;
 $attributes = tep_db_query($attributes);
 while ($attributes_values = tep_db_fetch_array($attributes)) {
$products_name_only = tep_get_products_name($attributes_values['products_id']);
$options_name = tep_options_name($attributes_values['options_id']);
$values_name = tep_values_name($attributes_values['options_values_id']);
$rows++;
?>
	  <tr class="<?php echo (floor($rows/2) == ($rows/2) ? 'attributes-even' : 'attributes-odd'); ?>">
<?php
if (($action == 'update_attribute') && ($HTTP_GET_VARS['attribute_id'] == $attributes_values['products_attributes_id'])) {
?>
		<td class="smallText"> <?php echo $attributes_values['products_attributes_id']; ?><input type="hidden" name="attribute_id" value="<?php echo $attributes_values['products_attributes_id']; ?>"> </td>
		<td class="smallText"> <select name="products_id">
<?php
  $products = tep_db_query("select p.products_id, pd.products_name from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where pd.products_id = p.products_id and pd.language_id = '" . $languages_id . "' order by pd.products_name");
  while($products_values = tep_db_fetch_array($products)) {
	if ($attributes_values['products_id'] == $products_values['products_id']) {
	  echo "\n" . '<option name="' . $products_values['products_name'] . '" value="' . $products_values['products_id'] . '" SELECTED>' . $products_values['products_name'] . '</option>';
	} else {
	  echo "\n" . '<option name="' . $products_values['products_name'] . '" value="' . $products_values['products_id'] . '">' . $products_values['products_name'] . '</option>';
	}
  } 
?>
		</select> </td>
		<td class="smallText"> <select name="options_id">
<?php
  $options = tep_db_query("select * from " . TABLE_PRODUCTS_OPTIONS . " where language_id = '" . $languages_id . "' order by products_options_name");
  while($options_values = tep_db_fetch_array($options)) {
	if ($attributes_values['options_id'] == $options_values['products_options_id']) {
	  echo "\n" . '<option name="' . $options_values['products_options_name'] . '" value="' . $options_values['products_options_id'] . '" SELECTED>' . $options_values['products_options_name'] . '</option>';
	} else {
	  echo "\n" . '<option name="' . $options_values['products_options_name'] . '" value="' . $options_values['products_options_id'] . '">' . $options_values['products_options_name'] . '</option>';
	}
  } 
?>
		</select> </td>
		<td class="smallText"> <select name="values_id">
<?php
  $values = tep_db_query("select * from " . TABLE_PRODUCTS_OPTIONS_VALUES . " where language_id ='" . $languages_id . "' order by products_options_values_name");
  while($values_values = tep_db_fetch_array($values)) {
	if ($attributes_values['options_values_id'] == $values_values['products_options_values_id']) {
	  echo "\n" . '<option name="' . $values_values['products_options_values_name'] . '" value="' . $values_values['products_options_values_id'] . '" SELECTED>' . $values_values['products_options_values_name'] . '</option>';
	} else {
	  echo "\n" . '<option name="' . $values_values['products_options_values_name'] . '" value="' . $values_values['products_options_values_id'] . '">' . $values_values['products_options_values_name'] . '</option>';
	}
  } 
?>		
		</select> </td>
		<td align="right" class="smallText"> <input type="text" name="value_price" value="<?php echo $attributes_values['options_values_price']; ?>" size="6"> </td>
		<td align="center" class="smallText"> <input type="text" name="price_prefix" value="<?php echo $attributes_values['price_prefix']; ?>" size="2"> </td>
		<td align="center" class="smallText"> <?php echo tep_image_submit('button_update.gif', IMAGE_UPDATE); ?> <?php echo '<a href="' . tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, '&attribute_page=' . $attribute_page, 'NONSSL') . '">'; ?><?php echo tep_image_button('button_cancel.gif', IMAGE_CANCEL); ?></a> </td>
<?php
  if (DOWNLOAD_ENABLED == 'true') {
	$download_query_raw ="select products_attributes_filename, products_attributes_maxdays, products_attributes_maxcount 
						  from " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " 
						  where products_attributes_id='" . $attributes_values['products_attributes_id'] . "'";
	$download_query = tep_db_query($download_query_raw);
	if (tep_db_num_rows($download_query) > 0) {
	  $download = tep_db_fetch_array($download_query);
	  $products_attributes_filename = $download['products_attributes_filename'];
	  $products_attributes_maxdays  = $download['products_attributes_maxdays'];
	  $products_attributes_maxcount = $download['products_attributes_maxcount'];
	}
?>
	  <tr class="<?php echo (!($rows % 2)? 'attributes-even' : 'attributes-odd');?>">
		<td> </td>
		<td colspan="5">
		  <table>
			<tr class="<?php echo (!($rows % 2)? 'attributes-even' : 'attributes-odd');?>">
			  <td class="dataTableHeadingContent"><?php echo TABLE_HEADING_DOWNLOAD; ?> </td>
			  <td class="smallText"><?php echo TABLE_TEXT_FILENAME; ?></td>
			  <td class="smallText"><?php echo tep_draw_input_field('products_attributes_filename', $products_attributes_filename, 'size="15"'); ?> </td>
			  <td class="smallText"><?php echo TABLE_TEXT_MAX_DAYS; ?></td>
			  <td class="smallText"><?php echo tep_draw_input_field('products_attributes_maxdays', $products_attributes_maxdays, 'size="5"'); ?> </td>
			  <td class="smallText"><?php echo TABLE_TEXT_MAX_COUNT; ?></td>
			  <td class="smallText"><?php echo tep_draw_input_field('products_attributes_maxcount', $products_attributes_maxcount, 'size="5"'); ?> </td>
			</tr>
		  </table>
		</td>
		<td> </td>
	  </tr>
<?php
  }
?>
<?php
} elseif (($action == 'delete_product_attribute') && ($HTTP_GET_VARS['attribute_id'] == $attributes_values['products_attributes_id'])) {
?>
		<td class="smallText"> <b><?php echo $attributes_values["products_attributes_id"]; ?></b> </td>
		<td class="smallText"> <b><?php echo $products_name_only; ?></b> </td>
		<td class="smallText"> <b><?php echo $options_name; ?></b> </td>
		<td class="smallText"> <b><?php echo $values_name; ?></b> </td>
		<td align="right" class="smallText"> <b><?php echo $attributes_values["options_values_price"]; ?></b> </td>
		<td align="center" class="smallText"> <b><?php echo $attributes_values["price_prefix"]; ?></b> </td>
		<td align="center" class="smallText"> <b><?php echo '<a href="' . tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, 'action=delete_attribute&attribute_id=' . $HTTP_GET_VARS['attribute_id']) . '">'; ?><?php echo tep_image_button('button_confirm.gif', IMAGE_CONFIRM); ?></a>  <?php echo '<a href="' . tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, '&option_page=' . $option_page . '&value_page=' . $value_page . '&attribute_page=' . $attribute_page, 'NONSSL') . '">'; ?><?php echo tep_image_button('button_cancel.gif', IMAGE_CANCEL); ?></a> </b></td>
<?php
} else {
?>
		<td class="smallText"> <?php echo $attributes_values["products_attributes_id"]; ?> </td>
		<td class="smallText"> <?php echo $products_name_only; ?> </td>
		<td class="smallText"> <?php echo $options_name; ?> </td>
		<td class="smallText"> <?php echo $values_name; ?> </td>
		<td align="right" class="smallText"> <?php echo $attributes_values["options_values_price"]; ?> </td>
		<td align="center" class="smallText"> <?php echo $attributes_values["price_prefix"]; ?> </td>
		<td align="center" class="smallText"> <?php echo '<a href="' . tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, 'action=update_attribute&attribute_id=' . $attributes_values['products_attributes_id'] . '&attribute_page=' . $attribute_page, 'NONSSL') . '">'; ?><?php echo tep_image_button('button_edit.gif', IMAGE_UPDATE); ?></a>  <?php echo '<a href="' . tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, 'action=delete_product_attribute&attribute_id=' . $attributes_values['products_attributes_id'] . '&attribute_page=' . $attribute_page, 'NONSSL') , '">'; ?><?php echo tep_image_button('button_delete.gif', IMAGE_DELETE); ?></a> </td>
<?php
}
$max_attributes_id_query = tep_db_query("select max(products_attributes_id) + 1 as next_id from " . TABLE_PRODUCTS_ATTRIBUTES);
$max_attributes_id_values = tep_db_fetch_array($max_attributes_id_query);
$next_id = $max_attributes_id_values['next_id'];
?>
	  </tr>
<?php
 }
 if ($action != 'update_attribute') {
?>
	  <tr>
		<td colspan="7"><?php echo tep_black_line(); ?></td>
	  </tr>
	  <tr class="<?php echo (floor($rows/2) == ($rows/2) ? 'attributes-even' : 'attributes-odd'); ?>">
		<td class="smallText"> <?php echo $next_id; ?> </td>
		  <td class="smallText"> <select name="products_id">
<?php
$products = tep_db_query("select p.products_id, pd.products_name from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where pd.products_id = p.products_id and pd.language_id = '" . $languages_id . "' order by pd.products_name");
while ($products_values = tep_db_fetch_array($products)) {
  echo '<option name="' . $products_values['products_name'] . '" value="' . $products_values['products_id'] . '">' . $products_values['products_name'] . '</option>';
} 
?>
		</select> </td>
		<td class="smallText"> <select name="options_id">
<?php
$options = tep_db_query("select * from " . TABLE_PRODUCTS_OPTIONS . " where language_id = '" . $languages_id . "' order by products_options_name");
while ($options_values = tep_db_fetch_array($options)) {
  echo '<option name="' . $options_values['products_options_name'] . '" value="' . $options_values['products_options_id'] . '">' . $options_values['products_options_name'] . '</option>';
} 
?>
		</select> </td>
		<td class="smallText"> <select name="values_id">
<?php
$values = tep_db_query("select * from " . TABLE_PRODUCTS_OPTIONS_VALUES . " where language_id = '" . $languages_id . "' order by products_options_values_name");
while ($values_values = tep_db_fetch_array($values)) {
  echo '<option name="' . $values_values['products_options_values_name'] . '" value="' . $values_values['products_options_values_id'] . '">' . $values_values['products_options_values_name'] . '</option>';
} 
?>
		</select> </td>
		<td align="right" class="smallText"> <input type="text" name="value_price" size="6"> </td>
		<td align="right" class="smallText"> <input type="text" name="price_prefix" size="2" value="+"> </td>
		<td align="center" class="smallText"> <?php echo tep_image_submit('button_insert.gif', IMAGE_INSERT); ?> </td>
	  </tr>
<?php
  if (DOWNLOAD_ENABLED == 'true') {
	$products_attributes_maxdays  = DOWNLOAD_MAX_DAYS;
	$products_attributes_maxcount = DOWNLOAD_MAX_COUNT;
?>
	  <tr class="<?php echo (!($rows % 2)? 'attributes-even' : 'attributes-odd');?>">
		<td> </td>
		<td colspan="5">
		  <table>
			<tr class="<?php echo (!($rows % 2)? 'attributes-even' : 'attributes-odd');?>">
			  <td class="dataTableHeadingContent"><?php echo TABLE_HEADING_DOWNLOAD; ?> </td>
			  <td class="smallText"><?php echo TABLE_TEXT_FILENAME; ?></td>
			  <td class="smallText"><?php echo tep_draw_input_field('products_attributes_filename', $products_attributes_filename, 'size="15"'); ?> </td>
			  <td class="smallText"><?php echo TABLE_TEXT_MAX_DAYS; ?></td>
			  <td class="smallText"><?php echo tep_draw_input_field('products_attributes_maxdays', $products_attributes_maxdays, 'size="5"'); ?> </td>
			  <td class="smallText"><?php echo TABLE_TEXT_MAX_COUNT; ?></td>
			  <td class="smallText"><?php echo tep_draw_input_field('products_attributes_maxcount', $products_attributes_maxcount, 'size="5"'); ?> </td>
			</tr>
		  </table>
		</td>
		<td> </td>
	  </tr>
<?php
  } // end of DOWNLOAD_ENABLED section
?>
<?php
 }
?>
	  <tr>
		<td colspan="7"><?php echo tep_black_line(); ?></td>
	  </tr>
	</table></form></td>
  </tr>
</table></td>
<!-- products_attributes_eof //-->
 </tr>
</table>
<!-- body_text_eof //-->
<!-- footer //-->
<?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
<!-- footer_eof //-->
</body>
</html>
<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>

Share this post


Link to post
Share on other sites
That worked - then it snagged another error on line 308...

 

Grrr..... I'll try posting the whole file... Not sure what the deal is...

 

I obviously have something else going on with this...

On glancing over that I don't see any other contributions added to that page. If so, why don't you use the file from the contribution package (catalog/admin/products_attributes.php)?

Share this post


Link to post
Share on other sites
On glancing over that I don't see any other contributions added to that page. If so, why don't you use the file from the contribution package (catalog/admin/products_attributes.php)?

 

Once again, many thanks!

 

Going to back up the file - then see what happens.

 

Thanks!

Edited by HDLLC

Share this post


Link to post
Share on other sites
Once again, many thanks!

 

Going to back up the file - then see what happens.

 

Thanks!

 

Jan Z - THANKS A TON!

 

For some reason, I thought I had that customized - and did not.

 

All looks good so far!

 

Thank you!

 

--Jeff

Share this post


Link to post
Share on other sites
Jan Z - THANKS A TON!

 

For some reason, I thought I had that customized - and did not.

 

All looks good so far!

 

Thank you!

 

--Jeff

 

Okay - all seems to be operational - but one last question.

 

I ran the sql file and the tables are there now. All is good there.

 

In order to use the text fields as an option value (ie: empty) - I need to set up another table?

Confused on the install instructions for that.

 

Currently, I can set everything up, but when I get to the last step (bottom of attributes) I have to assign a predetermined value to my options.

 

Am I on the right track here?

 

Thanks!

 

--Jeff

Share this post


Link to post
Share on other sites

Question:

 

This is in the instructions:

IMPORTANT: You should create *exactly one* TEXT Option Value.? Once you create this value, you should not change it.

 

Does that mean that I can only have one text field for the customer to enter data?

 

I need several per product...

 

It doesn't say why or what will happen if I use more than one... Or, maybe I am mis-understanding this.

 

Thanks!

 

--Jeff

Share this post


Link to post
Share on other sites

Okay - looks close now... Just about there.

 

Trying to close in on why my text area shows in "product_info.php" as a select list with the value "TEXT" inside it as the only choice.

 

Went back and reworked product_info.php three times now - same result... Text area not showing?

 

Am I looking in the wrong places for this?

 

Installed the sql file for the extra field...

 

Any ideas where to look next?

 

Thanks!

 

--Jeff

Share this post


Link to post
Share on other sites

I'm not sure where I've gone wrong. Under the text area on the product info page, there is a verticle line appearing. When I type in the text box, the text automatically slides to the left and you can't see what was typed. Also, the text that is typed does not appear in the shopping cart. Any suggestions?

Share this post


Link to post
Share on other sites

Could I trouble someone to define this last part? ;) Thanks

 

Install the relevant database files as instructed in the original readme.html

 

(for info, these are the instructions)

 

Add new fields to db

Add the following fields to table products_options

You can either use the enclosed option_type_feature.sql or the following definitions

 

NAME: products_options_type

TYPE: int(5)

NULL: No

DEFAULT: 0

 

NAME: products_options_length

TYPE: smallint(2)

NULL: No

DEFAULT: 32

 

NAME: products_options_comment

TYPE: varchar(32)

NULL: Yes

DEFAULT: NULL

 

 

 

Add the following field to table customer_basket_attributes

 

NAME: products_options_value_text

TYPE: text

NULL: Yes

DEFAULT: Null

Share this post


Link to post
Share on other sites
Could I trouble someone to define this last part? ;) Thanks

 

Install the relevant database files as instructed in the original readme.html

 

(for info, these are the instructions)

 

Add new fields to db

Add the following fields to table products_options

You can either use the enclosed option_type_feature.sql or the following definitions

 

NAME: products_options_type

TYPE: int(5)

NULL: No

DEFAULT: 0

 

NAME: products_options_length

TYPE: smallint(2)

NULL: No

DEFAULT: 32

 

NAME: products_options_comment

TYPE: varchar(32)

NULL: Yes

DEFAULT: NULL

 

 

 

Add the following field to table customer_basket_attributes

 

NAME: products_options_value_text

TYPE: text

NULL: Yes

DEFAULT: Null

 

 

There are a pair of sql files included with the package that you can import via php myadmin.

They will set up the database for you.

 

Check the install package. There should be two sql files. Import those into your database and you should be set.

 

**Don't forget to back things up first**

 

Just in case... Ya know, things can go wrong sometimes.

 

Now, the last part where I have to change something inside php myadmin to get the text area to show as text, instead of a select menu - now that part - I am still waiting for help on.

 

Hope that helps!

 

--Jeff

Edited by HDLLC

Share this post


Link to post
Share on other sites
There are a pair of sql files included with the package that you can import via php myadmin.

They will set up the database for you.

 

Check the install package. There should be two sql files. Import those into your database and you should be set.

 

**Don't forget to back things up first**

 

Just in case... Ya know, things can go wrong sometimes.

 

Now, the last part where I have to change something inside php myadmin to get the text area to show as text, instead of a select menu - now that part - I am still waiting for help on.

 

Hope that helps!

 

--Jeff

 

 

Thanks Jeff!!

Mike

Share this post


Link to post
Share on other sites
Thanks Jeff!!

Mike

 

You are very welcome.

 

And, my problem corrected itself upon importing the second sql file a couple of times... ID reset so all is good.

 

Anyone have a good version of the PayPal IPN files that have the fix to carry over the TEXT options? I found the three step fix, but cannot get the third one in.

I cannot even locate the third line to replace. I even downloaded the last two versions of OSC paypal IPN...

 

Thanks!

 

--Jeff

Share this post


Link to post
Share on other sites
I just posted Version 1.6 of the Product Attributes - Option Type Feature. You can find it at.

http://www.oscommerce.com/community/contributions,160

The purpose of this contribution is to allow the use of various option types when setting up product attributes. Originally the contribution included support for Text options. It now also includes support for Radio Buttons and Checkboxes.

This page includes a link to a demo store using the contribution http://www.OpenStoreSolutions.com/option_t...ontribution.php

Version 1.6 of the contribution is built for osc 2.2 Milestone 2.

Cheers,

-Chandra

http://www.OpenStoreSolutions.com

 

Hi I am trying to install this feature but getting error

 

Parse error: parse error in /var/virtual/web/w0232/html/store/includes/classes/shopping_cart.php on line 173

 

Fatal error: Cannot instantiate non-existent class: shoppingcart in /var/virtual/web/w0232/html/store/includes/application_top.php on line 253

 

this is my error . i have installed it twice and keep getting same error. the code i am inserting is this. I hope someone can help.

 

 

 

 

CODE

//CLR 020606 update db insert to include attribute value_text. This is needed for text attributes.//CLR 030228 add tep_db_input() processing if (tep_session_is_registered('customer_id')) tep_db_query("update " . TABLE_CUSTOMERS_BASKET_ATTRIBUTES . " set products_options_value_id = '" . (int)$value . "', products_options_value_text = '" . tep_db_input($attr_value) . "' where customers_id = '" . (int)$customer_id . "' and products_id = '" . tep_db_input($products_id) . "' and products_options_id = '" . (int)$option . "'");

Share this post


Link to post
Share on other sites
Hi I am trying to install this feature but getting error

 

Parse error: parse error in /var/virtual/web/w0232/html/store/includes/classes/shopping_cart.php on line 173

Why don't you try the two function for that class that I link to in this post? Keep a backup as usual.

Share this post


Link to post
Share on other sites

hi there

 

ive looked to no avail, does this contrib work with Easy Populate.

 

If it does, which version, if it doesnt is it easy to get it to work or maybe someone has tried it and failed.

 

if anyone can help that would be great

 

Russel

Share this post


Link to post
Share on other sites
It can work, but the code needs to be changed for the update. I had the challenge recently of mixing an update of SPPC with Option Type Feature and boy what a headache.

 

Maybe you can use this (I think I cleaned it from the SPPC code in there, no guarantees). I made an additional change to not let empty attribute values (so input fields that have nothing in them still end up in the products_id) get into the products_id string. Only a small, but crucial change is needed for that in /catalog/includes/functions/general.php. The function tep_get_uprid is changed to allow the add_cart from product_info.php to update the product quantity when any text attributes have been left empty. In this "version" of OTF empty text attributes are *not* appended to the products_id and also do not end up in the database. This is different from the standard Option Type Feature.

Does this mean that a customer will not be able to buy two items of the same type, same attributes but different text area attributes?

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  

×