$minutenew = intval($_GPC['minute']); $minutenew = $minutenew >= 0 && $minutenew < 60 ? $minutenew : ''; } $data['minute'] = $minutenew; if ($id > 0) { $data['id'] = $cron['cloudid']; $status = cloud_cron_update($data); if (is_error($status)) { message($status['message'], '', 'error'); } $data['id'] = $id; unset($data['cloudid']); pdo_update('core_cron', $data, array('id' => $id, 'uniacid' => $_W['uniacid'])); message('编辑计划任务成功', url('cron/display/list'), 'success'); } else { $status = cloud_cron_create($data); if (is_error($status)) { message($status['message'], '', 'error'); } $data['cloudid'] = $status['cron_id']; pdo_insert('core_cron', $data); message('添加计划任务成功', url('cron/display/list'), 'success'); } } $modules_temp = uni_modules(); $modules['task'] = array('name' => 'task', 'title' => '系统任务'); foreach ($modules_temp as $module) { if (!$module['issystem']) { $modules[$module['name']] = array('name' => $module['name'], 'title' => $module['title']); } }
function cron_add($data) { global $_W; load()->model('cloud'); if (empty($data['uniacid'])) { $data['uniacid'] = $_W['uniacid']; } if (empty($data['name'])) { return error(-1, '任务名称不能为空'); } if (empty($data['filename'])) { return error(-1, '任务脚本不能为空'); } if (empty($data['module'])) { return error(-1, '任务所属模块不能为空'); } if (empty($data['type']) || !in_array($data['type'], array(1, 2))) { return error(-1, '任务的类型不能为空'); } if ($data['type'] == 1 && $data['lastruntime'] <= TIMESTAMP) { return error(-1, '定时任务的执行时间不能小于当前时间'); } else { $data['nextruntime'] = $data['lastruntime']; } $data['day'] = intval($data['weekday']) == -1 ? intval($data['day']) : -1; $data['weekday'] = intval($data['weekday']); $data['hour'] = intval($data['hour']); $data['module'] = trim($data['module']); $data['minute'] = str_replace(',', ',', $data['minute']); if (strpos($data['minute'], ',') !== FALSE) { $minutenew = explode(',', $data['minute']); foreach ($minutenew as $key => $val) { $minutenew[$key] = $val = intval($val); if ($val < 0 || $val > 59) { unset($minutenew[$key]); } } $minutenew = array_slice(array_unique($minutenew), 0, 2); $minutenew = implode("\t", $minutenew); } else { $minutenew = intval($data['minute']); $minutenew = $minutenew >= 0 && $minutenew < 60 ? $minutenew : ''; } $data['minute'] = $minutenew; $data['createtime'] = TIMESTAMP; $data = array_elements(array('uniacid', 'name', 'filename', 'module', 'type', 'status', 'day', 'weekday', 'hour', 'minute', 'status', 'lastruntime', 'nextruntime', 'createtime', 'extra'), $data); $status = cloud_cron_create($data); if (is_error($status)) { return $status; } $data['cloudid'] = $status['cron_id']; pdo_insert('core_cron', $data); return pdo_insertid(); }