📄 functions_lookups.php
字号:
<?php
/**
* functions_lookups.php
* Lookup Functions for various Zen Cart activities such as countries, prices, products, product types, etc
*
* @package functions
* @copyright Copyright 2003-2005 Zen Cart Development Team
* @copyright Portions Copyright 2003 osCommerce
* @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
* @version $Id: functions_lookups.php 2774 2006-01-03 03:07:08Z ajeh $
*/
/**
* Returns an array with countries
*
* @param int If set limits to a single country
* @param boolean If true adds the iso codes to the array
*/
function zen_get_countries($countries_id = '', $with_iso_codes = false) {
global $db;
$countries_array = array();
if (zen_not_null($countries_id)) {
if ($with_iso_codes == true) {
$countries = "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 = $db->Execute($countries);
$countries_array = array('countries_name' => $countries_values->fields['countries_name'],
'countries_iso_code_2' => $countries_values->fields['countries_iso_code_2'],
'countries_iso_code_3' => $countries_values->fields['countries_iso_code_3']);
} else {
$countries = "select countries_name
from " . TABLE_COUNTRIES . "
where countries_id = '" . (int)$countries_id . "'";
$countries_values = $db->Execute($countries);
$countries_array = array('countries_name' => $countries_values->fields['countries_name']);
}
} else {
$countries = "select countries_id, countries_name
from " . TABLE_COUNTRIES . "
order by countries_name";
$countries_values = $db->Execute($countries);
while (!$countries_values->EOF) {
$countries_array[] = array('countries_id' => $countries_values->fields['countries_id'],
'countries_name' => $countries_values->fields['countries_name']);
$countries_values->MoveNext();
}
}
return $countries_array;
}
/*
* Alias function to zen_get_countries()
*/
function zen_get_country_name($country_id) {
$country_array = zen_get_countries($country_id);
return $country_array['countries_name'];
}
/**
* Alias function to zen_get_countries, which also returns the countries iso codes
*
* @param int If set limits to a single country
*/
function zen_get_countries_with_iso_codes($countries_id) {
return zen_get_countries($countries_id, true);
}
/*
* Return the zone (State/Province) name
* TABLES: zones
*/
function zen_get_zone_name($country_id, $zone_id, $default_zone) {
global $db;
$zone_query = "select zone_name
from " . TABLE_ZONES . "
where zone_country_id = '" . (int)$country_id . "'
and zone_id = '" . (int)$zone_id . "'";
$zone = $db->Execute($zone_query);
if ($zone->RecordCount()) {
return $zone->fields['zone_name'];
} else {
return $default_zone;
}
}
/*
* Returns the zone (State/Province) code
* TABLES: zones
*/
function zen_get_zone_code($country_id, $zone_id, $default_zone) {
global $db;
$zone_query = "select zone_code
from " . TABLE_ZONES . "
where zone_country_id = '" . (int)$country_id . "'
and zone_id = '" . (int)$zone_id . "'";
$zone = $db->Execute($zone_query);
if ($zone->RecordCount() > 0) {
return $zone->fields['zone_code'];
} else {
return $default_zone;
}
}
/*
* validate products_id
*/
function zen_products_id_valid($valid_id) {
global $db;
$check_valid = $db->Execute("select p.products_id
from " . TABLE_PRODUCTS . " p
where products_id='" . $valid_id . "' limit 1");
if ($check_valid->EOF) {
return false;
} else {
return true;
}
}
/**
* Return a product's name.
*
* @param int The product id of the product who's name we want
* @param int The language id to use. If this is not set then the current language is used
*/
function zen_get_products_name($product_id, $language = '') {
global $db;
if (empty($language)) $language = $_SESSION['languages_id'];
$product_query = "select products_name
from " . TABLE_PRODUCTS_DESCRIPTION . "
where products_id = '" . (int)$product_id . "'
and language_id = '" . (int)$language . "'";
$product = $db->Execute($product_query);
return $product->fields['products_name'];
}
/**
* Return a product's stock count.
*
* @param int The product id of the product who's stock we want
*/
function zen_get_products_stock($products_id) {
global $db;
$products_id = zen_get_prid($products_id);
$stock_query = "select products_quantity
from " . TABLE_PRODUCTS . "
where products_id = '" . (int)$products_id . "'";
$stock_values = $db->Execute($stock_query);
return $stock_values->fields['products_quantity'];
}
/**
* Check if the required stock is available.
*
* If insufficent stock is available return an out of stock message
*
* @param int The product id of the product whos's stock is to be checked
* @param int Is this amount of stock available
*
* @TODO naughty html in a function
*/
function zen_check_stock($products_id, $products_quantity) {
$stock_left = zen_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;
}
/*
* List manufacturers (returned in an array)
*/
function zen_get_manufacturers($manufacturers_array = '') {
global $db;
if (!is_array($manufacturers_array)) $manufacturers_array = array();
$manufacturers_query = "select manufacturers_id, manufacturers_name
from " . TABLE_MANUFACTURERS . " order by manufacturers_name";
$manufacturers = $db->Execute($manufacturers_query);
while (!$manufacturers->EOF) {
$manufacturers_array[] = array('id' => $manufacturers->fields['manufacturers_id'], 'text' => $manufacturers->fields['manufacturers_name']);
$manufacturers->MoveNext();
}
return $manufacturers_array;
}
/*
* Check if product has attributes
*/
function zen_has_product_attributes($products_id, $not_readonly = 'true') {
global $db;
if (PRODUCTS_OPTIONS_TYPE_READONLY_IGNORED == '1' and $not_readonly == 'true') {
// don't include READONLY attributes to determin if attributes must be selected to add to cart
$attributes_query = "select pa.products_attributes_id
from " . TABLE_PRODUCTS_ATTRIBUTES . " pa left join " . TABLE_PRODUCTS_OPTIONS . " po on pa.options_id = po.products_options_id
where pa.products_id = '" . (int)$products_id . "' and po.products_options_type != '" . PRODUCTS_OPTIONS_TYPE_READONLY . "' limit 1";
} else {
// regardless of READONLY attributes no add to cart buttons
$attributes_query = "select pa.products_attributes_id
from " . TABLE_PRODUCTS_ATTRIBUTES . " pa
where pa.products_id = '" . (int)$products_id . "' limit 1";
}
$attributes = $db->Execute($attributes_query);
if ($attributes->recordCount() > 0 && $attributes->fields['products_attributes_id'] > 0) {
return true;
} else {
return false;
}
}
/*
* Check if product has attributes values
*/
function zen_has_product_attributes_values($products_id) {
global $db;
$attributes_query = "select sum(options_values_price) as total
from " . TABLE_PRODUCTS_ATTRIBUTES . "
where products_id = '" . (int)$products_id . "'";
$attributes = $db->Execute($attributes_query);
if ($attributes->fields['total'] != 0) {
return true;
} else {
return false;
}
}
/*
* Find category name from ID, in indicated language
*/
function zen_get_category_name($category_id, $fn_language_id) {
global $db;
$category_query = "select categories_name
from " . TABLE_CATEGORIES_DESCRIPTION . "
where categories_id = '" . $category_id . "'
and language_id = '" . $fn_language_id . "'";
$category = $db->Execute($category_query);
return $category->fields['categories_name'];
}
/*
* Find category description, from category ID, in given language
*/
function zen_get_category_description($category_id, $fn_language_id) {
global $db;
$category_query = "select categories_description
from " . TABLE_CATEGORIES_DESCRIPTION . "
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -