Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Problem with Product Attributes file???


Recommended Posts

Bear with me...I am new to php and I am also on my 5th reinstall of a fresh oscommerce on my server trying to get it right. I think I am sooo close.

 

The only problem I see that I am having now is that the product option sorter isn't keeping the sort number when I enter it. (hope that makes sense...when I enter a number as to the order I want, it still shows 0 on all of them)

 

The only file that I had to really merge (the others were easy merges with add at the bottom of the files) was the admin/product attributes file so I feel that this must be the problem.

 

I would really appreciate if someone could skim over my code and tell me where I went wrong and please keep in mind that I am very new at this.

 

Thanks,

Linda

 

Here is my product attributes file: :'(

 

<?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 © 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

$products_options_sort_order = $HTTP_POST_VARS['products_options_sort_order'];

tep_db_query("insert into " . TABLE_PRODUCTS_OPTIONS . " (products_options_id, products_options_name, language_id, products_options_sort_order, products_options_type, products_options_length, products_options_comment) values ('" . (int)$products_options_id . "', '" . tep_db_input($option_name) . "', '" . (int)$languages[$i]['id'] . "', '" . $products_options_sort_order . "', '" . $option_type . "', '" . $option_length . "', '" . $option_comment[$languages[$i]['id']] . "')");

}

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

 

// BOF: WebMakers.com Added: Attribute Sorter

// OLD tep_db_query("insert into " . TABLE_PRODUCTS_ATTRIBUTES . " values ('', '" . $HTTP_POST_VARS['products_id'] . "', '" . $HTTP_POST_VARS['options_id'] . "', '" . $HTTP_POST_VARS['values_id'] . "', '" . $HTTP_POST_VARS['value_price'] . "', '" . $HTTP_POST_VARS['price_prefix'] . "', '" . $HTTP_POST_VARS['sort_order'] . "', '" . $HTTP_POST_VARS['product_attributes_one_time'] . "')");

tep_db_query("insert into " . TABLE_PRODUCTS_ATTRIBUTES . " values ('', '" . $HTTP_POST_VARS['products_id'] . "', '" . $HTTP_POST_VARS['options_id'] . "', '" . $HTTP_POST_VARS['values_id'] . "', '" . $HTTP_POST_VARS['value_price'] . "', '" . $HTTP_POST_VARS['price_prefix'] . "', '" . $HTTP_POST_VARS['sort_order'] . "', '" . $HTTP_POST_VARS['product_attributes_one_time'] . "', '" . $HTTP_POST_VARS['products_attributes_weight'] . "', '" . $HTTP_POST_VARS['products_attributes_weight_prefix'] . "', '" . $HTTP_POST_VARS['products_attributes_units'] . "', '" . $HTTP_POST_VARS['products_attributes_units_price'] . "' )");

// EOF: WebMakers.com Added: Attribute Sorter

 

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

$products_options_sort_order = $HTTP_POST_VARS['products_options_sort_order'];

tep_db_query("update " . TABLE_PRODUCTS_OPTIONS . " set products_options_name = '" . tep_db_input($option_name) . "', products_options_sort_order = '" . "', 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']);

 

// BOF: WebMakers.com Added: Attribute Sorter

// OLD tep_db_query("update " . TABLE_PRODUCTS_ATTRIBUTES . " set products_id = '" . $HTTP_POST_VARS['products_id'] . "', options_id = '" . $HTTP_POST_VARS['options_id'] . "', options_values_id = '" . $HTTP_POST_VARS['values_id'] . "', options_values_price = '" . $HTTP_POST_VARS['value_price'] . "', price_prefix = '" . $HTTP_POST_VARS['price_prefix'] . "', products_options_sort_order = '" . $HTTP_POST_VARS['sort_order'] . "', product_attributes_one_time = '" . $HTTP_POST_VARS['product_attributes_one_time'] . "' where products_attributes_id = '" . $HTTP_POST_VARS['attribute_id'] . "'");

tep_db_query("update " . TABLE_PRODUCTS_ATTRIBUTES . " set products_id = '" . $HTTP_POST_VARS['products_id'] . "', options_id = '" . $HTTP_POST_VARS['options_id'] . "', options_values_id = '" . $HTTP_POST_VARS['values_id'] . "', options_values_price = '" . $HTTP_POST_VARS['value_price'] . "', price_prefix = '" . $HTTP_POST_VARS['price_prefix'] . "', products_options_sort_order = '" . $HTTP_POST_VARS['sort_order'] . "', product_attributes_one_time = '" . $HTTP_POST_VARS['product_attributes_one_time'] . "', products_attributes_weight = '" . $HTTP_POST_VARS['products_attributes_weight'] . "', products_attributes_weight_prefix = '" . $HTTP_POST_VARS['products_attributes_weight_prefix'] . "', products_attributes_units = '" . $HTTP_POST_VARS['products_attributes_units'] . "', products_attributes_units_price = '" . $HTTP_POST_VARS['products_attributes_units_price'] . "' where products_attributes_id = '" . $HTTP_POST_VARS['attribute_id'] . "'");

// EOF: WebMakers.com Added: Attribute Sorter

 

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

ectedIndex].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.selecte

d.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="3"><?php echo tep_black_line(); ?></td>

</tr>

<?php

$products = tep_db_query("select p.products_id, pd.products_name, pov.products_options_values_name from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov, " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_DESCRIPTION . " pd where pd.products_id = p.products_id and pov.language_id = '" . (int)$languages_id . "' and pd.language_id = '" . (int)$languages_id . "' and pa.products_id = p.products_id and pa.options_id='" . (int)$HTTP_GET_VARS['option_id'] . "' and pov.products_options_values_id = pa.options_values_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_VALUE; ?> </td>

</tr>

<tr>

<td colspan="3"><?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>';

}

//CLR 030212 - Add column for option type

?>

</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_OPT_NAME; ?> </td>

<td class="dataTableHeadingContent" align="right"> <?php echo TABLE_HEADING_OPTION_SORT_ORDER; ?> </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="7"><?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 ++) {

// WebMakers.com Added: Product Options Sort Order

$option_name = tep_db_query("select products_options_name, products_options_sort_order, 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'] . '">  Sort Order <input type="text" name="products_options_sort_order[' . $languages[$i]['id'] . ']" size="3" value="' . $option_name['products_options_sort_order'] . '">  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 {

//CLR 030212 - Add column for option type

?>

<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" align="right"> <?php echo $options_values["products_options_sort_order"]; ?> </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="7"><?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"> Sort Order <input type="text" name="products_options_sort_order[' . $languages[$i]['id'] . ']" size="3"> ' . TABLE_HEADING_OPT_COMMENT . ' <input type="text" name="option_comment[' . $languages[$i]['id'] . ']" size="32"><br>';

}

//CLR 030212 - Add column for option type

?>

<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="7"><?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" align="right"> <?php echo TABLE_HEADING_OPTION_SORT_ORDER; ?> </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" align="right"> <?php echo $options_values["products_options_sort_order"]; ?> </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="10" class="smallText">

<?php

$per_page = MAX_ROW_LISTS_OPTIONS;

$attributes = "select pa.* from " . TABLE_PRO

Link to comment
Share on other sites

Which contrib are you using?

 

Iggy

 

The one that sorts and copies the attributes by Linda McGrath and the one that adds the option attribute for a customer to add text for personalization.

 

http://www.oscommerce.com/community.php/co...option+text+box

 

and

 

http://www.oscommerce.com/community.php/co...ttribute+copier

 

Thanks :D

 

Linda

Link to comment
Share on other sites

Join the conversation

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

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

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

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

×   Your previous content has been restored.   Clear editor

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

×
×
  • Create New...