📄 general.php
字号:
'system' => $system,
'kernel' => $kernel,
'host' => $host,
'ip' => gethostbyname($host),
'uptime' => (DISPLAY_SERVER_UPTIME == 'true' ? @exec('uptime') : ''),
'http_server' => $_SERVER['SERVER_SOFTWARE'],
'php' => PHP_VERSION,
'zend' => (function_exists('zend_version') ? zend_version() : ''),
'db_server' => DB_SERVER,
'db_ip' => gethostbyname(DB_SERVER),
'db_version' => 'MySQL ' . (function_exists('mysql_get_server_info') ? mysql_get_server_info() : ''),
'db_date' => zen_datetime_short($db_query->fields['datetime']));
}
function zen_generate_category_path($id, $from = 'category', $categories_array = '', $index = 0) {
global $db;
if (!is_array($categories_array)) $categories_array = array();
if ($from == 'product') {
$categories = $db->Execute("select categories_id
from " . TABLE_PRODUCTS_TO_CATEGORIES . "
where products_id = '" . (int)$id . "'");
while (!$categories->EOF) {
if ($categories->fields['categories_id'] == '0') {
$categories_array[$index][] = array('id' => '0', 'text' => TEXT_TOP);
} else {
$category = $db->Execute("select cd.categories_name, c.parent_id
from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd
where c.categories_id = '" . (int)$categories->fields['categories_id'] . "'
and c.categories_id = cd.categories_id
and cd.language_id = '" . (int)$_SESSION['languages_id'] . "'");
$categories_array[$index][] = array('id' => $categories->fields['categories_id'], 'text' => $category->fields['categories_name']);
if ( (zen_not_null($category->fields['parent_id'])) && ($category->fields['parent_id'] != '0') ) $categories_array = zen_generate_category_path($category->fields['parent_id'], 'category', $categories_array, $index);
$categories_array[$index] = array_reverse($categories_array[$index]);
}
$index++;
$categories->MoveNext();
}
} elseif ($from == 'category') {
$category = $db->Execute("select cd.categories_name, c.parent_id
from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd
where c.categories_id = '" . (int)$id . "'
and c.categories_id = cd.categories_id
and cd.language_id = '" . (int)$_SESSION['languages_id'] . "'");
$categories_array[$index][] = array('id' => $id, 'text' => $category->fields['categories_name']);
if ( (zen_not_null($category->fields['parent_id'])) && ($category->fields['parent_id'] != '0') ) $categories_array = zen_generate_category_path($category->fields['parent_id'], 'category', $categories_array, $index);
}
return $categories_array;
}
function zen_output_generated_category_path($id, $from = 'category') {
$calculated_category_path_string = '';
$calculated_category_path = zen_generate_category_path($id, $from);
for ($i=0, $n=sizeof($calculated_category_path); $i<$n; $i++) {
for ($j=0, $k=sizeof($calculated_category_path[$i]); $j<$k; $j++) {
// $calculated_category_path_string .= $calculated_category_path[$i][$j]['text'] . ' > ';
$calculated_category_path_string = $calculated_category_path[$i][$j]['text'] . ' > ' . $calculated_category_path_string;
}
$calculated_category_path_string = substr($calculated_category_path_string, 0, -16) . '<br>';
}
$calculated_category_path_string = substr($calculated_category_path_string, 0, -4);
if (strlen($calculated_category_path_string) < 1) $calculated_category_path_string = TEXT_TOP;
return $calculated_category_path_string;
}
function zen_get_generated_category_path_ids($id, $from = 'category') {
global $db;
$calculated_category_path_string = '';
$calculated_category_path = zen_generate_category_path($id, $from);
for ($i=0, $n=sizeof($calculated_category_path); $i<$n; $i++) {
for ($j=0, $k=sizeof($calculated_category_path[$i]); $j<$k; $j++) {
$calculated_category_path_string .= $calculated_category_path[$i][$j]['id'] . '_';
}
$calculated_category_path_string = substr($calculated_category_path_string, 0, -1) . '<br>';
}
$calculated_category_path_string = substr($calculated_category_path_string, 0, -4);
if (strlen($calculated_category_path_string) < 1) $calculated_category_path_string = TEXT_TOP;
return $calculated_category_path_string;
}
function zen_remove_category($category_id) {
global $db;
$category_image = $db->Execute("select categories_image
from " . TABLE_CATEGORIES . "
where categories_id = '" . (int)$category_id . "'");
$duplicate_image = $db->Execute("select count(*) as total
from " . TABLE_CATEGORIES . "
where categories_image = '" .
zen_db_input($category_image->fields['categories_image']) . "'");
if ($duplicate_image->fields['total'] < 2) {
if (file_exists(DIR_FS_CATALOG_IMAGES . $category_image->fields['categories_image'])) {
@unlink(DIR_FS_CATALOG_IMAGES . $category_image->fields['categories_image']);
}
}
$db->Execute("delete from " . TABLE_CATEGORIES . "
where categories_id = '" . (int)$category_id . "'");
$db->Execute("delete from " . TABLE_CATEGORIES_DESCRIPTION . "
where categories_id = '" . (int)$category_id . "'");
$db->Execute("delete from " . TABLE_PRODUCTS_TO_CATEGORIES . "
where categories_id = '" . (int)$category_id . "'");
}
function zen_remove_product($product_id, $ptc = 'true') {
global $db;
$product_image = $db->Execute("select products_image
from " . TABLE_PRODUCTS . "
where products_id = '" . (int)$product_id . "'");
$duplicate_image = $db->Execute("select count(*) as total
from " . TABLE_PRODUCTS . "
where products_image = '" . zen_db_input($product_image->fields['products_image']) . "'");
if ($duplicate_image->fields['total'] < 2 and $product_image->fields['products_image'] != '') {
$products_image = $product_image->fields['products_image'];
$products_image_extension = substr($products_image, strrpos($products_image, '.'));
$products_image_base = ereg_replace($products_image_extension, '', $products_image);
$filename_medium = 'medium/' . $products_image_base . IMAGE_SUFFIX_MEDIUM . $products_image_extension;
$filename_large = 'large/' . $products_image_base . IMAGE_SUFFIX_LARGE . $products_image_extension;
if (file_exists(DIR_FS_CATALOG_IMAGES . $product_image->fields['products_image'])) {
@unlink(DIR_FS_CATALOG_IMAGES . $product_image->fields['products_image']);
}
if (file_exists(DIR_FS_CATALOG_IMAGES . $filename_medium)) {
@unlink(DIR_FS_CATALOG_IMAGES . $filename_medium);
}
if (file_exists(DIR_FS_CATALOG_IMAGES . $filename_large)) {
@unlink(DIR_FS_CATALOG_IMAGES . $filename_large);
}
}
$db->Execute("delete from " . TABLE_SPECIALS . "
where products_id = '" . (int)$product_id . "'");
$db->Execute("delete from " . TABLE_PRODUCTS . "
where products_id = '" . (int)$product_id . "'");
// if ($ptc == 'true') {
$db->Execute("delete from " . TABLE_PRODUCTS_TO_CATEGORIES . "
where products_id = '" . (int)$product_id . "'");
// }
$db->Execute("delete from " . TABLE_PRODUCTS_DESCRIPTION . "
where products_id = '" . (int)$product_id . "'");
$db->Execute("delete from " . TABLE_META_TAGS_PRODUCTS_DESCRIPTION . "
where products_id = '" . (int)$product_id . "'");
zen_products_attributes_download_delete($product_id);
$db->Execute("delete from " . TABLE_PRODUCTS_ATTRIBUTES . "
where products_id = '" . (int)$product_id . "'");
$db->Execute("delete from " . TABLE_CUSTOMERS_BASKET . "
where products_id = '" . (int)$product_id . "'");
$db->Execute("delete from " . TABLE_CUSTOMERS_BASKET_ATTRIBUTES . "
where products_id = '" . (int)$product_id . "'");
$product_reviews = $db->Execute("select reviews_id
from " . TABLE_REVIEWS . "
where products_id = '" . (int)$product_id . "'");
while (!$product_reviews->EOF) {
$db->Execute("delete from " . TABLE_REVIEWS_DESCRIPTION . "
where reviews_id = '" . (int)$product_reviews->fields['reviews_id'] . "'");
$product_reviews->MoveNext();
}
$db->Execute("delete from " . TABLE_REVIEWS . "
where products_id = '" . (int)$product_id . "'");
$db->Execute("delete from " . TABLE_FEATURED . "
where products_id = '" . (int)$product_id . "'");
$db->Execute("delete from " . TABLE_PRODUCTS_DISCOUNT_QUANTITY . "
where products_id = '" . (int)$product_id . "'");
}
function zen_products_attributes_download_delete($product_id) {
global $db;
// remove downloads if they exist
$remove_downloads= $db->Execute("select products_attributes_id from " . TABLE_PRODUCTS_ATTRIBUTES . " where products_id= '" . $product_id . "'");
while (!$remove_downloads->EOF) {
$db->Execute("delete from " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " where products_attributes_id= '" . $remove_downloads->fields['products_attributes_id'] . "'");
$remove_downloads->MoveNext();
}
}
function zen_remove_order($order_id, $restock = false) {
global $db;
if ($restock == 'on') {
$order = $db->Execute("select products_id, products_quantity
from " . TABLE_ORDERS_PRODUCTS . "
where orders_id = '" . (int)$order_id . "'");
while (!$order->EOF) {
$db->Execute("update " . TABLE_PRODUCTS . "
set products_quantity = products_quantity + " . $order->fields['products_quantity'] . ", products_ordered = products_ordered - " . $order->fields['products_quantity'] . " where products_id = '" . (int)$order->fields['products_id'] . "'");
$order->MoveNext();
}
}
$db->Execute("delete from " . TABLE_ORDERS . " where orders_id = '" . (int)$order_id . "'");
$db->Execute("delete from " . TABLE_ORDERS_PRODUCTS . "
where orders_id = '" . (int)$order_id . "'");
$db->Execute("delete from " . TABLE_ORDERS_PRODUCTS_ATTRIBUTES . "
where orders_id = '" . (int)$order_id . "'");
$db->Execute("delete from " . TABLE_ORDERS_STATUS_HISTORY . "
where orders_id = '" . (int)$order_id . "'");
$db->Execute("delete from " . TABLE_ORDERS_TOTAL . "
where orders_id = '" . (int)$order_id . "'");
}
function zen_get_file_permissions($mode) {
// determine type
if ( ($mode & 0xC000) == 0xC000) { // unix domain socket
$type = 's';
} elseif ( ($mode & 0x4000) == 0x4000) { // directory
$type = 'd';
} elseif ( ($mode & 0xA000) == 0xA000) { // symbolic link
$type = 'l';
} elseif ( ($mode & 0x8000) == 0x8000) { // regular file
$type = '-';
} elseif ( ($mode & 0x6000) == 0x6000) { //bBlock special file
$type = 'b';
} elseif ( ($mode & 0x2000) == 0x2000) { // character special file
$type = 'c';
} elseif ( ($mode & 0x1000) == 0x1000) { // named pipe
$type = 'p';
} else { // unknown
$type = '?';
}
// determine permissions
$owner['read'] = ($mode & 00400) ? 'r' : '-';
$owner['write'] = ($mode & 00200) ? 'w' : '-';
$owner['execute'] = ($mode & 00100) ? 'x' : '-';
$group['read'] = ($mode & 00040) ? 'r' : '-';
$group['write'] = ($mode & 00020) ? 'w' : '-';
$group['execute'] = ($mode & 00010) ? 'x' : '-';
$world['read'] = ($mode & 00004) ? 'r' : '-';
$world['write'] = ($mode & 00002) ? 'w' : '-';
$world['execute'] = ($mode & 00001) ? 'x' : '-';
// adjust for SUID, SGID and sticky bit
if ($mode & 0x800 ) $owner['execute'] = ($owner['execute'] == 'x') ? 's' : 'S';
if ($mode & 0x400 ) $group['execute'] = ($group['execute'] == 'x') ? 's' : 'S';
if ($mode & 0x200 ) $world['execute'] = ($world['execute'] == 'x') ? 't' : 'T';
return $type .
$owner['read'] . $owner['write'] . $owner['execute'] .
$group['read'] . $group['write'] . $group['execute'] .
$world['read'] . $world['write'] . $world['execute'];
}
function zen_remove($source) {
global $messageStack, $zen_remove_error;
if (isset($zen_remove_error)) $zen_remove_error = false;
if (is_dir($source)) {
$dir = dir($source);
while ($file = $dir->read()) {
if ( ($file != '.') && ($file != '..') ) {
if (is_writeable($source . '/' . $file)) {
zen_remove($source . '/' . $file);
} else {
$messageStack->add(sprintf(ERROR_FILE_NOT_REMOVEABLE, $source . '/' . $file), 'error');
$zen_remove_error = true;
}
}
}
$dir->close();
if (is_writeable($source)) {
rmdir($source);
} else {
$messageStack->add(sprintf(ERROR_DIRECTORY_NOT_REMOVEABLE, $source), 'error');
$zen_remove_error = true;
}
} else {
if (is_writeable($source)) {
unlink($source);
} else {
$messageStack->add(sprintf(ERROR_FILE_NOT_REMOVEABLE, $source), 'error');
$zen_remove_error = true;
}
}
}
////
// Output the tax percentage with optional padded decimals
function zen_display_tax_value($value, $padding = TAX_DECIMAL_PLACES) {
if (strpos($value, '.')) {
$loop = true;
while ($loop) {
if (substr($value, -1) == '0') {
$value = substr($value, 0, -1);
} else {
$loop = false;
if (substr($value, -1) == '.') {
$value = substr($value, 0, -1);
}
}
}
}
if ($padding > 0) {
if ($decimal_pos = strpos($value, '.')) {
$decimals = strlen(substr($value, ($decimal_pos+1)));
for ($i=$decimals; $i<$padding; $i++) {
$value .= '0';
}
} else {
$value .= '.';
for ($i=0; $i<$padding; $i++) {
$value .= '0';
}
}
}
return $value;
}
function zen_get_tax_class_title($tax_class_id) {
global $db;
if ($tax_class_id == '0') {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -