📄 lib_main.php
字号:
$where = isset($filter->is_delete) && $filter->is_delete == '1' ?
' WHERE is_delete = 1 ' : ' WHERE is_delete = 0 ';
$where .= (isset($filter->real_goods) && ($filter->real_goods > -1)) ? ' AND is_real = ' . intval($filter->real_goods) : '';
$where .= isset($filter->cat_id) && $filter->cat_id > 0 ? ' AND ' . get_children($filter->cat_id) : '';
$where .= isset($filter->brand_id) && $filter->brand_id > 0 ? " AND brand_id = '" . $filter->brand_id . "'" : '';
$where .= isset($filter->intro_type) && $filter->intro_type != '0' ? ' AND ' . $filter->intro_type . " = '1'" : '';
$where .= isset($filter->intro_type) && $filter->intro_type == 'is_promote' ?
" AND promote_start_date <= '$time' AND promote_end_date >= '$time' " : '';
$where .= isset($filter->keyword) && trim($filter->keyword) != '' ?
" AND (goods_name LIKE '%" . mysql_like_quote($filter->keyword) . "%' OR goods_sn LIKE '%" . mysql_like_quote($filter->keyword) . "%' OR goods_id LIKE '%" . mysql_like_quote($filter->keyword) . "%') " : '';
$where .= isset($filter->in_ids) ? ' AND goods_id ' . db_create_in($filter->in_ids) : '';
$where .= isset($filter->exclude) ? ' AND goods_id NOT ' . db_create_in($filter->exclude) : '';
$where .= isset($filter->stock_warning) ? ' AND goods_number <= warn_number' : '';
return $where;
}
/**
* 获取地区列表的函数。
*
* @access public
* @param int $region_id 上级地区id
* @return void
*/
function area_list($region_id)
{
$area_arr = array();
$sql = 'SELECT * FROM ' . $GLOBALS['ecs']->table('region').
" WHERE parent_id = '$region_id' ORDER BY region_id";
$res = $GLOBALS['db']->query($sql);
while ($row = $GLOBALS['db']->fetchRow($res))
{
$row['type'] = ($row['region_type'] == 0) ? $GLOBALS['_LANG']['country'] : '';
$row['type'] .= ($row['region_type'] == 1) ? $GLOBALS['_LANG']['province'] : '';
$row['type'] .= ($row['region_type'] == 2) ? $GLOBALS['_LANG']['city'] : '';
$row['type'] .= ($row['region_type'] == 3) ? $GLOBALS['_LANG']['cantonal'] : '';
$area_arr[] = $row;
}
return $area_arr;
}
/**
* 取得图表颜色
*
* @access public
* @param integer $n 颜色顺序
* @return void
*/
function chart_color($n)
{
/* 随机显示颜色代码 */
$arr = array('33FF66', 'FF6600', '3399FF', '009966', 'CC3399', 'FFCC33', '6699CC', 'CC3366', '33FF66', 'FF6600', '3399FF');
if ($n > 8)
{
$n = $n % 8;
}
return $arr[$n];
}
/**
* 获得商品类型的列表
*
* @access public
* @param integer $selected 选定的类型编号
* @return string
*/
function goods_type_list($selected)
{
$sql = 'SELECT cat_id, cat_name FROM ' . $GLOBALS['ecs']->table('goods_type') . ' WHERE enabled = 1';
$res = $GLOBALS['db']->query($sql);
$lst = '';
while ($row = $GLOBALS['db']->fetchRow($res))
{
$lst .= "<option value='$row[cat_id]'";
$lst .= ($selected == $row['cat_id']) ? ' selected="true"' : '';
$lst .= '>' . htmlspecialchars($row['cat_name']). '</option>';
}
return $lst;
}
/**
* 取得货到付款和非货到付款的支付方式
* @return array('is_cod' => '', 'is_not_cod' => '')
*/
function get_pay_ids()
{
$ids = array('is_cod' => '0', 'is_not_cod' => '0');
$sql = 'SELECT pay_id, is_cod FROM ' .$GLOBALS['ecs']->table('payment'). ' WHERE enabled = 1';
$res = $GLOBALS['db']->query($sql);
while ($row = $GLOBALS['db']->fetchRow($res))
{
if ($row['is_cod'])
{
$ids['is_cod'] .= ',' . $row['pay_id'];
}
else
{
$ids['is_not_cod'] .= ',' . $row['pay_id'];
}
}
return $ids;
}
/**
* 清空表数据
* @param string $table_name 表名称
*/
function truncate_table($table_name)
{
$sql = 'TRUNCATE TABLE ' .$GLOBALS['ecs']->table($table_name);
return $GLOBALS['db']->query($sql);
}
/**
* 返回字符集列表数组
*
* @access public
* @param
*
* @return void
*/
function get_charset_list()
{
return array(
'UTF8' => 'UTF-8',
'GB2312' => 'GB2312/GBK',
'BIG5' => 'BIG5',
);
}
/**
* 创建一个JSON格式的数据
*
* @access public
* @param string $content
* @param integer $error
* @param string $message
* @param array $append
* @return void
*/
function make_json_response($content='', $error="0", $message='', $append=array())
{
include_once(ROOT_PATH . 'includes/cls_json.php');
$json = new JSON;
$res = array('error' => $error, 'message' => $message, 'content' => $content);
if (!empty($append))
{
foreach ($append AS $key => $val)
{
$res[$key] = $val;
}
}
$val = $json->encode($res);
exit($val);
}
/**
*
*
* @access public
* @param
* @return void
*/
function make_json_result($content, $message='', $append=array())
{
make_json_response($content, 0, $message, $append);
}
/**
* 创建一个JSON格式的错误信息
*
* @access public
* @param string $msg
* @return void
*/
function make_json_error($msg)
{
make_json_response('', 1, $msg);
}
/**
* 根据过滤条件获得排序的标记
*
* @access public
* @param array $filter
* @return array
*/
function sort_flag($filter)
{
$flag['tag'] = 'sort_' . preg_replace('/^.*\./', '', $filter['sort_by']);
$flag['img'] = '<img src="images/' . ($filter['sort_order'] == "DESC" ? 'sort_desc.gif' : 'sort_asc.gif') . '"/>';
return $flag;
}
/**
* 分页的信息加入条件的数组
*
* @access public
* @return array
*/
function page_and_size($filter)
{
if (isset($_REQUEST['page_size']) && intval($_REQUEST['page_size']) > 0)
{
$filter['page_size'] = intval($_REQUEST['page_size']);
}
elseif (isset($_COOKIE['ECSCP']['page_size']) && intval($_COOKIE['ECSCP']['page_size']) > 0)
{
$filter['page_size'] = intval($_COOKIE['ECSCP']['page_size']);
}
else
{
$filter['page_size'] = 15;
}
/* 每页显示 */
$filter['page'] = (empty($_REQUEST['page']) || intval($_REQUEST['page']) <= 0) ? 1 : intval($_REQUEST['page']);
/* page 总数 */
$filter['page_count'] = (!empty($filter['record_count']) && $filter['record_count'] > 0) ? ceil($filter['record_count'] / $filter['page_size']) : 1;
/* 边界处理 */
if ($filter['page'] > $filter['page_count'])
{
$filter['page'] = $filter['page_count'];
}
$filter['start'] = ($filter['page'] - 1) * $filter['page_size'];
return $filter;
}
/**
* 将含有单位的数字转成字节
*
* @access public
* @param string $val 带单位的数字
*
* @return int $val
*/
function return_bytes($val)
{
$val = trim($val);
$last = strtolower($val{strlen($val)-1});
switch($last)
{
case 'g':
$val *= 1024;
case 'm':
$val *= 1024;
case 'k':
$val *= 1024;
}
return $val;
}
/**
* 获得指定的商品类型下所有的属性分组
*
* @param integer $cat_id 商品类型ID
*
* @return array
*/
function get_attr_groups($cat_id)
{
$sql = "SELECT attr_group FROM " . $GLOBALS['ecs']->table('goods_type') . " WHERE cat_id='$cat_id'";
$grp = str_replace("\r", '', $GLOBALS['db']->getOne($sql));
if ($grp)
{
return explode("\n", $grp);
}
else
{
return array();
}
}
/**
* 生成链接后缀
*/
function list_link_postfix()
{
return 'uselastfilter=1';
}
/**
* 保存过滤条件
* @param array $filter 过滤条件
* @param string $sql 查询语句
* @param string $param_str 参数字符串,由list函数的参数组成
*/
function set_filter($filter, $sql, $param_str = '')
{
$filterfile = basename(PHP_SELF, '.php');
if ($param_str)
{
$filterfile .= $param_str;
}
setcookie('ECSCP[lastfilterfile]', sprintf('%X', crc32($filterfile)), time() + 600);
setcookie('ECSCP[lastfilter]', urlencode(serialize($filter)), time() + 600);
setcookie('ECSCP[lastfiltersql]', urlencode($sql), time() + 600);
}
/**
* 取得上次的过滤条件
* @param string $param_str 参数字符串,由list函数的参数组成
* @return 如果有,返回array('filter' => $filter, 'sql' => $sql);否则返回false
*/
function get_filter($param_str = '')
{
$filterfile = basename(PHP_SELF, '.php');
if ($param_str)
{
$filterfile .= $param_str;
}
if (isset($_GET['uselastfilter']) && isset($_COOKIE['ECSCP']['lastfilterfile'])
&& $_COOKIE['ECSCP']['lastfilterfile'] == sprintf('%X', crc32($filterfile)))
{
return array(
'filter' => unserialize(urldecode($_COOKIE['ECSCP']['lastfilter'])),
'sql' => urldecode($_COOKIE['ECSCP']['lastfiltersql'])
);
}
else
{
return false;
}
}
/**
* URL过滤
* @param string $url 参数字符串,一个urld地址,对url地址进行校正
* @return 返回校正过的url;
*/
function sanitize_url($url , $check = 'http://')
{
if (strpos( $url, $check ) === false)
{
$url = $check . $url;
}
return $url;
}
/**
* 检查分类是否已经存在
*
* @param string $cat_name 分类名称
* @param integer $parent_cat 上级分类
* @param integer $exclude 排除的分类ID
*
* @return boolean
*/
function cat_exists($cat_name, $parent_cat, $exclude = 0)
{
$sql = "SELECT COUNT(*) FROM " .$GLOBALS['ecs']->table('category').
" WHERE parent_id = '$parent_cat' AND cat_name = '$cat_name' AND cat_id<>'$exclude'";
return ($GLOBALS['db']->getOne($sql) > 0) ? true : false;
}
function brand_exists($brand_name)
{
$sql = "SELECT COUNT(*) FROM " .$GLOBALS['ecs']->table('brand').
" WHERE brand_name = '" . $brand_name . "'";
return ($GLOBALS['db']->getOne($sql) > 0) ? true : false;
}
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -