JS绑定事件和移除事件的处理方法

addEventListener()与removeEventListener()用于处理指定和删除事件处理程序操作。所有的DOM节点中都包含这两种方法,并且它们都接受3个参数:要处理的事件名、作为事件处理程序的函数和一个布尔值。最有这个布尔值参数是true,表示在捕获阶段调用事件处理程序;如果是false,表示在冒泡阶段调用事件处理程序。

Read More

如何去除ecshop标题和网站底部的Powered by ECShop

这个问题困扰大家很久了,感觉Powered by ECShop出现在网站里边不爽,想方设法无法去除。今天在下专门把解决方法贴出来,希望能够方便大家!

注:我们使用ecshop的产品,建议把网站底部的Powered by ECShop留着吧,尊重一下ecshop开发兄弟们的劳动成果嘛!

一.去掉标题栏的’Powered by ECShop’

打开includes/lib_main.php文件;

找到:$page_title = $GLOBALS[‘_CFG’][‘shop_title’] . ‘ - ‘ . ‘Powered by ECShop’;

改为:$page_title = $GLOBALS[‘_CFG’][‘shop_title’];

Read More

ecshop商品详情页面属性价格显示其对应价格

ecshop默认的商品属性显示的是加多少钱

第一步:在lib_goods.php中找到

function get_goods_properties 方法

将下面的get_goods_properties方法覆盖掉原来的get_goods_properties方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/**
* 获得商品的属性和规格
*
* @access public
* @param integer $goods_id
* @return array
*/
//yyy修改start
function get_goods_properties($goods_id , $shop_price=0)
//yyy修改end
{
/* 对属性进行重新排序和分组 */
$sql = "SELECT attr_group ".
"FROM " . $GLOBALS['ecs']->table('goods_type') . " AS gt, " . $GLOBALS['ecs']->table('goods') . " AS g ".
"WHERE g.goods_id='$goods_id' AND gt.cat_id=g.goods_type";
$grp = $GLOBALS['db']->getOne($sql);

if (!empty($grp))
{
$groups = explode("\n", strtr($grp, "\r", ''));
}

/* 获得商品的规格 */
$sql = "SELECT a.attr_id, a.attr_name, a.attr_group, a.is_linked, a.attr_type, ".
"g.goods_attr_id, g.attr_value, g.attr_price " .
'FROM ' . $GLOBALS['ecs']->table('goods_attr') . ' AS g ' .
'LEFT JOIN ' . $GLOBALS['ecs']->table('attribute') . ' AS a ON a.attr_id = g.attr_id ' .
"WHERE g.goods_id = '$goods_id' " .
'ORDER BY a.sort_order, g.attr_price, g.goods_attr_id';
$res = $GLOBALS['db']->getAll($sql);

$arr['pro'] = array(); // 属性
$arr['spe'] = array(); // 规格
$arr['lnk'] = array(); // 关联的属性

foreach ($res AS $row)
{
$row['attr_value'] = str_replace("\n", '<br />', $row['attr_value']);

if ($row['attr_type'] == 0)
{
$group = (isset($groups[$row['attr_group']])) ? $groups[$row['attr_group']] : $GLOBALS['_LANG']['goods_attr'];

$arr['pro'][$group][$row['attr_id']]['name'] = $row['attr_name'];
$arr['pro'][$group][$row['attr_id']]['value'] = $row['attr_value'];
}
else
{
$arr['spe'][$row['attr_id']]['attr_type'] = $row['attr_type'];
$arr['spe'][$row['attr_id']]['name'] = $row['attr_name'];
//yyy修改start
$arr['spe'][$row['attr_id']]['values'][] = array(
'label' => $row['attr_value'],
'price' => $row['attr_price'],
'format_price' => price_format(abs($row['attr_price']) + $shop_price, false),'id' => $row['goods_attr_id']);//yyy修改end
}

if ($row['is_linked'] == 1)
{
/* 如果该属性需要关联,先保存下来 */
$arr['lnk'][$row['attr_id']]['name'] = $row['attr_name'];
$arr['lnk'][$row['attr_id']]['value'] = $row['attr_value'];
}
}

return $arr;
}

Read More

实现统计某个月内每天新增用户数的方法

现在有一个需求:管理员选择某一个月份,然后显示这个月每天的新增用户数。

首先获得管理员选择的日期,然后获得本月的起始时间戳和结束时间戳,在通过和member表中的addtime字段进行比较,从而获得当月新增的用户列表,这个是不难实现的。

那么要怎么获得每日的新增用户数量呢?如果要用select count(1) 这样的语句配合addtime>=begin_time+86400 and addtime<=begintime+172800这样的条件来查询就太恐怖了,先不说操作复杂,而且执行一次操作就要查询30或31次,这样肯定不行。

可以换一个思路,既然我们已经能够获得当月新增的用户列表members,那么每个用户的addtime我们也可以知道了,此时可以对整个members列表进行遍历,把日期作为键名,用户数作为键值创建一个新数组,如果某条记录的addtime已经在数组中存在的话就加1,不存在的话就以这个addtime创建一个新元素。

Read More