No spcecial changes needed. If you find it can not run on your server, just try to revise admin/products_attributes.php as follow:
<?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();
// >>> BEGIN REGISTER_GLOBALS
// These variables are accessed directly rather than through $HTTP_GET_VARS or $_GET later in this script
link_get_variable('option_page');
link_get_variable('value_page');
link_get_variable('attribute_page');
// <<< END REGISTER_GLOBALS
$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'];
for ($i=0, $n=sizeof($languages); $i<$n; $i ++) {
$option_name = tep_db_prepare_input($option_name_array[$languages[$i]['id']]);
tep_db_query("insert into " . TABLE_PRODUCTS_OPTIONS . " (products_options_id, products_options_name, language_id) values ('" . (int)$products_options_id . "', '" . tep_db_input($option_name) . "', '" . (int)$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']);
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) . "')");
}
}
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>
<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'); ?> osCommerce Templates










