18d31684bSSzymon Olewniczak<?php 28d31684bSSzymon Olewniczak 3*14a1f0a4SSzymon Olewniczak$action = new action_plugin_bez_base(); 4*14a1f0a4SSzymon Olewniczak$action->createObjects(); 58d31684bSSzymon Olewniczak 68d31684bSSzymon Olewniczakfunction send_inactive_issue() { 7*14a1f0a4SSzymon Olewniczak global $action; 88d31684bSSzymon Olewniczak 9*14a1f0a4SSzymon Olewniczak $threads = $action->get_model()->threadFactory->get_all(array( 1053df74e7SSzymon Olewniczak 'last_activity_date' => array('<=', date('c', strtotime('-26 days'))), 1153df74e7SSzymon Olewniczak 'state' => 'opened' 128d31684bSSzymon Olewniczak )); 138d31684bSSzymon Olewniczak 1453df74e7SSzymon Olewniczak foreach ($threads as $thread) { 158d31684bSSzymon Olewniczak //send reminder once a month 1653df74e7SSzymon Olewniczak $day_of_issue_last_activity = date('d', strtotime($thread->last_activity_date)); 1753df74e7SSzymon Olewniczak if ($day_of_issue_last_activity == date('d')) { 186e6a7f3dSSzymon Olewniczak //send message to all 1953df74e7SSzymon Olewniczak $thread->mail_notify_issue_inactive($thread->get_participants('subscribent')); 208d31684bSSzymon Olewniczak } 218d31684bSSzymon Olewniczak } 228d31684bSSzymon Olewniczak} 238d31684bSSzymon Olewniczak 248d31684bSSzymon Olewniczakfunction send_one_day_task_reminder() { 25*14a1f0a4SSzymon Olewniczak global $action; 268d31684bSSzymon Olewniczak 27*14a1f0a4SSzymon Olewniczak $tasks = $action->get_model()->taskFactory->get_all(array( 288d31684bSSzymon Olewniczak 'plan_date' => date('Y-m-d', strtotime('+1 day')), 2953df74e7SSzymon Olewniczak 'state' => 'opened' 308d31684bSSzymon Olewniczak )); 318d31684bSSzymon Olewniczak 328d31684bSSzymon Olewniczak foreach ($tasks as $task) { 3353df74e7SSzymon Olewniczak $task->mail_notify_remind($task->get_participants('subscribent')); 348d31684bSSzymon Olewniczak } 358d31684bSSzymon Olewniczak} 368d31684bSSzymon Olewniczak 37*14a1f0a4SSzymon Olewniczakfunction send_weekly_message() { 38*14a1f0a4SSzymon Olewniczak global $action; 39*14a1f0a4SSzymon Olewniczak global $auth; 40*14a1f0a4SSzymon Olewniczak 41*14a1f0a4SSzymon Olewniczak //email => array('user' => array('issues' => array(), 'tasks' => array())) 42*14a1f0a4SSzymon Olewniczak $msg = array(); 43*14a1f0a4SSzymon Olewniczak $output = array(); 44*14a1f0a4SSzymon Olewniczak 45*14a1f0a4SSzymon Olewniczak $threads = $action->get_model()->threadFactory->get_all(array( 46*14a1f0a4SSzymon Olewniczak 'type' => 'issue', 47*14a1f0a4SSzymon Olewniczak 'priority' => array('OR', array('2', '1')) 48*14a1f0a4SSzymon Olewniczak )); 49*14a1f0a4SSzymon Olewniczak 50*14a1f0a4SSzymon Olewniczak foreach ($threads as $thread) { 51*14a1f0a4SSzymon Olewniczak $key = $thread->coordinator; 52*14a1f0a4SSzymon Olewniczak if (!isset($msg[$key])) { 53*14a1f0a4SSzymon Olewniczak $msg[$key] = array( 54*14a1f0a4SSzymon Olewniczak 'issues' => array(), 55*14a1f0a4SSzymon Olewniczak 'coming_tasks' => array(), 56*14a1f0a4SSzymon Olewniczak 'outdated_tasks' => array() 57*14a1f0a4SSzymon Olewniczak ); 58*14a1f0a4SSzymon Olewniczak } 59*14a1f0a4SSzymon Olewniczak $msg[$key]['issues'][] = $thread; 60*14a1f0a4SSzymon Olewniczak } 61*14a1f0a4SSzymon Olewniczak 62*14a1f0a4SSzymon Olewniczak $tasks = $action->get_model()->taskFactory->get_all(array( 63*14a1f0a4SSzymon Olewniczak 'priority' => array('OR', array('2', '1')) 64*14a1f0a4SSzymon Olewniczak )); 65*14a1f0a4SSzymon Olewniczak 66*14a1f0a4SSzymon Olewniczak foreach ($tasks as $task) { 67*14a1f0a4SSzymon Olewniczak $key = $task->assignee; 68*14a1f0a4SSzymon Olewniczak if (!isset($msg[$key])) { 69*14a1f0a4SSzymon Olewniczak $msg[$key] = array( 70*14a1f0a4SSzymon Olewniczak 'issues' => array(), 71*14a1f0a4SSzymon Olewniczak 'coming_tasks' => array(), 72*14a1f0a4SSzymon Olewniczak 'outdated_tasks' => array() 73*14a1f0a4SSzymon Olewniczak ); 74*14a1f0a4SSzymon Olewniczak } 75*14a1f0a4SSzymon Olewniczak 76*14a1f0a4SSzymon Olewniczak if ($task->priority == '1') { 77*14a1f0a4SSzymon Olewniczak $msg[$key]['coming_tasks'][] = $task; 78*14a1f0a4SSzymon Olewniczak } else { 79*14a1f0a4SSzymon Olewniczak $msg[$key]['outdated_tasks'][] = $task; 80*14a1f0a4SSzymon Olewniczak } 81*14a1f0a4SSzymon Olewniczak } 82*14a1f0a4SSzymon Olewniczak 83*14a1f0a4SSzymon Olewniczak //outdated_tasks, coming_tasks, open_tasks 84*14a1f0a4SSzymon Olewniczak 85*14a1f0a4SSzymon Olewniczak 86*14a1f0a4SSzymon Olewniczak foreach ($msg as $user => $data) { 87*14a1f0a4SSzymon Olewniczak $udata = $auth->getUserData($user); 88*14a1f0a4SSzymon Olewniczak 89*14a1f0a4SSzymon Olewniczak $issues = $data['issues']; 90*14a1f0a4SSzymon Olewniczak $outdated_tasks = $data['outdated_tasks']; 91*14a1f0a4SSzymon Olewniczak $coming_tasks = $data['coming_tasks']; 92*14a1f0a4SSzymon Olewniczak 93*14a1f0a4SSzymon Olewniczak 94*14a1f0a4SSzymon Olewniczak if (count($issues) + count($outdated_tasks) + count($coming_tasks) == 0) 95*14a1f0a4SSzymon Olewniczak continue; 96*14a1f0a4SSzymon Olewniczak 97*14a1f0a4SSzymon Olewniczak $to = $udata['name'].' <'.$udata['mail'].'>'; 98*14a1f0a4SSzymon Olewniczak 99*14a1f0a4SSzymon Olewniczak $tpl = $action->get_tpl(); 100*14a1f0a4SSzymon Olewniczak $tpl->set('issues', $issues); 101*14a1f0a4SSzymon Olewniczak $tpl->set('outdated_tasks', $outdated_tasks); 102*14a1f0a4SSzymon Olewniczak $tpl->set('coming_tasks', $coming_tasks); 103*14a1f0a4SSzymon Olewniczak $body = $action->bez_tpl_include('cron/weekly-message', true); 104*14a1f0a4SSzymon Olewniczak 105*14a1f0a4SSzymon Olewniczak $mailer = new \dokuwiki\plugin\bez\meta\Mailer(); 106*14a1f0a4SSzymon Olewniczak $rep = array(); 107*14a1f0a4SSzymon Olewniczak $mailer->setBody('', $rep, NULL, $body, false); 108*14a1f0a4SSzymon Olewniczak 109*14a1f0a4SSzymon Olewniczak $mailer->to($to); 110*14a1f0a4SSzymon Olewniczak $subject = 'Nadchodzące zadania'; 111*14a1f0a4SSzymon Olewniczak $mailer->subject($subject); 112*14a1f0a4SSzymon Olewniczak 113*14a1f0a4SSzymon Olewniczak $mailer->send(); 114*14a1f0a4SSzymon Olewniczak $output[] = array($to, $subject, $body, array()); 115*14a1f0a4SSzymon Olewniczak } 116*14a1f0a4SSzymon Olewniczak 117*14a1f0a4SSzymon Olewniczak return $output; 118*14a1f0a4SSzymon Olewniczak} 119