issues->get_all(array( 'last_activity' => array('<=', date('Y-m-d 00:00', strtotime('-30 days')) ), 'state' => '0' )); foreach ($issues as $issue) { //send reminder once a month $day_of_issue_last_activity = date('d', strtotime($issue->last_activity)); if ($day_of_issue_last_activity === date('d')) { $issue->mail_notify_issue_inactive(); } } } function send_one_day_task_reminder() { global $model; $tasks = $model->tasks->get_all(array( 'plan_date' => date('Y-m-d', strtotime('+1 day')), 'state' => '0' //only open tasks )); foreach ($tasks as $task) { $task->mail_notify_remind(); } } function send_weekly_message($simulate=true) { global $conf, $auth, $bezlang; $helper = new helper_plugin_bez(); //email => array('user' => array('issues' => array(), 'tasks' => array())) $msg = array(); $output = array(); try { $isso = new Issues(); $tasko = new Tasks(); } catch (Exception $e) { echo $e->getMessage().': '.$e->getFile(); } $issues = $isso->cron_get_unsolved(); foreach ($issues as $issue) { $key = $issue['coordinator']; if (!isset($msg[$key])) $msg[$key] = array('issues' => array(), 'coming_tasks' => array(), 'outdated_tasks' => array()); $msg[$key]['issues'][] = $issue; } $coming_tasks_all = $tasko->cron_get_coming_tasks(); foreach ($coming_tasks_all as $task) { $key = $task['executor']; if (!isset($msg[$key])) $msg[$key] = array('issues' => array(), 'coming_tasks' => array(), 'outdated_tasks' => array()); $msg[$key]['coming_tasks'][] = $task; } $outdated_tasks_all = $tasko->cron_get_outdated_tasks(); foreach ($outdated_tasks_all as $task) { $key = $task['executor']; if (!isset($msg[$key])) $msg[$key] = array('issues' => array(), 'coming_tasks' => array(), 'outdated_tasks' => array()); $msg[$key]['outdated_tasks'][] = $task; } //outdated_tasks, coming_tasks, open_tasks foreach ($msg as $user => $data) { $udata = $auth->getUserData($user); $his_issues = $data['issues']; $outdated_tasks = $data['outdated_tasks']; $coming_tasks = $data['coming_tasks']; if (count($his_issues) + count($outdated_tasks) + count($coming_tasks) == 0) continue; $to = $udata['name'].' <'.$udata['mail'].'>'; ob_start(); include 'tpl/weekly-message.php'; $body = ob_get_clean(); $mailer = new BEZ_Mailer(); $rep = array(); $mailer->setBody('', $rep, NULL, $body, false); $mailer->to($to); $subject = 'Nadchodzące zadania'; $mailer->subject($subject); if ($simulate === false) { $send = $mailer->send(); } $output[] = array($to, $subject, $body, array()); } return $output; }