[phpBB Debug] PHP Warning: in file [ROOT]/includes/crs/crs_misc_functions.php on line 37: mime_content_type(): Empty filename or path
[phpBB Debug] PHP Warning: in file [ROOT]/includes/crs/crs_misc_functions.php on line 37: mime_content_type(): Empty filename or path
Zen Cart 源代码 options_name_manager.php

Zen Cart 源代码 options_name_manager.php




下载文件

文件名: options_name_manager.php
文件类型: PHP文件
文件大小: 64.29 KiB
MD5: 83c405d394303c3de7564ad95c5a030c

options_name_manager.php - 关闭高亮
  1. <?php
  2. /**
  3.  * @package admin
  4.  * @copyright Copyright 2003-2012 Zen Cart Development Team
  5.  * @copyright Portions Copyright 2003 osCommerce
  6.  * @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
  7.  * @version GIT: $Id: Author: DrByte  Tue Jul 31 11:39:58 2012 -0400 Modified in v1.5.1 $
  8.  */
  9.  
  10.   require('includes/application_top.php');
  11.   $languages = zen_get_languages();
  12.  
  13.   require(DIR_WS_CLASSES . 'currencies.php');
  14.   $currencies = new currencies();
  15.  
  16.   // check for damaged database, caused by users indiscriminately deleting table data
  17.   $ary = array();
  18. //  $chk_option_values = $db->Execute("select * from " . TABLE_PRODUCTS_OPTIONS_VALUES . " where products_options_values_name = 'TEXT' and products_options_values_id=" . (int)PRODUCTS_OPTIONS_VALUES_TEXT_ID);
  19.   $chk_option_values = $db->Execute("select * from " . TABLE_PRODUCTS_OPTIONS_VALUES . " where products_options_values_id=" . (int)PRODUCTS_OPTIONS_VALUES_TEXT_ID);
  20.   while (!$chk_option_values->EOF) {
  21.     $ary[] = $chk_option_values->fields['language_id'];
  22.     $chk_option_values->MoveNext();
  23.   }
  24.   for ($i=0, $n=sizeof($languages); $i<$n; $i ++) {
  25.     if ((int)$languages[$i]['id'] > 0 && !in_array((int)$languages[$i]['id'], $ary)) {
  26. //      $db->Execute("INSERT INTO products_options_values (products_options_values_id, language_id, products_options_values_name) VALUES ((int)PRODUCTS_OPTIONS_VALUES_TEXT_ID, " . (int)$languages[$i]['id'] . ", 'TEXT')");
  27.       $db->Execute("INSERT INTO " . TABLE_PRODUCTS_OPTIONS_VALUES . " (products_options_values_id, language_id, products_options_values_name) VALUES (" . (int)PRODUCTS_OPTIONS_VALUES_TEXT_ID . ", " . (int)$languages[$i]['id'] . ", 'TEXT')");
  28.     }
  29.   }
  30.  
  31.   $action = (isset($_GET['action']) ? $_GET['action'] : '');
  32.  
  33. // display or hide copier features
  34.   if (!isset($_SESSION['option_names_values_copier'])) {
  35.     $_SESSION['option_names_values_copier'] = OPTION_NAMES_VALUES_GLOBAL_STATUS;
  36.   }
  37.   if (!isset($_GET['reset_option_names_values_copier'])) {
  38.     $reset_option_names_values_copier = $_SESSION['option_names_values_copier'];
  39.   }
  40.  
  41. /*
  42.   if (!isset($_GET['option_order_by'])) {
  43.     $_GET['option_order_by'] = 'products_options_id';
  44.   }
  45. */
  46.     if (isset($_GET['option_order_by'])) {
  47.       $option_order_by = $_GET['option_order_by'];
  48.     } else {
  49.       $option_order_by = 'products_options_id';
  50.     }
  51.  
  52.   if (zen_not_null($action)) {
  53.     $_SESSION['page_info'] = '';
  54.     if (isset($_GET['option_page'])) $_SESSION['page_info'] .= 'option_page=' . $_GET['option_page'] . '&';
  55.     if (isset($_GET['value_page'])) $_SESSION['page_info'] .= 'value_page=' . $_GET['value_page'] . '&';
  56.     if (isset($_GET['attribute_page'])) $_SESSION['page_info'] .= 'attribute_page=' . $_GET['attribute_page'] . '&';
  57.     if (zen_not_null($_SESSION['page_info'])) {
  58.       $_SESSION['page_info'] = substr($_SESSION['page_info'], 0, -1);
  59.     }
  60.  
  61.     switch ($action) {
  62.       case 'set_option_names_values_copier':
  63.         $_SESSION['option_names_values_copier'] = $_GET['reset_option_names_values_copier'];
  64.         $action='';
  65.         zen_redirect(zen_href_link(FILENAME_OPTIONS_NAME_MANAGER));
  66.         break;
  67.       case 'add_product_options':
  68.         //clr 030714 update to add option type to products_option.
  69.         $products_options_id = zen_db_prepare_input($_POST['products_options_id']);
  70.         $option_name_array = $_POST['option_name'];
  71.         $products_options_sort_order = $_POST['products_options_sort_order'];
  72.         $option_type = $_POST['option_type'];
  73.         $products_options_images_per_row = $_POST['products_options_images_per_row'];
  74.         $products_options_images_style = $_POST['products_options_images_style'];
  75.         $products_options_rows = $_POST['products_options_rows'];
  76.  
  77.         for ($i=0, $n=sizeof($languages); $i<$n; $i ++) {
  78.           $option_name = zen_db_prepare_input($option_name_array[$languages[$i]['id']]);
  79.  
  80.           $db->Execute("insert into " . TABLE_PRODUCTS_OPTIONS . "
  81.                      (products_options_id, products_options_name, language_id, products_options_sort_order, products_options_type, products_options_images_per_row, products_options_images_style, products_options_rows)
  82.                      values ('" . (int)$products_options_id . "',
  83.                              '" . zen_db_input($option_name) . "',
  84.                              '" . (int)$languages[$i]['id'] . "',
  85.                              '" . (int)$products_options_sort_order[$languages[$i]['id']] . "',
  86.                              '" . (int)zen_db_input($option_type) . "',
  87.                              '" . (int)zen_db_input($products_options_images_per_row) . "',
  88.                              '" . (int)zen_db_input($products_options_images_style) . "',
  89.                              '" . (int)(($products_options_rows <= 1 and $option_type == PRODUCTS_OPTIONS_TYPE_TEXT) ? 1 : zen_db_input($products_options_rows)) . "'
  90.                              )");
  91.         }
  92.  
  93. // iii 030811 added:  For TEXT and FILE option types, automatically add
  94. // PRODUCTS_OPTIONS_VALUE_TEXT to the TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS
  95.         switch ($option_type) {
  96.           case PRODUCTS_OPTIONS_TYPE_TEXT:
  97.           case PRODUCTS_OPTIONS_TYPE_FILE:
  98.             $db->Execute("insert into " . TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS . "
  99.                        (products_options_values_id, products_options_id)
  100.                        values ('" . (int)PRODUCTS_OPTIONS_VALUES_TEXT_ID .  "',
  101.                                '" .  (int)$products_options_id .  "')");
  102.             break;
  103.         }
  104.  
  105. // alert if possible duplicate
  106.         $duplicate_option= '';
  107.         for ($i=0, $n=sizeof($languages); $i<$n; $i ++) {
  108.           $option_name = zen_db_prepare_input($option_name_array[$languages[$i]['id']]);
  109.  
  110.           if (!empty($option_name)) {
  111.             $check= $db->Execute("select count(products_options_name) as count
  112.                                  from " . TABLE_PRODUCTS_OPTIONS . "
  113.                                  where language_id= '" . (int)$languages[$i]['id'] . "'
  114.                                  and products_options_name='" . zen_db_input($option_name) . "'");
  115.             if ($check->fields['count'] > 1) {
  116. // BOM by zen-cart.cn
  117.               $duplicate_option .= ' <b>' . GBcase(zen_get_language_name($languages[$i]['id']),"upper") . '</b> : ' . $option_name;
  118. // EOM by zen-cart.cn
  119.             }
  120.           }
  121.         }
  122.         if (!empty($duplicate_option)) {
  123.           $messageStack->add_session(ATTRIBUTE_POSSIBLE_OPTIONS_NAME_WARNING_DUPLICATE . ' ' . $option_id . ' - ' . $duplicate_option, 'caution');
  124.         }
  125.  
  126.         zen_redirect(zen_href_link(FILENAME_OPTIONS_NAME_MANAGER, $_SESSION['page_info'] . '&option_order_by=' . $option_order_by));
  127.         break;
  128.       case 'update_option_name':
  129.         //clr 030714 update to add option type to products_option.
  130.         $option_name_array = $_POST['option_name'];
  131.         $option_type = (int)$_POST['option_type'];
  132.         $option_id = zen_db_prepare_input($_POST['option_id']);
  133.         $products_options_sort_order_array = $_POST['products_options_sort_order'];
  134.  
  135.         $products_options_length_array = $_POST['products_options_length'];
  136.         $products_options_comment_array = $_POST['products_options_comment'];
  137.         $products_options_size_array = $_POST['products_options_size'];
  138.  
  139.         $products_options_images_per_row_array = $_POST['products_options_images_per_row'];
  140.         $products_options_images_style_array = $_POST['products_options_images_style'];
  141.         $products_options_rows_array = $_POST['products_options_rows'];
  142.  
  143.         for ($i=0, $n=sizeof($languages); $i<$n; $i ++) {
  144.           $option_name = zen_db_prepare_input($option_name_array[$languages[$i]['id']]);
  145.           $products_options_sort_order = (int)zen_db_prepare_input($products_options_sort_order_array[$languages[$i]['id']]);
  146.  
  147.  
  148.           $products_options_length = zen_db_prepare_input($products_options_length_array[$languages[$i]['id']]);
  149.           $products_options_comment = zen_db_prepare_input($products_options_comment_array[$languages[$i]['id']]);
  150.           $products_options_size = zen_db_prepare_input($products_options_size_array[$languages[$i]['id']]);
  151.  
  152.           $products_options_images_per_row = (int)zen_db_prepare_input($products_options_images_per_row_array[$languages[$i]['id']]);
  153.           $products_options_images_style = (int)zen_db_prepare_input($products_options_images_style_array[$languages[$i]['id']]);
  154.           $products_options_rows = (int)zen_db_prepare_input($products_options_rows_array[$languages[$i]['id']]);
  155.  
  156. //          zen_db_query("update " . TABLE_PRODUCTS_OPTIONS . " set products_options_name = '" . zen_db_input($option_name) . "', products_options_type = '" . $option_type . "' where products_options_id = '" . (int)$option_id . "' and language_id = '" . (int)$languages[$i]['id'] . "'");
  157.  
  158.           $db->Execute("update " . TABLE_PRODUCTS_OPTIONS . "
  159.                        set products_options_name = '" . zen_db_input($option_name) . "', products_options_type = '" . $option_type . "', products_options_length = '" . zen_db_input($products_options_length) . "', products_options_comment = '" . zen_db_input($products_options_comment) . "', products_options_size = '" . zen_db_input($products_options_size) . "', products_options_sort_order = '" . zen_db_input($products_options_sort_order) . "', products_options_images_per_row = '" . zen_db_input($products_options_images_per_row) . "', products_options_images_style = '" . zen_db_input($products_options_images_style) . "', products_options_rows = '" . zen_db_input($products_options_rows) . "'
  160.                        where products_options_id = '" . (int)$option_id . "'
  161.                        and language_id = '" . (int)$languages[$i]['id'] . "'");
  162.         }
  163.  
  164.         switch ($option_type) {
  165.           case PRODUCTS_OPTIONS_TYPE_TEXT:
  166.           case PRODUCTS_OPTIONS_TYPE_FILE:
  167. // disabled because this could cause trouble if someone changed types unintentionally and deleted all their option values.  Shops with small numbers of values per option should consider uncommenting this.
  168. //            zen_db_query("delete from " . TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS . " where products_options_id = '" . $_POST['option_id'] . "'");
  169. // add in a record if none exists when option type is switched
  170.             $check_type = $db->Execute("select count(products_options_id) as count from " . TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS . " where products_options_id='" . (int)$_POST['option_id'] .  "' and products_options_values_id ='0'");
  171.             if ($check_type->fields['count'] == 0) {
  172.               $db->Execute("insert into " . TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS . " (products_options_values_to_products_options_id, products_options_id, products_options_values_id) values (NULL, '" . (int)$_POST['option_id'] . "', '" . (int)PRODUCTS_OPTIONS_VALUES_TEXT_ID . "')");
  173.             }
  174.             break;
  175.           default:
  176. // if switched from file or text remove 0
  177.             $db->Execute("delete from " . TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS . " where products_options_id='" . (int)$_POST['option_id'] . "' and products_options_values_id = '" . (int)PRODUCTS_OPTIONS_VALUES_TEXT_ID . "'");
  178.             break;
  179.         }
  180.  
  181. // alert if possible duplicate
  182.         $duplicate_option= '';
  183.         for ($i=0, $n=sizeof($languages); $i<$n; $i ++) {
  184.           $option_name = zen_db_prepare_input($option_name_array[$languages[$i]['id']]);
  185.  
  186.           $check= $db->Execute("select products_options_name
  187.                                from " . TABLE_PRODUCTS_OPTIONS . "
  188.                                where language_id= '" . (int)$languages[$i]['id'] . "'
  189.                                and products_options_name='" . zen_db_input($option_name) . "'");
  190.  
  191.           if ($check->RecordCount() > 1 and !empty($option_name)) {
  192. // BOM by zen-cart.cn
  193.             $duplicate_option .= ' <b>' . GBcase(zen_get_language_name($languages[$i]['id']),"upper") . '</b> : ' . $option_name;
  194. // EOM by zen-cart.cn
  195.           }
  196.         }
  197.         if (!empty($duplicate_option)) {
  198.           $messageStack->add_session(ATTRIBUTE_POSSIBLE_OPTIONS_NAME_WARNING_DUPLICATE . ' ' . $option_id . ' - ' . $duplicate_option, 'caution');
  199.         }
  200.  
  201.         zen_redirect(zen_href_link(FILENAME_OPTIONS_NAME_MANAGER, $_SESSION['page_info'] . '&option_order_by=' . $option_order_by));
  202.         break;
  203.       case 'delete_option':
  204.         // demo active test
  205.         if (zen_admin_demo()) {
  206.           $_GET['action']= '';
  207.           $messageStack->add_session(ERROR_ADMIN_DEMO, 'caution');
  208.             zen_redirect(zen_href_link(FILENAME_OPTIONS_NAME_MANAGER, $_SESSION['page_info'] . '&option_order_by=' . $option_order_by));
  209.         }
  210.         $option_id = zen_db_prepare_input($_GET['option_id']);
  211.  
  212.         $remove_option_values = $db->Execute("select products_options_id, products_options_values_id from " . TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS . " where products_options_id='" . (int)$option_id . "'");
  213.  
  214.         while (!$remove_option_values->EOF) {
  215.           $db->Execute("delete from " . TABLE_PRODUCTS_OPTIONS_VALUES . " where products_options_values_id='" . (int)$remove_option_values->fields['products_options_values_id'] . "' and products_options_values_id !=0");
  216.           $remove_option_values->MoveNext();
  217.         }
  218.  
  219.         $db->Execute("delete from " . TABLE_PRODUCTS_OPTIONS . "
  220.                      where products_options_id = '" . (int)$option_id . "'");
  221.  
  222.         $db->Execute("delete from " . TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS . " where products_options_id = '" . (int)$option_id . "'");
  223.  
  224.         zen_redirect(zen_href_link(FILENAME_OPTIONS_NAME_MANAGER, $_SESSION['page_info'] . '&option_order_by=' . $option_order_by));
  225.         break;
  226.  
  227. /////////////////////////////////////
  228. // additional features
  229.     case 'update_options_values':
  230.       // get products to update with at least one option_value for selected options_name
  231.       $update_to = (int)$_GET['update_to'];
  232.       $update_action = $_GET['update_action'];
  233.  
  234.       switch($update_to) {
  235.         case (0):
  236.         // all products
  237.         $all_update_products = $db->Execute("select distinct products_id from " . TABLE_PRODUCTS_ATTRIBUTES . " where options_id='" . (int)$_POST['options_id'] . "'");
  238.         break;
  239.         case (1):
  240.         // one product
  241.         $product_to_update = (int)$_POST['product_to_update'];
  242.         $all_update_products = $db->Execute("select distinct products_id from " . TABLE_PRODUCTS_ATTRIBUTES . " where options_id='" . (int)$_POST['options_id'] . "' and products_id='" . $product_to_update . "'");
  243.         break;
  244.         case (2):
  245.         // category of products
  246.         $category_to_update = (int)$_POST['category_to_update'];
  247. // re-write with categories
  248.         $all_update_products = $db->Execute("select distinct pa.products_id from " . TABLE_PRODUCTS_ATTRIBUTES . " pa left join " . TABLE_PRODUCTS_TO_CATEGORIES . " ptc on pa.products_id = ptc.products_id where ptc.categories_id ='" . $category_to_update . "' and pa.options_id='" . (int)$_POST['options_id'] . "' and pa.products_id = ptc.products_id");
  249.         break;
  250.       }
  251.  
  252.       if ($all_update_products->RecordCount() < 1) {
  253.         $messageStack->add_session(ERROR_PRODUCTS_OPTIONS_VALUES, 'caution');
  254.       } else {
  255. //die('I want to update ' . $_GET['update_to'] . ' : update action: ' . $update_action . ' product: ' . $_POST['product_to_update']  . ' category: ' . $_POST['category_to_update'] . ' found records: ' . $all_update_products->RecordCount() . ' - ' . $all_update_products->fields['products_id']);
  256.  
  257.         if ($update_action == 0) {
  258.           // action add
  259.           while (!$all_update_products->EOF) {
  260.             // get all option_values
  261.             $all_options_values = $db->Execute("select products_options_id, products_options_values_id from " . TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS . " where products_options_id='" . (int)$_POST['options_id'] . "'");
  262.             $updated = 'false';
  263.            while (!$all_options_values->EOF) {
  264.               $check_all_options_values = $db->Execute("select products_attributes_id from " . TABLE_PRODUCTS_ATTRIBUTES . " where products_id='" . $all_update_products->fields['products_id'] . "' and options_id='" . (int)$all_options_values->fields['products_options_id'] . "' and options_values_id='" . (int)$all_options_values->fields['products_options_values_id'] . "'");
  265.               if ($check_all_options_values->RecordCount() < 1) {
  266.                 // add missing options_value_id
  267.                 $updated = 'true';
  268.                 $db->Execute("insert into " . TABLE_PRODUCTS_ATTRIBUTES . " (products_id, options_id, options_values_id) values ('" . (int)$all_update_products->fields['products_id'] . "', '" . (int)$all_options_values->fields['products_options_id'] . "', '" . (int)$all_options_values->fields['products_options_values_id'] . "')");
  269.               } else {
  270.                 // skip it the attribute is there
  271.               }
  272.               $all_options_values->MoveNext();
  273.             }
  274.             if ($updated == 'true') {
  275.               zen_update_attributes_products_option_values_sort_order($all_update_products->fields['products_id']);
  276.             }
  277.             $all_update_products->MoveNext();
  278.           }
  279.           if ($updated='true') {
  280.             $messageStack->add_session(SUCCESS_PRODUCTS_OPTIONS_VALUES, 'success');
  281.           } else {
  282.             $messageStack->add_session(ERROR_PRODUCTS_OPTIONS_VALUES, 'error');
  283.           }
  284.         } else {
  285.           // action delete
  286.           while (!$all_update_products->EOF) {
  287.             // get all option_values
  288.             $all_options_values = $db->Execute("select products_options_id, products_options_values_id from " . TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS . " where products_options_id='" . (int)$_POST['options_id'] . "'");
  289.             $updated = 'false';
  290.            while (!$all_options_values->EOF) {
  291.               $check_all_options_values = $db->Execute("select products_attributes_id from " . TABLE_PRODUCTS_ATTRIBUTES . " where products_id='" . (int)$all_update_products->fields['products_id'] . "' and options_id='" . (int)$all_options_values->fields['products_options_id'] . "' and options_values_id='" . (int)$all_options_values->fields['products_options_values_id'] . "'");
  292.               if ($check_all_options_values->RecordCount() >= 1) {
  293.                 // delete for this product with Option Name options_value_id
  294. // echo '<br>This should be deleted: ' . zen_get_products_name($all_options_values->fields['products_options_id']);
  295. // change to delete
  296. // should add download delete
  297.                 $db->Execute("delete from " . TABLE_PRODUCTS_ATTRIBUTES . " where products_id='" . (int)$all_update_products->fields['products_id'] . "' and options_id='" . (int)$_POST['options_id'] . "'");
  298.               } else {
  299.                 // skip this option_name does not exist
  300.               }
  301.               $all_options_values->MoveNext();
  302.             }
  303.             $all_update_products->MoveNext();
  304.           }
  305.         } // update_action
  306.  
  307.       } // no products found
  308.         zen_redirect(zen_href_link(FILENAME_OPTIONS_NAME_MANAGER, $_SESSION['page_info'] . '&option_order_by=' . $option_order_by));
  309.         break;
  310. ////////////////////////////////////
  311. // copy features
  312.     case 'copy_options_values':
  313.       $options_id_from = (int)$_POST['options_id_from'];
  314.       $options_id_to = (int)$_POST['options_id_to'];
  315.  
  316.       if ($options_id_from == $options_id_to) {
  317.         // cannot copy to self
  318.         $messageStack->add(ERROR_OPTION_VALUES_COPIED . ' from: ' . zen_options_name($options_id_from) . ' to: ' . zen_options_name($options_id_to), 'warning');
  319.       } else {
  320.         // successful copy
  321.         $start_id = $db->Execute("select pov.products_options_values_id from " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov order by pov.products_options_values_id DESC LIMIT 1");
  322.         $copy_from_values = $db->Execute("select pov.* from " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov left join " . TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS . " povtpo on pov.products_options_values_id= povtpo.products_options_values_id where povtpo.products_options_id='" . (int)$options_id_from . "' order by povtpo.products_options_values_id");
  323.         if ($copy_from_values->RecordCount() > 0) {
  324.           // successful copy
  325.           $next_id = ($start_id->fields['products_options_values_id'] + 1);
  326.           while(!$copy_from_values->EOF) {
  327.             $current_id = $copy_from_values->fields['products_options_values_id'];
  328.             $sql = "insert into " . TABLE_PRODUCTS_OPTIONS_VALUES . " (products_options_values_id, language_id, products_options_values_name, products_options_values_sort_order) values ('" . (int)$next_id . "', '" . (int)$copy_from_values->fields['language_id'] . "', '" . $copy_from_values->fields['products_options_values_name'] . "', '" . (int)$copy_from_values->fields['products_options_values_sort_order'] . "')";
  329.             $db->Execute($sql);
  330.             $copy_from_values->MoveNext();
  331.             if ($copy_from_values->fields['products_options_values_id'] != $current_id or $copy_from_values->EOF) {
  332.               $sql = "insert into " . TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS . " (products_options_values_to_products_options_id, products_options_id, products_options_values_id) values (0, '" . (int)$options_id_to . "', '" . (int)$next_id . "')";
  333.               $db->Execute($sql);
  334.               $next_id++;
  335.             }
  336.           }
  337.           $messageStack->add(SUCCESS_OPTION_VALUES_COPIED . ' from: ' . zen_options_name($options_id_from) . ' to: ' . zen_options_name($options_id_to), 'success');
  338.         } else {
  339.           // warning nothing to copy
  340.           $messageStack->add(ERROR_OPTION_VALUES_NONE . ' from: ' . zen_options_name($options_id_from) . ' to: ' . zen_options_name($options_id_to), 'warning');
  341.         }
  342.       }
  343.     break;
  344. ////////////////////////////////////
  345.     }
  346.  
  347.   }
  348.  
  349. //iii 031103 added to get results from database option type query
  350.   $products_options_types_list = array();
  351. //  $products_options_type_array = $db->Execute("select products_options_types_id, products_options_types_name from " . TABLE_PRODUCTS_OPTIONS_TYPES . " where language_id='" . $_SESSION['languages_id'] . "' order by products_options_types_id");
  352.   $products_options_type_array = $db->Execute("select products_options_types_id, products_options_types_name from " . TABLE_PRODUCTS_OPTIONS_TYPES . " order by products_options_types_id");
  353.   while (!$products_options_type_array->EOF) {
  354.     $products_options_types_list[$products_options_type_array->fields['products_options_types_id']] = $products_options_type_array->fields['products_options_types_name'];
  355.     $products_options_type_array->MoveNext();
  356.   }
  357.  
  358. //CLR 030312 add function to draw pulldown list of option types
  359. // Draw a pulldown for Option Types
  360. //iii 031103 modified to use results of database option type query from above
  361. function draw_optiontype_pulldown($name, $default = '') {
  362.   global $products_options_types_list;
  363.   $values = array();
  364.   foreach ($products_options_types_list as $id => $text) {
  365.     $values[] = array('id' => $id, 'text' => $text);
  366.   }
  367.   return zen_draw_pull_down_menu($name, $values, $default);
  368. }
  369.  
  370. //CLR 030312 add function to translate type_id to name
  371. // Translate option_type_values to english string
  372. //iii 031103 modified to use results of database option type query from above
  373. function translate_type_to_name($opt_type) {
  374.   global $products_options_types_list;
  375.   return $products_options_types_list[$opt_type];
  376.   return 'Error ' . $opt_type;
  377. }
  378.  
  379. ?>
  380. <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
  381. <html <?php echo HTML_PARAMS; ?>>
  382. <head>
  383. <meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
  384. <title><?php echo TITLE; ?></title>
  385. <link rel="stylesheet" type="text/css" href="includes/stylesheet.css">
  386. <link rel="stylesheet" type="text/css" href="includes/cssjsmenuhover.css" media="all" id="hoverJS">
  387. <script language="javascript" src="includes/menu.js"></script>
  388. <script language="javascript"><!--
  389. function go_option() {
  390.   if (document.option_order_by.selected.options[document.option_order_by.selected.selectedIndex].value != "none") {
  391.     location = "<?php echo zen_href_link(FILENAME_OPTIONS_NAME_MANAGER, 'option_page=' . ($_GET['option_page'] ? $_GET['option_page'] : 1)); ?>&option_order_by="+document.option_order_by.selected.options[document.option_order_by.selected.selectedIndex].value;
  392.   }
  393. }
  394. //--></script>
  395. <script type="text/javascript">
  396.   <!--
  397.   function init()
  398.   {
  399.     cssjsmenu('navbar');
  400.     if (document.getElementById)
  401.     {
  402.       var kill = document.getElementById('hoverJS');
  403.       kill.disabled = true;
  404.     }
  405.   }
  406.   // -->
  407. </script>
  408. </head>
  409. <body onLoad="init()">
  410. <!-- header //-->
  411. <?php require(DIR_WS_INCLUDES . 'header.php'); ?>
  412. <!-- header_eof //-->
  413.  
  414. <!-- body //-->
  415. <!-- body_text //-->
  416.  
  417.     <!-- options and values//-->
  418.     <table border="0" width="75%" cellspacing="0" cellpadding="0" align="center">
  419.       <tr>
  420.         <td width="100%">
  421.             <table width="100%" border="0" cellspacing="0" cellpadding="2">
  422.               <tr>
  423.               <td height="40" valign="bottom">
  424.                 <a href="<?php echo  zen_href_link(FILENAME_ATTRIBUTES_CONTROLLER, '', 'NONSSL') ?>"><?php echo zen_image_button('button_edit_attribs.gif', IMAGE_EDIT_ATTRIBUTES); ?></a> &nbsp;
  425.                 <a href="<?php echo  zen_href_link(FILENAME_OPTIONS_VALUES_MANAGER, '', 'NONSSL') ?>"><?php echo zen_image_button('button_option_values.gif', IMAGE_OPTION_VALUES); ?></a>
  426.               </td>
  427.               <td class="main" height="40" valign="bottom">
  428.                 <?php
  429. // toggle switch for show copier features
  430.                   $option_names_values_copier_array = array(array('id' => '0', 'text' => TEXT_SHOW_OPTION_NAMES_VALUES_COPIER_OFF),
  431.                                         array('id' => '1', 'text' => TEXT_SHOW_OPTION_NAMES_VALUES_COPIER_ON),
  432.                                         );
  433.                   echo zen_draw_form('set_option_names_values_copier_form', FILENAME_OPTIONS_NAME_MANAGER, '', 'get') . '&nbsp;&nbsp;' . zen_draw_pull_down_menu('reset_option_names_values_copier', $option_names_values_copier_array, $reset_option_names_values_copier, 'onChange="this.form.submit();"') .
  434.                   zen_hide_session_id() .
  435.                   zen_draw_hidden_field('action', 'set_option_names_values_copier') .
  436.                   '</form>';
  437.                 ?>
  438.               </td>
  439.               <td class="main" align="right" valign="bottom"><?php echo TEXT_PRODUCT_OPTIONS_INFO; ?></td>
  440.             </tr>
  441.           </table>
  442.         </td>
  443.       </tr>
  444.       <tr>
  445.         <td valign="top" width="50%">
  446.            <table width="100%" border="0" cellspacing="0" cellpadding="2">
  447. <!-- options //-->
  448. <?php
  449.   if ($action == 'delete_product_option') { // delete product option
  450.     $options = $db->Execute("select products_options_id, products_options_name
  451.                             from " . TABLE_PRODUCTS_OPTIONS . "
  452.                             where products_options_id = '" . (int)$_GET['option_id'] . "'
  453.                             and language_id = '" . (int)$_SESSION['languages_id'] . "'");
  454.  
  455. ?>
  456.               <tr>
  457.                 <td class="pageHeading">&nbsp;<?php echo $options_values->fields['products_options_name']; ?>&nbsp;</td>
  458.               </tr>
  459.               <tr>
  460.                 <td><table border="0" width="100%" cellspacing="0" cellpadding="2">
  461. <?php
  462.     $products = $db->Execute("select p.products_id, pd.products_name, pov.products_options_values_name
  463.                              from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov,
  464.                                   " . TABLE_PRODUCTS_ATTRIBUTES . " pa,
  465.                                   " . TABLE_PRODUCTS_DESCRIPTION . " pd
  466.                              where pd.products_id = p.products_id
  467.                              and pov.language_id = '" . (int)$_SESSION['languages_id'] . "'
  468.                              and pd.language_id = '" . (int)$_SESSION['languages_id'] . "'
  469.                              and pa.products_id = p.products_id
  470.                              and pa.options_id='" . (int)$_GET['option_id'] . "'
  471.                              and pov.products_options_values_id = pa.options_values_id
  472.                              order by pd.products_name");
  473.  
  474.     if ($products->RecordCount()>0) {
  475. ?>
  476.  
  477. <?php
  478. // extra cancel
  479.       if ($products->RecordCount()> 10) {
  480. ?>
  481.                   <tr>
  482.                     <td colspan="3"><?php echo zen_black_line(); ?></td>
  483.                   </tr>
  484.                   <tr>
  485.                     <td colspan="2" class="main"><br /><?php echo '<strong>' . TEXT_OPTION_NAME . ':</strong> ' . zen_options_name((int)$_GET['option_id']) . '<br />' . TEXT_WARNING_OF_DELETE; ?></td>
  486.                     <td align="right" colspan="3" class="main"><br /><?php echo '<a href="' . zen_href_link(FILENAME_OPTIONS_NAME_MANAGER, (isset($_GET['option_page']) ? '&option_page=' . $_GET['option_page'] . '&' : '') . (isset($_GET['value_page']) ? '&value_page=' . $_GET['value_page'] . '&' : '') . (isset($_GET['attribute_page']) ? '&attribute_page=' . $_GET['attribute_page'] : '') . '&option_order_by=' . $option_order_by) . '">'; ?><?php echo zen_image_button('button_cancel.gif', ' cancel '); ?></a>&nbsp;</td>
  487.                   </tr>
  488. <?php
  489.       }
  490. ?>
  491.                   <tr class="dataTableHeadingRow">
  492.                     <td class="dataTableHeadingContent" align="center">&nbsp;<?php echo TABLE_HEADING_ID; ?>&nbsp;</td>
  493.                     <td class="dataTableHeadingContent">&nbsp;<?php echo TABLE_HEADING_PRODUCT; ?>&nbsp;</td>
  494.                     <td class="dataTableHeadingContent">&nbsp;<?php echo TABLE_HEADING_OPT_VALUE; ?>&nbsp;</td>
  495.                   </tr>
  496.                   <tr>
  497.                     <td colspan="3"><?php echo zen_black_line(); ?></td>
  498.                   </tr>
  499. <?php
  500.       $rows = 0;
  501.       while (!$products->EOF) {
  502.         $rows++;
  503. ?>
  504.                   <tr class="<?php echo (floor($rows/2) == ($rows/2) ? 'attributes-even' : 'attributes-odd'); ?>">
  505.                     <td align="center" class="smallText">&nbsp;<?php echo $products->fields['products_id']; ?>&nbsp;</td>
  506.                     <td class="smallText">&nbsp;<?php echo $products->fields['products_name']; ?>&nbsp;</td>
  507.                     <td class="smallText">&nbsp;<?php echo $products->fields['products_options_values_name']; ?>&nbsp;</td>
  508.                   </tr>
  509. <?php
  510.         $products->MoveNext();
  511.       }
  512. ?>
  513.                   <tr>
  514.                     <td colspan="3"><?php echo zen_black_line(); ?></td>
  515.                   </tr>
  516.                   <tr>
  517.                     <td colspan="2" class="main"><br /><?php echo TEXT_WARNING_OF_DELETE; ?></td>
  518.                     <td align="right" colspan="3" class="main"><br /><?php echo '<a href="' . zen_href_link(FILENAME_OPTIONS_NAME_MANAGER, (isset($_GET['option_page']) ? '&option_page=' . $_GET['option_page'] . '&' : '') . (isset($_GET['value_page']) ? '&value_page=' . $_GET['value_page'] . '&' : '') . (isset($_GET['attribute_page']) ? '&attribute_page=' . $_GET['attribute_page'] : '') . '&option_order_by=' . $option_order_by ) . '">'; ?><?php echo zen_image_button('button_cancel.gif', ' cancel '); ?></a>&nbsp;</td>
  519.                   </tr>
  520.                   <tr>
  521.                     <td colspan="3"><?php echo zen_black_line(); ?></td>
  522.                   </tr>
  523. <?php
  524.     } else {
  525. ?>
  526.                   <tr>
  527.                     <td class="main" colspan="3"><br /><?php echo '<strong>' . TEXT_OPTION_NAME . ':</strong> ' . zen_options_name((int)$_GET['option_id']) . '<br />' . TEXT_OK_TO_DELETE; ?></td>
  528.                   </tr>
  529.                   <tr>
  530.                     <td class="main" align="right" colspan="3"><br /><?php echo '<a href="' . zen_href_link(FILENAME_OPTIONS_NAME_MANAGER, 'action=delete_option&option_id=' . $_GET['option_id'] . (isset($_GET['option_page']) ? '&option_page=' . $_GET['option_page'] . '&' : '') . (isset($_GET['value_page']) ? '&value_page=' . $_GET['value_page'] . '&' : '') . (isset($_GET['attribute_page']) ? '&attribute_page=' . $_GET['attribute_page'] : '') . '&option_order_by=' . $option_order_by ) . '">'; ?><?php echo zen_image_button('button_delete.gif', ' delete '); ?></a>&nbsp;&nbsp;&nbsp;<?php echo '<a href="' . zen_href_link(FILENAME_OPTIONS_NAME_MANAGER, (isset($_GET['order_by']) ? 'order_by=' . $_GET['order_by'] . '&' : '') . (isset($_GET['option_page']) ? '&option_page=' . $_GET['option_page'] . '&' : '') . (isset($_GET['value_page']) ? '&value_page=' . $_GET['value_page'] . '&' : '') . (isset($_GET['attribute_page']) ? '&attribute_page=' . $_GET['attribute_page'] : '') . '&option_order_by=' . $option_order_by ) . '">'; ?><?php echo zen_image_button('button_cancel.gif', ' cancel '); ?></a>&nbsp;</td>
  531.                   </tr>
  532. <?php
  533.     }
  534. ?>
  535.                 </table></td>
  536.               </tr>
  537. <?php
  538.   } else {
  539.     if (isset($_GET['option_order_by'])) {
  540.       $option_order_by = $_GET['option_order_by'];
  541.     } else {
  542.       $option_order_by = 'products_options_id';
  543.     }
  544. ?>
  545.               <tr>
  546.                 <td colspan="2" class="pageHeading">&nbsp;<?php echo HEADING_TITLE_OPT; ?>&nbsp;</td>
  547.                 <td valign="top" align="left"><form name="option_order_by" action="<?php echo zen_href_link(FILENAME_OPTIONS_NAME_MANAGER, 'option_order_by=' . $option_order_by, 'NONSSL'); ?>"><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>
  548.               </tr>
  549.               <tr>
  550.                 <td colspan="4" class="smallText">
  551. <?php
  552.     $options = "select * from " . TABLE_PRODUCTS_OPTIONS . " where language_id = :languageId: order by :optionOrderBy:";
  553.     $options = $db->bindVars($options, ':languageId:', $_SESSION['languages_id'], 'integer');
  554.     $options = $db->bindVars($options, ':optionOrderBy:', $option_order_by, 'noquotestring');
  555.     if (!isset($_GET['option_page'])) {
  556.       $_GET['option_page'] = 1;
  557.     }
  558.     $prev_option_page = $_GET['option_page'] - 1;
  559.     $next_option_page = $_GET['option_page'] + 1;
  560.  
  561.     $option_query = $db->Execute($options);
  562.     $num_rows = $option_query->RecordCount();
  563.  
  564.     $per_page = (MAX_ROW_LISTS_OPTIONS == '') ? $num_rows : (int)MAX_ROW_LISTS_OPTIONS;
  565.  
  566.     $option_page_start = ($per_page * $_GET['option_page']) - $per_page;
  567.     if ($num_rows <= $per_page) {
  568.       $num_pages = 1;
  569.     } else if (($num_rows % $per_page) == 0) {
  570.       $num_pages = ($num_rows / $per_page);
  571.     } else {
  572.       $num_pages = ($num_rows / $per_page) + 1;
  573.     }
  574.     $num_pages = (int) $num_pages;
  575.  
  576. // fix limit error on some versions
  577.     if ($option_page_start < 0) { $option_page_start = 0; }
  578.  
  579.     $options = $options . " LIMIT $option_page_start, $per_page";
  580.  
  581.     // Previous
  582.     if ($prev_option_page)  {
  583.       echo '<a href="' . zen_href_link(FILENAME_OPTIONS_NAME_MANAGER, 'option_page=' . $prev_option_page . '&option_order_by=' . $option_order_by) . '"> &lt;&lt; </a> | ';
  584.     }
  585.  
  586.     for ($i = 1; $i <= $num_pages; $i++) {
  587.       if ($i != $_GET['option_page']) {
  588.         echo '<a href="' . zen_href_link(FILENAME_OPTIONS_NAME_MANAGER, 'option_page=' . $i . '&option_order_by=' . $option_order_by) . '">' . $i . '</a> | ';
  589.       } else {
  590.         echo '<b><font color=red>' . $i . '</font></b> | ';
  591.       }
  592.     }
  593.  
  594.     // Next
  595.     if ($_GET['option_page'] != $num_pages) {
  596.       echo '<a href="' . zen_href_link(FILENAME_OPTIONS_NAME_MANAGER, 'option_page=' . $next_option_page . '&option_order_by=' . $option_order_by) . '"> &gt;&gt; </a>';
  597.     }
  598. //CLR 030212 - Add column for option type
  599. ?>
  600.                 </td>
  601.               </tr>
  602.               <tr>
  603.                 <td colspan="7"><?php echo zen_black_line(); ?></td>
  604.               </tr>
  605.               <tr class="dataTableHeadingRow">
  606.                 <td class="dataTableHeadingContent">&nbsp;<?php echo TABLE_HEADING_ID; ?>&nbsp;</td>
  607.                 <td class="dataTableHeadingContent">&nbsp;<?php echo TABLE_HEADING_OPT_NAME; ?>&nbsp;</td>
  608.                 <td class="dataTableHeadingContent">&nbsp;<?php echo TABLE_HEADING_OPT_TYPE; ?>&nbsp;</td>
  609.                 <td class="dataTableHeadingContent" align="right">&nbsp;<?php echo TABLE_HEADING_OPTION_SORT_ORDER; ?>&nbsp;</td>
  610.                 <td class="dataTableHeadingContent" align="center">&nbsp;<?php echo TABLE_HEADING_OPTION_VALUE_SIZE; ?></td>
  611.                 <td class="dataTableHeadingContent" align="center">&nbsp;<?php echo TABLE_HEADING_OPTION_VALUE_MAX; ?></td>
  612.                 <td class="dataTableHeadingContent" align="center">&nbsp;<?php echo TABLE_HEADING_ACTION; ?>&nbsp;</td>
  613.               </tr>
  614.               <tr>
  615.                 <td colspan="7"><?php echo zen_black_line(); ?></td>
  616.               </tr>
  617. <?php
  618.     $next_id = 1;
  619.     $rows = 0;
  620.     $options_values = $db->Execute($options);
  621.     while (!$options_values->EOF) {
  622.       $rows++;
  623. ?>
  624.               <tr class="<?php echo (floor($rows/2) == ($rows/2) ? 'attributes-even' : 'attributes-odd'); ?>">
  625. <?php
  626. // edit option name
  627.       if (($action == 'update_option') && ($_GET['option_id'] == $options_values->fields['products_options_id'])) {
  628.         echo '<form name="option" action="' . zen_href_link(FILENAME_OPTIONS_NAME_MANAGER, 'action=update_option_name' . (isset($_GET['option_page']) ? '&option_page=' . $_GET['option_page'] . '&' : '') . (isset($_GET['value_page']) ? '&value_page=' . $_GET['value_page'] . '&' : '') . (isset($_GET['attribute_page']) ? '&attribute_page=' . $_GET['attribute_page'] : '')  . '&option_order_by=' . $option_order_by) . '" method="post">';echo zen_draw_hidden_field('securityToken', $_SESSION['securityToken']);
  629.         $inputs = '';
  630.         $inputs2 = '';
  631.         for ($i = 0, $n = sizeof($languages); $i < $n; $i ++) {
  632.           $option_name = $db->Execute("select products_options_name, products_options_sort_order, products_options_size, products_options_length, products_options_comment, products_options_images_per_row, products_options_images_style, products_options_rows
  633.                                       from " . TABLE_PRODUCTS_OPTIONS . "
  634.                                       where products_options_id = '" . (int)$options_values->fields['products_options_id'] . "'
  635.                                       and language_id = '" . (int)$languages[$i]['id'] . "'");
  636.  
  637.           $inputs .= $languages[$i]['code'] . ':&nbsp;<input type="text" name="option_name[' . $languages[$i]['id'] . ']" ' . zen_set_field_length(TABLE_PRODUCTS_OPTIONS, 'products_options_name', 40) . ' value="' . zen_output_string($option_name->fields['products_options_name']) . '">' . TEXT_SORT . '<input type="text" name="products_options_sort_order[' . $languages[$i]['id'] . ']" size="3" value="' . $option_name->fields['products_options_sort_order'] . '">&nbsp;<br />';
  638.           $inputs2 .= $languages[$i]['code'] . ':&nbsp; ' .
  639.                    '&nbsp;' . TEXT_OPTION_VALUE_COMMENTS . '<input type="text" name="products_options_comment[' . $languages[$i]['id'] . ']" size="50" value="' . zen_output_string($option_name->fields['products_options_comment']) . '">' .
  640.                    '<br /><br />' . TEXT_OPTION_VALUE_ROWS . '<input type="text" name="products_options_rows[' . $languages[$i]['id'] . ']" size="3" value="' . $option_name->fields['products_options_rows'] . '">' .
  641.                    '&nbsp;' . TEXT_OPTION_VALUE_SIZE . '<input type="text" name="products_options_size[' . $languages[$i]['id'] . ']" size="3" value="' . $option_name->fields['products_options_size'] . '">' .
  642.                    '&nbsp;' . TEXT_OPTION_VALUE_MAX . '<input type="text" name="products_options_length[' . $languages[$i]['id'] . ']" size="3" value="' . $option_name->fields['products_options_length'] . '">' .
  643.                    '<br /><br />' . TEXT_OPTION_ATTRIBUTE_IMAGES_PER_ROW . '<input type="text" name="products_options_images_per_row[' . $languages[$i]['id'] . ']" size="3" value="' . $option_name->fields['products_options_images_per_row'] . '">' .
  644.                    '&nbsp;' . TEXT_OPTION_ATTRIBUTE_IMAGES_STYLE . '<input type="text" name="products_options_images_style[' . $languages[$i]['id'] . ']" size="3" value="' . $option_name->fields['products_options_images_style'] . '">' . '<br /><br />';
  645.  
  646.         }
  647.  
  648. //CLR 030212 - Add column for option type
  649. ?>
  650.                 <td height="50" align="center" class="attributeBoxContent">&nbsp;<?php echo $options_values->fields['products_options_id']; ?><input type="hidden" name="option_id" value="<?php echo $options_values->fields['products_options_id']; ?>">&nbsp;</td>
  651.                 <td class="attributeBoxContent"><?php echo $inputs; ?></td>
  652.                 <td class="attributeBoxContent"><?php echo draw_optiontype_pulldown('option_type', $options_values->fields['products_options_type']); ?></td>
  653.                 <td colspan="3" align="left" class="attributeBoxContent">&nbsp;</td>
  654.                 <td colspan="1"  align="center" class="attributeBoxContent">&nbsp;<?php echo zen_image_submit('button_update.gif', IMAGE_UPDATE); ?>&nbsp;<?php echo '<a href="' . zen_href_link(FILENAME_OPTIONS_NAME_MANAGER, (isset($_GET['option_page']) ? '&option_page=' . $_GET['option_page'] . '&' : '') . (isset($_GET['value_page']) ? '&value_page=' . $_GET['value_page'] . '&' : '') . (isset($_GET['attribute_page']) ? '&attribute_page=' . $_GET['attribute_page'] : '') . '&option_order_by=' . $option_order_by ) . '">'; ?><?php echo zen_image_button('button_cancel.gif', IMAGE_CANCEL); ?></a>&nbsp;</td>
  655.               </tr>
  656.       <tr>
  657.         <td colspan="7"><?php echo zen_draw_separator('pixel_black.gif', '100%', '2'); ?></td>
  658.       </tr>
  659.  
  660.               <tr class="attributeBoxContent">
  661.                 <td class="attributeBoxContent">&nbsp;</td>
  662.                 <td colspan="6" class="attributeBoxContent"><?php echo TEXT_OPTION_ATTIBUTE_MAX_LENGTH . $inputs2; ?></td>
  663.               </tr>
  664.               <tr class="attributeBoxContent">
  665.                 <td class="attributeBoxContent">&nbsp;</td>
  666.                 <td colspan="6" class="attributeBoxContent">
  667.               <?php echo '<br />' .
  668.                      TEXT_OPTION_IMAGE_STYLE . '<br />' .
  669.                      TEXT_OPTION_ATTRIBUTE_IMAGES_STYLE_0 . '<br />' .
  670.                      TEXT_OPTION_ATTRIBUTE_IMAGES_STYLE_1 . '<br />' .
  671.                      TEXT_OPTION_ATTRIBUTE_IMAGES_STYLE_2 . '<br />' .
  672.                      TEXT_OPTION_ATTRIBUTE_IMAGES_STYLE_3 . '<br />' .
  673.                      TEXT_OPTION_ATTRIBUTE_IMAGES_STYLE_4 . '<br />' .
  674.                      TEXT_OPTION_ATTRIBUTE_IMAGES_STYLE_5 . '<br />';
  675.               ?>
  676.                 </td>
  677.  
  678.       </tr>
  679.       <tr>
  680.         <td colspan="7"><?php echo zen_draw_separator('pixel_black.gif', '100%', '2'); ?></td>
  681. <?php
  682.         echo '</form>' . "\n";
  683.       } else {
  684. //CLR 030212 - Add column for option type
  685. ?>
  686.                 <td align="center" class="smallText">&nbsp;<?php echo $options_values->fields["products_options_id"]; ?>&nbsp;</td>
  687.                 <td class="smallText">&nbsp;<?php echo $options_values->fields["products_options_name"]; ?>&nbsp;</td>
  688.                 <td class="smallText">&nbsp;<?php echo translate_type_to_name($options_values->fields["products_options_type"]); ?>&nbsp;</td>
  689.                 <td class="smallText" align="right">&nbsp;<?php echo $options_values->fields["products_options_sort_order"]; ?>&nbsp;</td>
  690.                 <td class="smallText" align="right">&nbsp;<?php echo $options_values->fields["products_options_size"]; ?>&nbsp;</td>
  691.                 <td class="smallText" align="right">&nbsp;<?php echo $options_values->fields["products_options_length"]; ?>&nbsp;</td>
  692. <?php
  693. // hide buttons when editing
  694.   if ($action== 'update_option') {
  695. ?>
  696.             <td width='120' align="center" class="smallText">&nbsp;</td>
  697. <?php
  698.   } else {
  699. ?>
  700.                 <td align="center" class="smallText">&nbsp;<?php echo '<a href="' . zen_href_link(FILENAME_OPTIONS_NAME_MANAGER, 'action=update_option&option_id=' . $options_values->fields['products_options_id'] . '&option_order_by=' . $option_order_by . '&option_page=' . $_GET['option_page'] . (isset($_GET['value_page']) ? '&value_page=' . $_GET['value_page'] . '&' : '') . (isset($_GET['attribute_page']) ? '&attribute_page=' . $_GET['attribute_page'] : '') ) . '">'; ?><?php echo zen_image_button('button_edit.gif', IMAGE_UPDATE); ?></a>&nbsp;&nbsp;<?php echo '<a href="' . zen_href_link(FILENAME_OPTIONS_NAME_MANAGER, 'action=delete_product_option&option_id=' . $options_values->fields['products_options_id'] . (isset($_GET['option_page']) ? '&option_page=' . $_GET['option_page'] . '&' : '') . '&option_order_by=' . $option_order_by, 'NONSSL') , '">'; ?><?php echo zen_image_button('button_delete.gif', IMAGE_DELETE); ?></a>&nbsp;</td>
  701. <?php
  702.   }
  703. ?>
  704. <?php
  705.       }
  706. ?>
  707.               </tr>
  708. <?php
  709.       $max_options_id_values = $db->Execute("select max(products_options_id) + 1 as next_id
  710.                                             from " . TABLE_PRODUCTS_OPTIONS);
  711.  
  712.       $next_id = $max_options_id_values->fields['next_id'];
  713.       $options_values->MoveNext();
  714.     }
  715. ?>
  716.               <tr>
  717.                 <td colspan="7"><?php echo zen_black_line(); ?></td>
  718.               </tr>
  719. <?php
  720. // add option name
  721.     if ($action != 'update_option') {
  722. ?>
  723.               <tr class="<?php echo (floor($rows/2) == ($rows/2) ? 'attributes-even' : 'attributes-odd'); ?>">
  724. <?php
  725.       echo '<form name="options" action="' . zen_href_link(FILENAME_OPTIONS_NAME_MANAGER, 'action=add_product_options' . (isset($_GET['option_page']) ? '&option_page=' . $_GET['option_page'] . '&' : '') . (isset($_GET['value_page']) ? '&value_page=' . $_GET['value_page'] . '&' : '') . (isset($_GET['attribute_page']) ? '&attribute_page=' . $_GET['attribute_page'] : '') . '&option_order_by=' . $option_order_by ) . '" method="post"><input type="hidden" name="products_options_id" value="' . $next_id . '">';echo zen_draw_hidden_field('securityToken', $_SESSION['securityToken']);
  726.       $inputs = '';
  727.       for ($i = 0, $n = sizeof($languages); $i < $n; $i ++) {
  728.         $inputs .= $languages[$i]['code'] . ':&nbsp;<input type="text" name="option_name[' . $languages[$i]['id'] . ']" ' . zen_set_field_length(TABLE_PRODUCTS_OPTIONS, 'products_options_name', 40) . '>' . TEXT_SORT . '<input type="text" name="products_options_sort_order[' . $languages[$i]['id'] . ']" size="3">' . '&nbsp;<br />';
  729.       }
  730. //CLR 030212 - Add column for option type
  731. ?>
  732.                 <td align="center" class="smallText">&nbsp;<?php echo $next_id; ?>&nbsp;</td>
  733.                 <td class="smallText"><?php echo $inputs; ?></td>
  734.                 <td class="smallText"><?php echo draw_optiontype_pulldown('option_type'); ?></td>
  735.                 <td colspan="2" class="smallText">&nbsp;</td>
  736.                 <td colspan="2" align="center" class="smallText">&nbsp;<?php echo zen_image_submit('button_insert.gif', IMAGE_INSERT); ?>&nbsp;</td>
  737. <?php
  738.       echo '</form>';
  739. ?>
  740.               </tr>
  741.               <tr>
  742.                 <td colspan="7"><?php echo zen_black_line(); ?></td>
  743.               </tr>
  744. <?php
  745.     }
  746.   }
  747. ?>
  748.             </table>
  749. </td></tr></table>
  750. <!-- options eof //-->
  751.  
  752. <?php if ($_SESSION['option_names_values_copier'] == '0') { ?>
  753.   <table align="center" width="90%">
  754.     <tr>
  755.       <td><?php echo zen_draw_separator('pixel_trans.gif', '100%', '5'); ?></td>
  756.     </tr>
  757.     <tr>
  758.       <td class="pageHeading" align="center"><?php echo TEXT_INFO_OPTION_NAMES_VALUES_COPIER_STATUS; ?></td>
  759.     </tr>
  760.     <tr>
  761.       <td><?php echo zen_draw_separator('pixel_trans.gif', '100%', '5'); ?></td>
  762.     </tr>
  763.   </table>
  764. <?php } else { ?>
  765.   <table align="center" width="90%">
  766.     <tr>
  767.       <td><?php echo zen_draw_separator('pixel_trans.gif', '100%', '5'); ?></td>
  768.     </tr>
  769.     <tr>
  770.       <td class="pageHeading" align="center"><span class="alert"><?php echo TEXT_WARNING_BACKUP; ?></span></td>
  771.     </tr>
  772.   </table>
  773.  
  774. <!-- ADD - additional features //-->
  775.     <table border="2" width="75%" cellspacing="0" cellpadding="0" align="center">
  776.       <tr>
  777.         <td width="100%">
  778.             <table width="100%" border="0" cellspacing="0" cellpadding="2">
  779.  
  780. <!-- bof: add all option values to products with current Option Name -->
  781.             <tr>
  782.               <td class="main"><?php echo TEXT_OPTION_VALUE_ADD_ALL; ?></td>
  783.             </tr>
  784.             <tr>
  785.               <td class="main"><?php echo TEXT_INFO_OPTION_VALUE_ADD_ALL; ?></td>
  786.             </tr>
  787.             <tr class="dataTableHeadingRow">
  788.               <td><table border="0" cellspacing="0" cellpadding="2">
  789.                 <tr class="dataTableHeadingRow">
  790.                   <form name="quick_jump" method="post" action="<?php echo zen_href_link(FILENAME_OPTIONS_NAME_MANAGER, 'action=update_options_values&update_to=0&update_action=0' . '&option_order_by=' . $option_order_by, 'NONSSL'); ?>"><?php echo zen_draw_hidden_field('securityToken', $_SESSION['securityToken']); ?>
  791.                   <td class="dataTableHeadingContent"><?php echo TEXT_SELECT_OPTION; ?><br /><select name="options_id">
  792. <?php
  793.         $options_values = $db->Execute("select * from " . TABLE_PRODUCTS_OPTIONS . " where language_id = '" . (int)$_SESSION['languages_id'] . "' and products_options_name !='' and products_options_type !='" . (int)PRODUCTS_OPTIONS_TYPE_TEXT . "' and products_options_type !='" . (int)PRODUCTS_OPTIONS_TYPE_FILE . "' order by products_options_name");
  794.         while(!$options_values->EOF) {
  795.             echo "\n" . '<option name="' . $options_values->fields['products_options_name'] . '" value="' . $options_values->fields['products_options_id'] . '">' . $options_values->fields['products_options_name'] . '</option>';
  796.             $options_values->MoveNext();
  797.         }
  798. ?>
  799.                   </select>&nbsp;</td>
  800.                   <td align="right" class="dataTableHeadingContent">&nbsp;<?php echo zen_image_submit('button_update.gif', IMAGE_UPDATE); ?>&nbsp;</td>
  801.                   </form>
  802.                 </tr>
  803.  
  804.               </table></td>
  805.             </tr>
  806.  
  807.             <tr>
  808.               <td class="main"><?php echo TEXT_OPTION_VALUE_ADD_PRODUCT; ?></td>
  809.             </tr>
  810.             <tr>
  811.               <td class="main"><?php echo TEXT_INFO_OPTION_VALUE_ADD_PRODUCT; ?></td>
  812.             </tr>
  813.             <tr class="dataTableHeadingRow">
  814.               <td><table border="0" cellspacing="0" cellpadding="2">
  815.                 <tr class="dataTableHeadingRow">
  816.                   <form name="quick_jump" method="post" action="<?php echo zen_href_link(FILENAME_OPTIONS_NAME_MANAGER, 'action=update_options_values&update_to=1&update_action=0' . '&option_order_by=' . $option_order_by, 'NONSSL'); ?>"><?php echo zen_draw_hidden_field('securityToken', $_SESSION['securityToken']); ?>
  817.                   <td class="dataTableHeadingContent"><?php echo TEXT_SELECT_OPTION; ?><br /><select name="options_id">
  818. <?php
  819.         $options_values = $db->Execute("select * from " . TABLE_PRODUCTS_OPTIONS . " where language_id = '" . (int)$_SESSION['languages_id'] . "' and products_options_name !='' and products_options_type !='" . (int)PRODUCTS_OPTIONS_TYPE_TEXT . "' and products_options_type !='" . (int)PRODUCTS_OPTIONS_TYPE_FILE . "' order by products_options_name");
  820.         while(!$options_values->EOF) {
  821.             echo "\n" . '<option name="' . $options_values->fields['products_options_name'] . '" value="' . $options_values->fields['products_options_id'] . '">' . $options_values->fields['products_options_name'] . '</option>';
  822.             $options_values->MoveNext();
  823.         }
  824. ?>
  825.                   </select>&nbsp;</td>
  826.                   <td class="dataTableHeadingContent"><?php echo TEXT_SELECT_PRODUCT; ?><br /><?php echo zen_draw_products_pull_down_attributes('product_to_update', 'size="5"', '', true, $_GET['products_filter'], true); ?></td>
  827.  
  828.                   <td align="center" class="dataTableHeadingContent">&nbsp;<?php echo zen_image_submit('button_update.gif', IMAGE_UPDATE); ?>&nbsp;</td>
  829.                   </form>
  830.                 </tr>
  831.  
  832.               </table></td>
  833.             </tr>
  834.  
  835.             <tr>
  836.               <td class="main"><?php echo TEXT_OPTION_VALUE_ADD_CATEGORY; ?></td>
  837.             </tr>
  838.             <tr>
  839.               <td class="main"><?php echo TEXT_INFO_OPTION_VALUE_ADD_CATEGORY; ?></td>
  840.             </tr>
  841.             <tr class="dataTableHeadingRow">
  842.               <td><table border="0" cellspacing="0" cellpadding="2">
  843.                 <tr class="dataTableHeadingRow">
  844.                   <form name="quick_jump" method="post" action="<?php echo zen_href_link(FILENAME_OPTIONS_NAME_MANAGER, 'action=update_options_values&update_to=2&update_action=0' . '&option_order_by=' . $option_order_by, 'NONSSL'); ?>"><?php echo zen_draw_hidden_field('securityToken', $_SESSION['securityToken']); ?>
  845.                   <td class="dataTableHeadingContent"><?php echo TEXT_SELECT_OPTION; ?><br /><select name="options_id">
  846. <?php
  847.         $options_values = $db->Execute("select * from " . TABLE_PRODUCTS_OPTIONS . " where language_id = '" . (int)$_SESSION['languages_id'] . "' and products_options_name !='' and products_options_type !='" . (int)PRODUCTS_OPTIONS_TYPE_TEXT . "' and products_options_type !='" . (int)PRODUCTS_OPTIONS_TYPE_FILE . "' order by products_options_name");
  848.         while(!$options_values->EOF) {
  849.             echo "\n" . '<option name="' . $options_values->fields['products_options_name'] . '" value="' . $options_values->fields['products_options_id'] . '">' . $options_values->fields['products_options_name'] . '</option>';
  850.             $options_values->MoveNext();
  851.         }
  852. ?>
  853.                   </select>&nbsp;</td>
  854.                   <td class="dataTableHeadingContent"><?php echo TEXT_SELECT_CATEGORY; ?><br /><?php echo zen_draw_products_pull_down_categories('category_to_update', 'size="5"', '', true, $_GET['products_filter'], true); ?></td>
  855.  
  856.                   <td align="lef" class="dataTableHeadingContent">&nbsp;<?php echo zen_image_submit('button_update.gif', IMAGE_UPDATE); ?>&nbsp;</td>
  857.                   </form>
  858.                 </tr>
  859.  
  860.               </table></td>
  861.             </tr>
  862.  
  863.             <tr>
  864.               <td class="main"><?php echo TEXT_COMMENT_OPTION_VALUE_ADD_ALL; ?></td>
  865.             </tr>
  866. <!-- eof: add all option values to products with current Option Name -->
  867.  
  868.             </table>
  869.           </td>
  870.         </tr>
  871.    </table>
  872. <!-- ADD - additional features eof //-->
  873.  
  874.   <table>
  875.     <tr>
  876.       <td colspan="4"><?php echo zen_draw_separator('pixel_trans.gif', '100%', '5'); ?></td>
  877.     </tr>
  878.   </table>
  879.  
  880. <!-- DELETE - additional features //-->
  881.     <table border="2" width="75%" cellspacing="0" cellpadding="0" align="center">
  882.       <tr>
  883.         <td width="100%">
  884.             <table width="100%" border="0" cellspacing="0" cellpadding="2">
  885.  
  886. <!-- bof: delete all option values to products with current Option Name -->
  887.             <tr>
  888.               <td class="main"><?php echo TEXT_OPTION_VALUE_DELETE_ALL; ?></td>
  889.             </tr>
  890.             <tr>
  891.               <td class="main"><?php echo TEXT_INFO_OPTION_VALUE_DELETE_ALL; ?></td>
  892.             </tr>
  893.             <tr class="dataTableHeadingRow">
  894.               <td><table border="0" cellspacing="0" cellpadding="2">
  895.                 <tr class="dataTableHeadingRow">
  896.                   <form name="quick_jump" method="post" action="<?php echo zen_href_link(FILENAME_OPTIONS_NAME_MANAGER, 'action=update_options_values&update_to=0&update_action=1' . '&option_order_by=' . $option_order_by, 'NONSSL'); ?>"><?php echo zen_draw_hidden_field('securityToken', $_SESSION['securityToken']); ?>
  897.                   <td class="dataTableHeadingContent"><?php echo TEXT_SELECT_OPTION; ?><br /><select name="options_id">
  898. <?php
  899.         $options_values = $db->Execute("select * from " . TABLE_PRODUCTS_OPTIONS . " where language_id = '" . (int)$_SESSION['languages_id'] . "' and products_options_name !='' and products_options_type !='" . (int)PRODUCTS_OPTIONS_TYPE_TEXT . "' and products_options_type !='" . (int)PRODUCTS_OPTIONS_TYPE_FILE . "' order by products_options_name");
  900.         while(!$options_values->EOF) {
  901.             echo "\n" . '<option name="' . $options_values->fields['products_options_name'] . '" value="' . $options_values->fields['products_options_id'] . '">' . $options_values->fields['products_options_name'] . '</option>';
  902.             $options_values->MoveNext();
  903.         }
  904. ?>
  905.                   </select>&nbsp;</td>
  906.                   <td align="right" class="dataTableHeadingContent">&nbsp;<?php echo zen_image_submit('button_update.gif', IMAGE_UPDATE); ?>&nbsp;</td>
  907.                   </form>
  908.                 </tr>
  909.  
  910.               </table></td>
  911.             </tr>
  912.  
  913.             <tr>
  914.               <td class="main"><?php echo TEXT_OPTION_VALUE_DELETE_PRODUCT; ?></td>
  915.             </tr>
  916.             <tr>
  917.               <td class="main"><?php echo TEXT_INFO_OPTION_VALUE_DELETE_PRODUCT; ?></td>
  918.             </tr>
  919.             <tr class="dataTableHeadingRow">
  920.               <td><table border="0" cellspacing="0" cellpadding="2">
  921.                 <tr class="dataTableHeadingRow">
  922.                   <form name="quick_jump" method="post" action="<?php echo zen_href_link(FILENAME_OPTIONS_NAME_MANAGER, 'action=update_options_values&update_to=1&update_action=1' . '&option_order_by=' . $option_order_by, 'NONSSL'); ?>"><?php echo zen_draw_hidden_field('securityToken', $_SESSION['securityToken']); ?>
  923.                   <td class="dataTableHeadingContent"><?php echo TEXT_SELECT_OPTION; ?><br /><select name="options_id">
  924. <?php
  925.         $options_values = $db->Execute("select * from " . TABLE_PRODUCTS_OPTIONS . " where language_id = '" . (int)$_SESSION['languages_id'] . "' and products_options_name !='' and products_options_type !='" . (int)PRODUCTS_OPTIONS_TYPE_TEXT . "' and products_options_type !='" . (int)PRODUCTS_OPTIONS_TYPE_FILE . "' order by products_options_name");
  926.         while(!$options_values->EOF) {
  927.             echo "\n" . '<option name="' . $options_values->fields['products_options_name'] . '" value="' . $options_values->fields['products_options_id'] . '">' . $options_values->fields['products_options_name'] . '</option>';
  928.             $options_values->MoveNext();
  929.         }
  930. ?>
  931.                   </select>&nbsp;</td>
  932.                   <td class="dataTableHeadingContent"><?php echo TEXT_SELECT_PRODUCT; ?><br /><?php echo zen_draw_products_pull_down_attributes('product_to_update', 'size="5"', '', true, $_GET['products_filter'], true); ?></td>
  933.  
  934.                   <td align="center" class="dataTableHeadingContent">&nbsp;<?php echo zen_image_submit('button_update.gif', IMAGE_UPDATE); ?>&nbsp;</td>
  935.                   </form>
  936.                 </tr>
  937.  
  938.               </table></td>
  939.             </tr>
  940.  
  941.             <tr>
  942.               <td class="main"><?php echo TEXT_OPTION_VALUE_DELETE_CATEGORY; ?></td>
  943.             </tr>
  944.             <tr>
  945.               <td class="main"><?php echo TEXT_INFO_OPTION_VALUE_DELETE_CATEGORY; ?></td>
  946.             </tr>
  947.             <tr class="dataTableHeadingRow">
  948.               <td><table border="0" cellspacing="0" cellpadding="2">
  949.                 <tr class="dataTableHeadingRow">
  950.                   <form name="quick_jump" method="post" action="<?php echo zen_href_link(FILENAME_OPTIONS_NAME_MANAGER, 'action=update_options_values&update_to=2&update_action=1' . '&option_order_by=' . $option_order_by, 'NONSSL'); ?>"><?php echo zen_draw_hidden_field('securityToken', $_SESSION['securityToken']); ?>
  951.                   <td class="dataTableHeadingContent"><?php echo TEXT_SELECT_OPTION; ?><br /><select name="options_id">
  952. <?php
  953.         $options_values = $db->Execute("select * from " . TABLE_PRODUCTS_OPTIONS . " where language_id = '" . (int)$_SESSION['languages_id'] . "' and products_options_name !='' and products_options_type !='" . (int)PRODUCTS_OPTIONS_TYPE_TEXT . "' and products_options_type !='" . (int)PRODUCTS_OPTIONS_TYPE_FILE . "' order by products_options_name");
  954.         while(!$options_values->EOF) {
  955.             echo "\n" . '<option name="' . $options_values->fields['products_options_name'] . '" value="' . $options_values->fields['products_options_id'] . '">' . $options_values->fields['products_options_name'] . '</option>';
  956.             $options_values->MoveNext();
  957.         }
  958. ?>
  959.                   </select>&nbsp;</td>
  960.                   <td class="dataTableHeadingContent"><?php echo TEXT_SELECT_CATEGORY; ?><br /><?php echo zen_draw_products_pull_down_categories('category_to_update', 'size="5"', '', true, $_GET['products_filter'], true); ?></td>
  961.  
  962.                   <td align="lef" class="dataTableHeadingContent">&nbsp;<?php echo zen_image_submit('button_update.gif', IMAGE_UPDATE); ?>&nbsp;</td>
  963.                   </form>
  964.                 </tr>
  965.  
  966.               </table></td>
  967.             </tr>
  968.  
  969.             <tr>
  970.               <td class="main"><?php echo TEXT_COMMENT_OPTION_VALUE_DELETE_ALL; ?></td>
  971.             </tr>
  972. <!-- eof: delete all option values to products with current Option Name -->
  973.  
  974.             </table>
  975.           </td>
  976.         </tr>
  977.    </table>
  978. <!-- DELETE - additional features eof //-->
  979.  
  980.  
  981.   <table>
  982.     <tr>
  983.       <td colspan="4"><?php echo zen_draw_separator('pixel_trans.gif', '100%', '5'); ?></td>
  984.     </tr>
  985.   </table>
  986.  
  987.  
  988. <!-- COPY - additional features //-->
  989.     <table border="2" width="75%" cellspacing="0" cellpadding="0" align="center">
  990.       <tr>
  991.         <td width="100%">
  992.             <table width="100%" border="0" cellspacing="0" cellpadding="2">
  993.  
  994. <!-- bof: copy all option values to another Option Name -->
  995.             <tr>
  996.               <td class="main"><?php echo TEXT_OPTION_VALUE_COPY_ALL; ?></td>
  997.             </tr>
  998.             <tr>
  999.               <td class="main"><?php echo TEXT_INFO_OPTION_VALUE_COPY_ALL; ?></td>
  1000.             </tr>
  1001.             <tr class="dataTableHeadingRow">
  1002.               <td><table border="0" cellspacing="0" cellpadding="2">
  1003.                 <tr class="dataTableHeadingRow">
  1004.                   <form name="quick_jump" method="post" action="<?php echo zen_href_link(FILENAME_OPTIONS_NAME_MANAGER, 'action=copy_options_values' . '&option_order_by=' . $option_order_by, 'NONSSL'); ?>"><?php echo zen_draw_hidden_field('securityToken', $_SESSION['securityToken']); ?>
  1005.                   <td class="dataTableHeadingContent"><?php echo TEXT_SELECT_OPTION_FROM; ?><br /><select name="options_id_from">
  1006. <?php
  1007.         $options_values_from = $db->Execute("select * from " . TABLE_PRODUCTS_OPTIONS . " where language_id = '" . (int)$_SESSION['languages_id'] . "' and products_options_name !='' and products_options_type !='" . (int)PRODUCTS_OPTIONS_TYPE_TEXT . "' and products_options_type !='" . (int)PRODUCTS_OPTIONS_TYPE_FILE . "' order by products_options_name");
  1008.         while(!$options_values_from->EOF) {
  1009.             echo "\n" . '<option name="' . $options_values_from->fields['products_options_name'] . '" value="' . $options_values_from->fields['products_options_id'] . '">' . $options_values_from->fields['products_options_name'] . '</option>';
  1010.             $options_values_from->MoveNext();
  1011.         }
  1012. ?>
  1013.                   </select>&nbsp;</td>
  1014.                   <td class="dataTableHeadingContent" width="75">&nbsp;</td>
  1015.                   <td class="dataTableHeadingContent"><?php echo TEXT_SELECT_OPTION_TO; ?><br /><select name="options_id_to">
  1016. <?php
  1017.         $options_values_to = $db->Execute("select * from " . TABLE_PRODUCTS_OPTIONS . " where language_id = '" .(int) $_SESSION['languages_id'] . "' and products_options_name !='' and products_options_type !='" . (int)PRODUCTS_OPTIONS_TYPE_TEXT . "' and products_options_type !='" . (int)PRODUCTS_OPTIONS_TYPE_FILE . "' order by products_options_name");
  1018.         while(!$options_values_to->EOF) {
  1019.             echo "\n" . '<option name="' . $options_values_to->fields['products_options_name'] . '" value="' . $options_values_to->fields['products_options_id'] . '">' . $options_values_to->fields['products_options_name'] . '</option>';
  1020.             $options_values_to->MoveNext();
  1021.         }
  1022. ?>
  1023.                   </select>&nbsp;</td>
  1024.  
  1025.                   <td align="right" class="dataTableHeadingContent">&nbsp;<?php echo zen_image_submit('button_update.gif', IMAGE_UPDATE); ?>&nbsp;</td>
  1026.                   </form>
  1027.                 </tr>
  1028.               </table></td>
  1029.             </tr>
  1030. <!-- eof: copy all option values to another Option Name -->
  1031.             </table>
  1032. <?php } // show copier features ?>
  1033.           </td>
  1034.         </tr>
  1035.    </table>
  1036.  
  1037.  
  1038.  
  1039.  
  1040. <!-- body_text_eof //-->
  1041. <!-- footer //-->
  1042. <?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
  1043. <!-- footer_eof //-->
  1044. </body>
  1045. </html>
  1046. <?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>
  1047.