⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 general.php

📁 asterisk 計費模塊
💻 PHP
📖 第 1 页 / 共 3 页
字号:
<?php/*  $Id: general.php,v 1.231 2003/07/09 01:15:48 hpdl Exp $  osCommerce, Open Source E-Commerce Solutions  http://www.oscommerce.com  Copyright (c) 2003 osCommerce  Released under the GNU General Public License*/////// Stop from parsing any further PHP code  function tep_exit() {   tep_session_close();   exit();  }////// Redirect to another page or site  function tep_redirect($url) {    if ( (strstr($url, "\n") != false) || (strstr($url, "\r") != false) ) {      tep_redirect(tep_href_link(FILENAME_DEFAULT, '', 'NONSSL', false));    }    if ( (ENABLE_SSL == true) && (getenv('HTTPS') == 'on') ) { // We are loading an SSL page      if (substr($url, 0, strlen(HTTP_SERVER)) == HTTP_SERVER) { // NONSSL url        $url = HTTPS_SERVER . substr($url, strlen(HTTP_SERVER)); // Change it to SSL      }    }    header('Location: ' . $url);    tep_exit();  }////// Parse the data used in the html tags to ensure the tags will not break  function tep_parse_input_field_data($data, $parse) {    return strtr(trim($data), $parse);  }  function tep_output_string($string, $translate = false, $protected = false) {    if ($protected == true) {      return htmlspecialchars($string);    } else {      if ($translate == false) {        return tep_parse_input_field_data($string, array('"' => '&quot;'));      } else {        return tep_parse_input_field_data($string, $translate);      }    }  }  function tep_output_string_protected($string) {    return tep_output_string($string, false, true);  }  function tep_sanitize_string($string) {    $string = ereg_replace(' +', ' ', trim($string));    return preg_replace("/[<>]/", '_', $string);  }////// Return a random row from a database query  function tep_random_select($query) {    $random_product = '';    $random_query = tep_db_query($query);    $num_rows = tep_db_num_rows($random_query);    if ($num_rows > 0) {      $random_row = tep_rand(0, ($num_rows - 1));      tep_db_data_seek($random_query, $random_row);      $random_product = tep_db_fetch_array($random_query);    }    return $random_product;  }////// Return a product's name// TABLES: products  function tep_get_products_name($product_id, $language = '') {    global $languages_id;    if (empty($language)) $language = $languages_id;    $product_query = tep_db_query("select products_name from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$product_id . "' and language_id = '" . (int)$language . "'");    $product = tep_db_fetch_array($product_query);    return $product['products_name'];  }////// Return a product's special price (returns nothing if there is no offer)// TABLES: products  function tep_get_products_special_price($product_id) {    $product_query = tep_db_query("select specials_new_products_price from " . TABLE_SPECIALS . " where products_id = '" . (int)$product_id . "' and status");    $product = tep_db_fetch_array($product_query);    return $product['specials_new_products_price'];  }////// Return a product's stock// TABLES: products  function tep_get_products_stock($products_id) {    $products_id = tep_get_prid($products_id);    $stock_query = tep_db_query("select products_quantity from " . TABLE_PRODUCTS . " where products_id = '" . (int)$products_id . "'");    $stock_values = tep_db_fetch_array($stock_query);    return $stock_values['products_quantity'];  }////// Check if the required stock is available// If insufficent stock is available return an out of stock message  function tep_check_stock($products_id, $products_quantity) {    $stock_left = tep_get_products_stock($products_id) - $products_quantity;    $out_of_stock = '';    if ($stock_left < 0) {      $out_of_stock = '<span class="markProductOutOfStock">' . STOCK_MARK_PRODUCT_OUT_OF_STOCK . '</span>';    }    return $out_of_stock;  }////// Break a word in a string if it is longer than a specified length ($len)  function tep_break_string($string, $len, $break_char = '-') {    $l = 0;    $output = '';    for ($i=0, $n=strlen($string); $i<$n; $i++) {      $char = substr($string, $i, 1);      if ($char != ' ') {        $l++;      } else {        $l = 0;      }      if ($l > $len) {        $l = 1;        $output .= $break_char;      }      $output .= $char;    }    return $output;  }////// Return all HTTP GET variables, except those passed as a parameter  function tep_get_all_get_params($exclude_array = '') {    global $_GET;    if (!is_array($exclude_array)) $exclude_array = array();    $get_url = '';    if (is_array($_GET) && (sizeof($_GET) > 0)) {      reset($_GET);      while (list($key, $value) = each($_GET)) {        if ( (strlen($value) > 0) && ($key != tep_session_name()) && ($key != 'error') && (!in_array($key, $exclude_array)) && ($key != 'x') && ($key != 'y') ) {          $get_url .= $key . '=' . rawurlencode(stripslashes($value)) . '&';        }      }    }    return $get_url;  }////// Returns an array with countries// TABLES: countries  function tep_get_countries($countries_id = '', $with_iso_codes = false) {    $countries_array = array();    if (tep_not_null($countries_id)) {      if ($with_iso_codes == true) {        $countries = tep_db_query("select countries_name, countries_iso_code_2, countries_iso_code_3 from " . TABLE_COUNTRIES . " where countries_id = '" . (int)$countries_id . "' order by countries_name");        $countries_values = tep_db_fetch_array($countries);        $countries_array = array('countries_name' => $countries_values['countries_name'],                                 'countries_iso_code_2' => $countries_values['countries_iso_code_2'],                                 'countries_iso_code_3' => $countries_values['countries_iso_code_3']);      } else {        $countries = tep_db_query("select countries_name from " . TABLE_COUNTRIES . " where countries_id = '" . (int)$countries_id . "'");        $countries_values = tep_db_fetch_array($countries);        $countries_array = array('countries_name' => $countries_values['countries_name']);      }    } else {      $countries = tep_db_query("select countries_id, countries_name from " . TABLE_COUNTRIES . " order by countries_name");      while ($countries_values = tep_db_fetch_array($countries)) {        $countries_array[] = array('countries_id' => $countries_values['countries_id'],                                   'countries_name' => $countries_values['countries_name']);      }    }    return $countries_array;  }////// Alias function to tep_get_countries, which also returns the countries iso codes  function tep_get_countries_with_iso_codes($countries_id) {    return tep_get_countries($countries_id, true);  }////// Generate a path to categories  function tep_get_path($current_category_id = '') {    global $cPath_array;    if (tep_not_null($current_category_id)) {      $cp_size = sizeof($cPath_array);      if ($cp_size == 0) {        $cPath_new = $current_category_id;      } else {        $cPath_new = '';        $last_category_query = tep_db_query("select parent_id from " . TABLE_CATEGORIES . " where categories_id = '" . (int)$cPath_array[($cp_size-1)] . "'");        $last_category = tep_db_fetch_array($last_category_query);        $current_category_query = tep_db_query("select parent_id from " . TABLE_CATEGORIES . " where categories_id = '" . (int)$current_category_id . "'");        $current_category = tep_db_fetch_array($current_category_query);        if ($last_category['parent_id'] == $current_category['parent_id']) {          for ($i=0; $i<($cp_size-1); $i++) {            $cPath_new .= '_' . $cPath_array[$i];          }        } else {          for ($i=0; $i<$cp_size; $i++) {            $cPath_new .= '_' . $cPath_array[$i];          }        }        $cPath_new .= '_' . $current_category_id;        if (substr($cPath_new, 0, 1) == '_') {          $cPath_new = substr($cPath_new, 1);        }      }    } else {      $cPath_new = implode('_', $cPath_array);    }    return 'cPath=' . $cPath_new;  }////// Returns the clients browser  function tep_browser_detect($component) {    global $HTTP_USER_AGENT;    return stristr($HTTP_USER_AGENT, $component);  }////// Alias function to tep_get_countries()  function tep_get_country_name($country_id) {    $country_array = tep_get_countries($country_id);    return $country_array['countries_name'];  }////// Returns the zone (State/Province) name// TABLES: zones  function tep_get_zone_name($country_id, $zone_id, $default_zone) {    $zone_query = tep_db_query("select zone_name from " . TABLE_ZONES . " where zone_country_id = '" . (int)$country_id . "' and zone_id = '" . (int)$zone_id . "'");    if (tep_db_num_rows($zone_query)) {      $zone = tep_db_fetch_array($zone_query);      return $zone['zone_name'];    } else {      return $default_zone;    }  }////// Returns the zone (State/Province) code// TABLES: zones  function tep_get_zone_code($country_id, $zone_id, $default_zone) {    $zone_query = tep_db_query("select zone_code from " . TABLE_ZONES . " where zone_country_id = '" . (int)$country_id . "' and zone_id = '" . (int)$zone_id . "'");    if (tep_db_num_rows($zone_query)) {      $zone = tep_db_fetch_array($zone_query);      return $zone['zone_code'];    } else {      return $default_zone;    }  }////// Wrapper function for round()  function tep_round($number, $precision) {    if (strpos($number, '.') && (strlen(substr($number, strpos($number, '.')+1)) > $precision)) {      $number = substr($number, 0, strpos($number, '.') + 1 + $precision + 1);      if (substr($number, -1) >= 5) {        if ($precision > 1) {          $number = substr($number, 0, -1) + ('0.' . str_repeat(0, $precision-1) . '1');        } elseif ($precision == 1) {          $number = substr($number, 0, -1) + 0.1;        } else {          $number = substr($number, 0, -1) + 1;        }      } else {        $number = substr($number, 0, -1);      }    }    return $number;  }////// Returns the tax rate for a zone / class// TABLES: tax_rates, zones_to_geo_zones  function tep_get_tax_rate($class_id, $country_id = -1, $zone_id = -1) {    global $customer_zone_id, $customer_country_id;    if ( ($country_id == -1) && ($zone_id == -1) ) {      if (!tep_session_is_registered('customer_id')) {        $country_id = STORE_COUNTRY;        $zone_id = STORE_ZONE;      } else {        $country_id = $customer_country_id;        $zone_id = $customer_zone_id;      }    }    $tax_query = tep_db_query("select sum(tax_rate) as tax_rate from " . TABLE_TAX_RATES . " tr left join " . TABLE_ZONES_TO_GEO_ZONES . " za on (tr.tax_zone_id = za.geo_zone_id) left join " . TABLE_GEO_ZONES . " tz on (tz.geo_zone_id = tr.tax_zone_id) where (za.zone_country_id is null or za.zone_country_id = '0' or za.zone_country_id = '" . (int)$country_id . "') and (za.zone_id is null or za.zone_id = '0' or za.zone_id = '" . (int)$zone_id . "') and tr.tax_class_id = '" . (int)$class_id . "' group by tr.tax_priority");    if (tep_db_num_rows($tax_query)) {      $tax_multiplier = 1.0;      while ($tax = tep_db_fetch_array($tax_query)) {        $tax_multiplier *= 1.0 + ($tax['tax_rate'] / 100);      }      return ($tax_multiplier - 1.0) * 100;    } else {      return 0;    }  }////// Return the tax description for a zone / class// TABLES: tax_rates;  function tep_get_tax_description($class_id, $country_id, $zone_id) {    $tax_query = tep_db_query("select tax_description from " . TABLE_TAX_RATES . " tr left join " . TABLE_ZONES_TO_GEO_ZONES . " za on (tr.tax_zone_id = za.geo_zone_id) left join " . TABLE_GEO_ZONES . " tz on (tz.geo_zone_id = tr.tax_zone_id) where (za.zone_country_id is null or za.zone_country_id = '0' or za.zone_country_id = '" . (int)$country_id . "') and (za.zone_id is null or za.zone_id = '0' or za.zone_id = '" . (int)$zone_id . "') and tr.tax_class_id = '" . (int)$class_id . "' order by tr.tax_priority");    if (tep_db_num_rows($tax_query)) {      $tax_description = '';      while ($tax = tep_db_fetch_array($tax_query)) {        $tax_description .= $tax['tax_description'] . ' + ';      }      $tax_description = substr($tax_description, 0, -3);      return $tax_description;    } else {      return TEXT_UNKNOWN_TAX_RATE;    }  }////// Add tax to a products price  function tep_add_tax($price, $tax) {    global $currencies;    if ( (DISPLAY_PRICE_WITH_TAX == 'true') && ($tax > 0) ) {      return tep_round($price, $currencies->currencies[DEFAULT_CURRENCY]['decimal_places']) + tep_calculate_tax($price, $tax);    } else {      return tep_round($price, $currencies->currencies[DEFAULT_CURRENCY]['decimal_places']);    }  }// Calculates Tax rounding the result  function tep_calculate_tax($price, $tax) {    global $currencies;    return tep_round($price * $tax / 100, $currencies->currencies[DEFAULT_CURRENCY]['decimal_places']);  }////// Return the number of products in a category// TABLES: products, products_to_categories, categories  function tep_count_products_in_category($category_id, $include_inactive = false) {    $products_count = 0;    if ($include_inactive == true) {      $products_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_id = p2c.products_id and p2c.categories_id = '" . (int)$category_id . "'");    } else {      $products_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_id = p2c.products_id and p.products_status = '1' and p2c.categories_id = '" . (int)$category_id . "'");    }    $products = tep_db_fetch_array($products_query);    $products_count += $products['total'];    $child_categories_query = tep_db_query("select categories_id from " . TABLE_CATEGORIES . " where parent_id = '" . (int)$category_id . "'");    if (tep_db_num_rows($child_categories_query)) {      while ($child_categories = tep_db_fetch_array($child_categories_query)) {        $products_count += tep_count_products_in_category($child_categories['categories_id'], $include_inactive);      }    }    return $products_count;  }////// Return true if the category has subcategories// TABLES: categories  function tep_has_category_subcategories($category_id) {    $child_category_query = tep_db_query("select count(*) as count from " . TABLE_CATEGORIES . " where parent_id = '" . (int)$category_id . "'");    $child_category = tep_db_fetch_array($child_category_query);    if ($child_category['count'] > 0) {      return true;    } else {      return false;    }  }////// Returns the address_format_id for the given country// TABLES: countries;  function tep_get_address_format_id($country_id) {    $address_format_query = tep_db_query("select address_format_id as format_id from " . TABLE_COUNTRIES . " where countries_id = '" . (int)$country_id . "'");    if (tep_db_num_rows($address_format_query)) {      $address_format = tep_db_fetch_array($address_format_query);      return $address_format['format_id'];    } else {      return '1';    }  }////// Return a formatted address// TABLES: address_format  function tep_address_format($address_format_id, $address, $html, $boln, $eoln) {    $address_format_query = tep_db_query("select address_format as format from " . TABLE_ADDRESS_FORMAT . " where address_format_id = '" . (int)$address_format_id . "'");    $address_format = tep_db_fetch_array($address_format_query);    $company = tep_output_string_protected($address['company']);    if (isset($address['firstname']) && tep_not_null($address['firstname'])) {      $firstname = tep_output_string_protected($address['firstname']);      $lastname = tep_output_string_protected($address['lastname']);    } elseif (isset($address['name']) && tep_not_null($address['name'])) {      $firstname = tep_output_string_protected($address['name']);      $lastname = '';    } else {      $firstname = '';      $lastname = '';    }    $street = tep_output_string_protected($address['street_address']);    $suburb = tep_output_string_protected($address['suburb']);    $city = tep_output_string_protected($address['city']);    $state = tep_output_string_protected($address['state']);    if (isset($address['country_id']) && tep_not_null($address['country_id'])) {      $country = tep_get_country_name($address['country_id']);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -