functions_lookups.php
来自「Zen Cart是真正的电子商务艺术」· PHP 代码 · 共 939 行 · 第 1/3 页
PHP
939 行
}
/*
* Look up whether the given product ID is allowed to be added to cart, according to product-type switches set in Admin
*/
function zen_get_products_allow_add_to_cart($lookup) {
global $db;
$sql = "select products_type from " . TABLE_PRODUCTS . " where products_id='" . (int)$lookup . "'";
$type_lookup = $db->Execute($sql);
$sql = "select allow_add_to_cart from " . TABLE_PRODUCT_TYPES . " where type_id = '" . (int)$type_lookup->fields['products_type'] . "'";
$allow_add_to_cart = $db->Execute($sql);
return $allow_add_to_cart->fields['allow_add_to_cart'];
}
/*
* Look up SHOW_XXX_INFO switch for product ID and product type
*/
function zen_get_show_product_switch_name($lookup, $field, $suffix= 'SHOW_', $prefix= '_INFO', $field_prefix= '_', $field_suffix='') {
global $db;
$sql = "select products_type from " . TABLE_PRODUCTS . " where products_id='" . (int)$lookup . "'";
$type_lookup = $db->Execute($sql);
$sql = "select type_handler from " . TABLE_PRODUCT_TYPES . " where type_id = '" . (int)$type_lookup->fields['products_type'] . "'";
$show_key = $db->Execute($sql);
// modified by zen-cart.cn
$zv_key = GBcase($suffix . $show_key->fields['type_handler'] . $prefix . $field_prefix . $field . $field_suffix,"upper");
return $zv_key;
}
/*
* Look up SHOW_XXX_INFO switch for product ID and product type
*/
function zen_get_show_product_switch($lookup, $field, $suffix= 'SHOW_', $prefix= '_INFO', $field_prefix= '_', $field_suffix='') {
global $db;
$sql = "select products_type from " . TABLE_PRODUCTS . " where products_id='" . $lookup . "'";
$type_lookup = $db->Execute($sql);
$sql = "select type_handler from " . TABLE_PRODUCT_TYPES . " where type_id = '" . $type_lookup->fields['products_type'] . "'";
$show_key = $db->Execute($sql);
// modified by zen-cart.cn
$zv_key = GBcase($suffix . $show_key->fields['type_handler'] . $prefix . $field_prefix . $field . $field_suffix,"upper");
$sql = "select configuration_key, configuration_value from " . TABLE_PRODUCT_TYPE_LAYOUT . " where configuration_key='" . $zv_key . "'";
$zv_key_value = $db->Execute($sql);
if ($zv_key_value->RecordCount() > 0) {
return $zv_key_value->fields['configuration_value'];
} else {
$sql = "select configuration_key, configuration_value from " . TABLE_CONFIGURATION . " where configuration_key='" . $zv_key . "'";
$zv_key_value = $db->Execute($sql);
if ($zv_key_value->RecordCount() > 0) {
return $zv_key_value->fields['configuration_value'];
} else {
return false;
}
}
}
/*
* Look up whether a product is always free shipping
*/
function zen_get_product_is_always_free_shipping($lookup) {
global $db;
$sql = "select p.product_is_always_free_shipping from " . TABLE_PRODUCTS . " p where p.products_id='" . (int)$lookup . "'";
$look_up = $db->Execute($sql);
if ($look_up->fields['product_is_always_free_shipping'] == '1') {
return true;
} else {
return false;
}
}
/*
* stop regular behavior based on customer/store settings
* Used to disable various activities if store is in an operating mode that should prevent those activities
*/
function zen_run_normal() {
$zc_run = false;
switch (true) {
case (strstr(EXCLUDE_ADMIN_IP_FOR_MAINTENANCE, $_SERVER['REMOTE_ADDR'])):
// down for maintenance not for ADMIN
$zc_run = true;
break;
case (DOWN_FOR_MAINTENANCE == 'true'):
// down for maintenance
$zc_run = false;
break;
case (STORE_STATUS >= 1):
// showcase no prices
$zc_run = false;
break;
case (CUSTOMERS_APPROVAL == '1' and $_SESSION['customer_id'] == ''):
// customer must be logged in to browse
$zc_run = false;
break;
case (CUSTOMERS_APPROVAL == '2' and $_SESSION['customer_id'] == ''):
// show room only
// customer may browse but no prices
$zc_run = false;
break;
case (CUSTOMERS_APPROVAL == '3'):
// show room only
$zc_run = false;
break;
case (CUSTOMERS_APPROVAL_AUTHORIZATION != '0' and $_SESSION['customer_id'] == ''):
// customer must be logged in to browse
$zc_run = false;
break;
case (CUSTOMERS_APPROVAL_AUTHORIZATION != '0' and $_SESSION['customers_authorization'] > '0'):
// customer must be logged in to browse
$zc_run = false;
break;
default:
// proceed normally
$zc_run = true;
break;
}
return $zc_run;
}
/*
* Look up whether to show prices, based on customer-authorization levels
*/
function zen_check_show_prices() {
if (!(CUSTOMERS_APPROVAL == '2' and $_SESSION['customer_id'] == '') and !((CUSTOMERS_APPROVAL_AUTHORIZATION > 0 and CUSTOMERS_APPROVAL_AUTHORIZATION < 3) and ($_SESSION['customers_authorization'] > '0' or $_SESSION['customer_id'] == '')) and STORE_STATUS != 1) {
return true;
} else {
return false;
}
}
/*
* Return any field from products or products_description table
* Example: zen_products_lookup('3', 'products_date_added');
*/
function zen_products_lookup($product_id, $what_field = 'products_name', $language = '') {
global $db;
if (empty($language)) $language = $_SESSION['languages_id'];
$product_lookup = $db->Execute("select " . $what_field . " as lookup_field
from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd
where p.products_id ='" . (int)$product_id . "'
and pd.language_id = '" . (int)$language . "'");
$return_field = $product_lookup->fields['lookup_field'];
return $return_field;
}
/*
* Return any field from categories or categories_description table
* Example: zen_categories_lookup('10', 'parent_id');
*/
function zen_categories_lookup($categories_id, $what_field = 'categories_name', $language = '') {
global $db;
if (empty($language)) $language = $_SESSION['languages_id'];
$category_lookup = $db->Execute("select " . $what_field . " as lookup_field
from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd
where c.categories_id ='" . (int)$categories_id . "'
and cd.language_id = '" . (int)$language . "'");
$return_field = $category_lookup->fields['lookup_field'];
return $return_field;
}
/*
* Find index_filters directory
* suitable for including template-specific immediate /modules files, such as:
* new_products, products_new_listing, featured_products, featured_products_listing, product_listing, specials_index, upcoming,
* products_all_listing, products_discount_prices, also_purchased_products
*/
function zen_get_index_filters_directory($check_file, $dir_only = 'false') {
global $template_dir;
$zv_filename = $check_file;
if (!strstr($zv_filename, '.php')) $zv_filename .= '.php';
if (file_exists(DIR_WS_INCLUDES . 'index_filters/' . $template_dir . '/' . $zv_filename)) {
$template_dir_select = $template_dir . '/';
} else {
$template_dir_select = '';
}
if (!file_exists(DIR_WS_INCLUDES . 'index_filters/' . $template_dir_select . '/' . $zv_filename)) {
$zv_filename = 'default';
}
if ($dir_only == 'true') {
return 'index_filters/' . $template_dir_select;
} else {
return 'index_filters/' . $template_dir_select . $zv_filename;
}
}
////
// get define of New Products
function zen_get_products_new_timelimit($time_limit = false) {
if ($time_limit == false) {
$time_limit = SHOW_NEW_PRODUCTS_LIMIT;
}
switch (true) {
case ($time_limit == '0'):
$display_limit = '';
break;
case ($time_limit == '1'):
$display_limit = " and date_format(p.products_date_added, '%Y%m') >= date_format(now(), '%Y%m')";
break;
case ($time_limit == '7'):
$display_limit = ' and TO_DAYS(NOW()) - TO_DAYS(p.products_date_added) <= 7';
break;
case ($time_limit == '14'):
$display_limit = ' and TO_DAYS(NOW()) - TO_DAYS(p.products_date_added) <= 14';
break;
case ($time_limit == '30'):
$display_limit = ' and TO_DAYS(NOW()) - TO_DAYS(p.products_date_added) <= 30';
break;
case ($time_limit == '60'):
$display_limit = ' and TO_DAYS(NOW()) - TO_DAYS(p.products_date_added) <= 60';
break;
case ($time_limit == '90'):
$display_limit = ' and TO_DAYS(NOW()) - TO_DAYS(p.products_date_added) <= 90';
break;
case ($time_limit == '120'):
$display_limit = ' and TO_DAYS(NOW()) - TO_DAYS(p.products_date_added) <= 120';
break;
}
return $display_limit;
}
////
// check if Product is set to use downloads
// does not validate download filename
function zen_has_product_attributes_downloads_status($products_id) {
global $db;
if (DOWNLOAD_ENABLED == 'true') {
$download_display_query_raw ="select pa.products_attributes_id, pad.products_attributes_filename
from " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " pad
where pa.products_id='" . (int)$products_id . "'
and pad.products_attributes_id= pa.products_attributes_id";
$download_display = $db->Execute($download_display_query_raw);
if ($download_display->RecordCount() != 0) {
$valid_downloads = false;
} else {
$valid_downloads = true;
}
} else {
$valid_downloads = false;
}
return $valid_downloads;
}
// build date range for new products
function zen_get_new_date_range($time_limit = false) {
if ($time_limit == false) {
$time_limit = SHOW_NEW_PRODUCTS_LIMIT;
}
// 120 days; 24 hours; 60 mins; 60secs
$date_range = time() - ($time_limit * 24 * 60 * 60);
$upcoming_mask_range = time();
$upcoming_mask = date('Ymd', $upcoming_mask_range);
// echo 'Now: '. date('Y-m-d') ."<br />";
// echo $time_limit . ' Days: '. date('Ymd', $date_range) ."<br />";
$zc_new_date = date('Ymd', $date_range);
switch (true) {
case (SHOW_NEW_PRODUCTS_LIMIT == 0):
$new_range = '';
break;
case (SHOW_NEW_PRODUCTS_LIMIT == 1):
$zc_new_date = date('Ym', time()) . '01';
$new_range = ' and p.products_date_added >=' . $zc_new_date;
break;
default:
$new_range = ' and p.products_date_added >=' . $zc_new_date;
}
if (SHOW_NEW_PRODUCTS_UPCOMING_MASKED == 0) {
// do nothing upcoming shows in new
} else {
// do not include upcoming in new
$new_range .= " and (p.products_date_available <=" . $upcoming_mask . " or p.products_date_available IS NULL)";
}
return $new_range;
}
// build date range for upcoming products
function zen_get_upcoming_date_range() {
// 120 days; 24 hours; 60 mins; 60secs
$date_range = time();
$zc_new_date = date('Ymd', $date_range);
// need to check speed on this for larger sites
// $new_range = ' and date_format(p.products_date_available, \'%Y%m%d\') >' . $zc_new_date;
$new_range = ' and p.products_date_available >' . $zc_new_date . '235959';
return $new_range;
}
?>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?