$value_name = zen_db_prepare_input($value_name_array[$languages[$i]['id']]); $db->Execute("update " . TABLE_PRODUCTS_OPTIONS_VALUES . "\n set products_options_values_name = '" . zen_db_input($value_name) . "', products_options_values_sort_order = '" . (int) $products_options_values_sort_order . "'\n where products_options_values_id = '" . zen_db_input($value_id) . "'\n and language_id = '" . (int) $languages[$i]['id'] . "'"); } $db->Execute("update " . TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS . "\n set products_options_id = '" . (int) $option_id . "'\n where products_options_values_id = '" . (int) $value_id . "'"); // alert if possible duplicate $duplicate_option_values = ''; for ($i = 0, $n = sizeof($languages); $i < $n; $i++) { $value_name = zen_db_prepare_input($value_name_array[$languages[$i]['id']]); if (!empty($value_name)) { $check = $db->Execute("select pov.products_options_values_id, pov.products_options_values_name, pov.language_id\n from " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov\n left join " . TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS . " pov2po on pov.products_options_values_id = pov2po.products_options_values_id\n where pov.language_id= '" . $languages[$i]['id'] . "'\n and pov.products_options_values_name='" . zen_db_input($value_name) . "'\n and pov2po.products_options_id ='" . (int) $option_id . "'"); if ($check->RecordCount() > 1) { while (!$check->EOF) { $check_dups .= ' - ' . $check->fields['products_options_values_id']; $check->MoveNext(); } $duplicate_option_values .= ' <b>' . strtoupper(zen_get_language_name($languages[$i]['id'])) . '</b> : ' . $check_dups; } } } if (!empty($duplicate_option_values)) { $messageStack->add_session(ATTRIBUTE_POSSIBLE_OPTIONS_VALUE_WARNING_DUPLICATE . ' ' . $duplicate_option_values, 'caution'); } zen_redirect(zen_href_link(FILENAME_OPTIONS_VALUES_MANAGER, $_SESSION['page_info'])); break; case 'delete_value': // demo active test if (zen_admin_demo()) { $_GET['action'] = ''; $messageStack->add_session(ERROR_ADMIN_DEMO, 'caution'); zen_redirect(zen_href_link(FILENAME_OPTIONS_VALUES_MANAGER, $_SESSION['page_info'])); }
if ($check_type->fields['count'] == 0) { $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, '" . $_POST['option_id'] . "', '" . PRODUCTS_OPTIONS_VALUES_TEXT_ID . "')"); } break; default: // if switched from file or text remove 0 $db->Execute("delete from " . TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS . " where products_options_id='" . $_POST['option_id'] . "' and products_options_values_id = '" . PRODUCTS_OPTIONS_VALUES_TEXT_ID . "'"); break; } // alert if possible duplicate $duplicate_option = ''; for ($i = 0, $n = sizeof($languages); $i < $n; $i++) { $option_name = zen_db_prepare_input($option_name_array[$languages[$i]['id']]); $check = $db->Execute("select products_options_name\n from " . TABLE_PRODUCTS_OPTIONS . "\n where language_id= '" . $languages[$i]['id'] . "'\n and products_options_name='" . zen_db_input($option_name) . "'"); if ($check->RecordCount() > 1 and !empty($option_name)) { $duplicate_option .= ' <b>' . strtoupper(zen_get_language_name($languages[$i]['id'])) . '</b> : ' . $option_name; } } if (!empty($duplicate_option)) { $messageStack->add_session(ATTRIBUTE_POSSIBLE_OPTIONS_NAME_WARNING_DUPLICATE . ' ' . $option_id . ' - ' . $duplicate_option, 'caution'); } zen_redirect(zen_href_link(FILENAME_OPTIONS_NAME_MANAGER, $_SESSION['page_info'] . '&option_order_by=' . $option_order_by)); break; case 'delete_option': // demo active test if (zen_admin_demo()) { $_GET['action'] = ''; $messageStack->add_session(ERROR_ADMIN_DEMO, 'caution'); zen_redirect(zen_href_link(FILENAME_OPTIONS_NAME_MANAGER, $_SESSION['page_info'] . '&option_order_by=' . $option_order_by)); } $option_id = zen_db_prepare_input($_GET['option_id']);
$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, '" . $_POST['option_id'] . "', '" . PRODUCTS_OPTIONS_VALUES_TEXT_ID . "')"); } break; default: // if switched from file or text remove 0 $db->Execute("delete from " . TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS . " where products_options_id='" . $_POST['option_id'] . "' and products_options_values_id = '" . PRODUCTS_OPTIONS_VALUES_TEXT_ID . "'"); break; } // alert if possible duplicate $duplicate_option = ''; for ($i = 0, $n = sizeof($languages); $i < $n; $i++) { $option_name = zen_db_prepare_input($option_name_array[$languages[$i]['id']]); $check = $db->Execute("select products_options_name\n from " . TABLE_PRODUCTS_OPTIONS . "\n where language_id= '" . $languages[$i]['id'] . "'\n and products_options_name='" . zen_db_input($option_name) . "'"); if ($check->RecordCount() > 1 and !empty($option_name)) { // BOM by zen-cart.cn $duplicate_option .= ' <b>' . GBcase(zen_get_language_name($languages[$i]['id']), "upper") . '</b> : ' . $option_name; // EOM by zen-cart.cn } } if (!empty($duplicate_option)) { $messageStack->add_session(ATTRIBUTE_POSSIBLE_OPTIONS_NAME_WARNING_DUPLICATE . ' ' . $option_id . ' - ' . $duplicate_option, 'caution'); } zen_redirect(zen_href_link(FILENAME_OPTIONS_NAME_MANAGER, $_SESSION['page_info'] . '&option_order_by=' . $option_order_by)); break; case 'delete_option': // demo active test if (zen_admin_demo()) { $_GET['action'] = ''; $messageStack->add_session(ERROR_ADMIN_DEMO, 'caution'); zen_redirect(zen_href_link(FILENAME_OPTIONS_NAME_MANAGER, $_SESSION['page_info'] . '&option_order_by=' . $option_order_by)); }
function confirm() { global $_GET, $_POST, $db; $audience = array(); $customers_languages_id = $_SESSION['languages_id']; if (isset($_GET['global']) && $_GET['global'] == 'true') { if (isset($_GET['languages_id']) && $_GET['languages_id'] > 0) { $customers_languages_id = (int) $_GET['languages_id']; } $products = $db->Execute("select distinct pn.customers_id\r\n from " . TABLE_PRODUCTS_NOTIFICATIONS . " pn\r\n , " . TABLE_CUSTOMERS . " c\r\n where pn.customers_id = c.customers_id\r\n and c.customers_languages_id = '" . $customers_languages_id . "'"); while (!$products->EOF) { $audience[$products->fields['customers_id']] = '1'; $products->MoveNext(); } $customers = $db->Execute("select ci.customers_info_id\r\n from " . TABLE_CUSTOMERS_INFO . " ci\r\n , " . TABLE_CUSTOMERS . " c\r\n where global_product_notifications = '1'\r\n and ci.customers_info_id = c.customers_id\r\n and c.customers_languages_id = '" . $customers_languages_id . "'"); while (!$customers->EOF) { $audience[$customers->fields['customers_info_id']] = '1'; $customers->MoveNext(); } } else { $chosen = $_POST['chosen']; if (isset($_POST['languages_id']) && $_POST['languages_id'] > 0) { $customers_languages_id = (int) $_POST['languages_id']; } $ids = implode(',', $chosen); $products = $db->Execute("select distinct pn.customers_id\r\n from " . TABLE_PRODUCTS_NOTIFICATIONS . " pn\r\n , " . TABLE_CUSTOMERS . " c\r\n where pn.products_id in (" . $ids . ")\r\n and pn.customers_id = c.customers_id\r\n and c.customers_languages_id = '" . $customers_languages_id . "'"); while (!$products->EOF) { $audience[$products->fields['customers_id']] = '1'; $products->MoveNext(); } $customers = $db->Execute("select ci.customers_info_id\r\n from " . TABLE_CUSTOMERS_INFO . " ci\r\n , " . TABLE_CUSTOMERS . " c\r\n where global_product_notifications = '1'\r\n and ci.customers_info_id = c.customers_id\r\n and c.customers_languages_id = '" . $customers_languages_id . "'"); while (!$customers->EOF) { $audience[$customers->fields['customers_info_id']] = '1'; $customers->MoveNext(); } } $confirm_string = '<table border="0" cellspacing="0" cellpadding="2">' . "\n" . ' <tr>' . "\n" . ' <td class="main"><b>' . TEXT_CUSTOMERS_LANGUAGE . zen_get_language_name($customers_languages_id) . '</b><br /><font color="#ff0000"><b>' . sprintf(TEXT_COUNT_CUSTOMERS, sizeof($audience)) . '</b></font></td>' . "\n" . ' </tr>' . "\n" . ' <tr>' . "\n" . ' <td>' . zen_draw_separator('pixel_trans.gif', '1', '10') . '</td>' . "\n" . ' </tr>' . "\n" . ' <tr>' . "\n" . ' <td class="main"><b>' . $this->title . '</b></td>' . "\n" . ' </tr>' . "\n" . ' <tr>' . "\n" . ' <td>' . zen_draw_separator('pixel_trans.gif', '1', '10') . '<hr /></td>' . "\n" . ' </tr>' . "\n" . ' <tr>' . "\n" . ' <td class="main">' . nl2br($this->content_html) . '</td>' . "\n" . ' </tr>' . "\n" . ' <tr>' . "\n" . ' <td><hr>' . zen_draw_separator('pixel_trans.gif', '1', '10') . '</td>' . "\n" . ' </tr>' . "\n" . ' <tr>' . "\n" . ' <td class="main"><tt>' . nl2br($this->content) . '</tt><hr /></td>' . "\n" . ' </tr>' . "\n" . ' <tr>' . "\n" . ' <td>' . zen_draw_separator('pixel_trans.gif', '1', '10') . '</td>' . "\n" . ' </tr>' . "\n" . ' <tr>' . zen_draw_form('confirm', FILENAME_NEWSLETTERS, 'page=' . $_GET['page'] . '&nID=' . $_GET['nID'] . '&action=confirm_send') . "\n" . ' <td align="right">'; if (sizeof($audience) > 0) { if (isset($_GET['global']) && $_GET['global'] == 'true') { $confirm_string .= zen_draw_hidden_field('global', 'true'); } else { for ($i = 0, $n = sizeof($chosen); $i < $n; $i++) { $confirm_string .= zen_draw_hidden_field('chosen[]', $chosen[$i]); } } $confirm_string .= zen_draw_hidden_field('customer_language', zen_get_language_code($customers_languages_id)); $confirm_string .= zen_draw_hidden_field('admin_language', zen_get_language_code($_SESSION['languages_id'])); $confirm_string .= zen_image_submit('button_send.gif', IMAGE_SEND) . ' '; } $confirm_string .= '<a href="' . zen_href_link(FILENAME_NEWSLETTERS, 'page=' . $_GET['page'] . '&nID=' . $_GET['nID'] . '&action=send') . '">' . zen_image_button('button_back.gif', IMAGE_BACK) . '</a> <a href="' . zen_href_link(FILENAME_NEWSLETTERS, 'page=' . $_GET['page'] . '&nID=' . $_GET['nID']) . '">' . zen_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a></td>' . "\n" . ' </form></tr>' . "\n" . '</table>'; return $confirm_string; }
$db->Execute("update " . TABLE_PRODUCTS_OPTIONS_VALUES . "\n set products_options_values_name = '" . zen_db_input($value_name) . "', products_options_values_sort_order = '" . (int) $products_options_values_sort_order . "'\n where products_options_values_id = '" . zen_db_input($value_id) . "'\n and language_id = '" . (int) $languages[$i]['id'] . "'"); } $db->Execute("update " . TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS . "\n set products_options_id = '" . (int) $option_id . "'\n where products_options_values_id = '" . (int) $value_id . "'"); // alert if possible duplicate $duplicate_option_values = ''; for ($i = 0, $n = sizeof($languages); $i < $n; $i++) { $value_name = zen_db_prepare_input($value_name_array[$languages[$i]['id']]); if (!empty($value_name)) { $check = $db->Execute("select pov.products_options_values_id, pov.products_options_values_name, pov.language_id\n from " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov\n left join " . TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS . " pov2po on pov.products_options_values_id = pov2po.products_options_values_id\n where pov.language_id= '" . $languages[$i]['id'] . "'\n and pov.products_options_values_name='" . zen_db_input($value_name) . "'\n and pov2po.products_options_id ='" . (int) $option_id . "'"); if ($check->RecordCount() > 1) { while (!$check->EOF) { $check_dups .= ' - ' . $check->fields['products_options_values_id']; $check->MoveNext(); } // BOM by zen-cart.cn $duplicate_option_values .= ' <b>' . GBcase(zen_get_language_name($languages[$i]['id']), "upper") . '</b> : ' . $check_dups; // EOM by zen-cart.cn } } } if (!empty($duplicate_option_values)) { $messageStack->add_session(ATTRIBUTE_POSSIBLE_OPTIONS_VALUE_WARNING_DUPLICATE . ' ' . $duplicate_option_values, 'caution'); } zen_redirect(zen_href_link(FILENAME_OPTIONS_VALUES_MANAGER, $_SESSION['page_info'])); break; case 'delete_value': // demo active test if (zen_admin_demo()) { $_GET['action'] = ''; $messageStack->add_session(ERROR_ADMIN_DEMO, 'caution'); zen_redirect(zen_href_link(FILENAME_OPTIONS_VALUES_MANAGER, $_SESSION['page_info']));
function get_audience_sql_query_with_language($selected_entry, $query_category = 'email') { // This is used to take the query_name selected in the drop-down menu or singular customer email address and // generate the SQL Select query to be used to build the list of email addresses to be sent to // it only returns a query name and query string (SQL SELECT statement) // the query string is then used in a $db->Execute() command for later parsing and emailing. global $db; $query_name = ''; $queries_list = $db->Execute("select query_name, query_string from " . TABLE_QUERY_BUILDER . " " . "where query_category like '%" . $query_category . "%'"); // "where query_category = '" . $query_category . "'"); list($selected_entry, $language) = spliti(',', $selected_entry); $languages_query_string = ''; if ($language != '') { list($keyname, $customers_languages_id) = spliti(':', $language); $customer_language = zen_get_language_code($customers_languages_id); $languages_query_string = "customers_languages_id = '" . (int) $customers_languages_id . "'"; if ($customer_language == DEFAULT_LANGUAGE) { $languages_query_string = "(" . $languages_query_string . " or customers_languages_id = '0')"; } } while (!$queries_list->EOF) { if ($selected_entry == $queries_list->fields['query_name']) { $query_string = $queries_list->fields['query_string']; $query_name = $queries_list->fields['query_name']; if (preg_match('/TABLE_CUSTOMERS/', $query_string) && $languages_query_string != '') { $query_string = preg_replace('/where/i', 'where ' . $languages_query_string . ' and', $query_string); $query_name .= ' (' . zen_get_language_name($customers_languages_id) . ')'; } if (preg_match('/TABLE_CUSTOMERS c/', $query_string) && $languages_query_string != '') { $query_string = preg_replace('/customers_languages_id/', 'c.customers_languages_id', $query_string); } $query_string = parsed_query_string($query_string); //echo 'GET_AUD_EM_ADDR_QRY:<br />query_name='.$query_name.'<br />query_string='.$query_string; } $queries_list->MoveNext(); } //if no match found against queries listed in database, then $selected_entry must be an email address if ($query_name == '' && $query_category == 'email') { $cust_email_address = zen_db_prepare_input($selected_entry); $query_name = $cust_email_address; $query_string = "select customers_firstname, customers_lastname, customers_email_address, customers_languages_id\n from " . TABLE_CUSTOMERS . "\n where customers_email_address = '" . zen_db_input($cust_email_address) . "'"; $mail = $db->Execute($query_string); $customers_languages_id = $mail->fields['customers_languages_id']; $query_name .= ' (' . zen_get_language_name($customers_languages_id) . ')'; } //send back a 1-row array containing the query_name and the SQL query_string return array('query_name' => $query_name, 'query_string' => $query_string, 'customers_languages_id' => $customers_languages_id); }
return $directory_array; } $select_lang_array = array(); $languages = zen_get_languages(); if (sizeof($languages) > 1) { for ($i = 0, $n = sizeof($languages); $i < $n; $i++) { $test_directory = DIR_WS_LANGUAGES . $languages[$i]['directory']; $test_file = DIR_WS_LANGUAGES . $languages[$i]['directory'] . '.php'; if (file_exists($test_file) and file_exists($test_directory)) { $select_lang_array[] = array('id' => $languages[$i]['code'], 'text' => $languages[$i]['name']); } } } $selected_lang = isset($_GET['selected_lang']) ? $_GET['selected_lang'] : zen_get_language_code($_SESSION['languages_id']); $selected_lang_id = zen_get_languages_id_by_code($selected_lang); $edit_language = isset($selected_lang_id) ? zen_get_language_name($selected_lang_id) : $_SESSION['language']; $action = isset($_GET['action']) ? $_GET['action'] : ''; $za_who = $_GET['za_lookup']; if ($action == 'new_page') { $page = $_GET['define_it']; $check_directory = array(); $check_directory[] = DIR_FS_CATALOG . DIR_WS_LANGUAGES . $edit_language . '/html_includes/'; $directory_files = zen_display_files(); $za_lookup = array(); for ($i = 0, $n = sizeof($directory_files); $i < $n; $i++) { $za_lookup[] = array('id' => $i, 'text' => $directory_files[$i]); } // This will cause it to look for 'define_conditions.php' $_GET['filename'] = $za_lookup[$page]['text']; $_GET['box_name'] = BOX_TOOLS_DEFINE_CONDITIONS; }