ecshop电子商务系统,在运行的时候,如果你的前台有ecshop新订单了,那么在后台有程序在监视,并且发出提示.首先那段代码非常隐蔽,位于pagefooter.htm模板中。里面有段JS为
{if $enable_order_check eq '0'}
startCheckOrder = function(){}
{/if}
通过admin/js/common.js我们可以发现.他有下面两个函数
function startCheckOrder()
{
checkOrder()
window.setInterval("checkOrder()", NEW_ORDER_INTERVAL);
}
/*
* 检查订单
*/
function checkOrder()
{
var lastCheckOrder = new Date(document.getCookie('ECS_LastCheckOrder'));
var today = new Date();
if (lastCheckOrder == null || today-lastCheckOrder >= NEW_ORDER_INTERVAL)
{
document.setCookie('ECS_LastCheckOrder', today.toGMTString());
try
{
Ajax.call('index.php?is_ajax=1&act=check_order','', checkOrderResponse, 'GET', 'JSON');
}
catch (e) { }
}
}
里面有一句 Ajax.call('index.php?is_ajax=1&act=check_order','', checkOrderResponse, 'GET', 'JSON');他调用了index.php的check_order动作.我们找到index.php中的这段代码
elseif ($_REQUEST['act'] == 'check_order')
{
if (empty($_SESSION['last_check']))
{
$_SESSION['last_check'] = gmtime();
make_json_result('', '', array('new_orders' => 0, 'new_paid' => 0));
}
/* 新订单 */
$sql = 'SELECT COUNT(*) FROM ' . $ecs->table('order_info').
" WHERE add_time >= '$_SESSION[last_check]'";
$arr['new_orders'] = $db->getOne($sql);
/* 新付款的订单 */
$sql = 'SELECT COUNT(*) FROM '.$ecs->table('order_info').
' WHERE pay_time >= ' . $_SESSION['last_check'];
$arr['new_paid'] = $db->getOne($sql);
$_SESSION['last_check'] = gmtime();
if (!(is_numeric($arr['new_orders']) && is_numeric($arr['new_paid'])))
{
make_json_error($db->error());
}
else
{
make_json_result('', '', $arr);
}
}
/* 新订单 */
$sql = 'SELECT COUNT(*) FROM ' . $ecs->table('order_info'). " WHERE add_time >= '$_SESSION[last_check]'"; $arr['new_orders'] = $db->getOne($sql);
这句,就是扫描他的。我们可以随意修改。