diff --git a/inc/inc.Tasks.php b/inc/inc.Tasks.php index 44efbb474..bc2712589 100644 --- a/inc/inc.Tasks.php +++ b/inc/inc.Tasks.php @@ -497,9 +497,45 @@ class SeedDMS_CalendarTask extends SeedDMS_SchedulerTaskBase { /* {{{ */ $logger = $this->logger; $settings = $this->settings; $taskparams = $task->getParameter(); + $tableformat = " %-10s %5d %-60s"; + $tableformathead = " %-10s %5s %-60s"; + $tableformathtml = "%s%d%s"; + $tableformatheadhtml = "%s%s%s"; - $calendar = new SeedDMS_Calendar($dms->getDB(), $user); - $events = $calendar->getEventsInInterval(mktime(0,0,0, $start[1], $start[2], $start[0]), mktime(23,59,59, $end[1], $end[2], $end[0])); + require_once('inc/inc.ClassEmailNotify.php'); + require_once('inc/inc.ClassCalendar.php'); + $email = new SeedDMS_EmailNotify($dms, $settings->_smtpSendFrom, $settings->_smtpServer, $settings->_smtpPort, $settings->_smtpUser, $settings->_smtpPassword); + + $calendar = new SeedDMS_Calendar($dms->getDB(), null); + $allusers = $dms->getAllUsers(); + foreach($allusers as $auser) { + if(!$auser->isAdmin() && !$auser->isGuest() && !$auser->isDisabled() && $auser->getEmail()) { + $body = ''.$auser->getLogin()." <".$auser->getEmail().">\n\n"; + $bodyhtml = '

'.$auser->getLogin()." <".$auser->getEmail().">

"; + $calendar->setUser($auser); + $start = mktime(0,0,0, date('m'), date('d'), date('Y')); + $events = $calendar->getEventsInInterval($start, $start+7*86400); + if($events && count($events)>0) { + $bodyhtml .= "".PHP_EOL; + $bodyhtml .= sprintf($tableformatheadhtml."\n", getMLText("date", array(), ""), "ID", getMLText("name", array(), "")); + $body .= sprintf($tableformathead."\n", getMLText("expires", array(), ""), "ID", getMLText("name", array(), "")); + $body .= "---------------------------------------------------------------------------------\n"; + foreach($events as $event) { + $body .= sprintf($tableformat."\n", getReadableDate($event['start']), 1, $event['name']); + $bodyhtml .= sprintf($tableformathtml."\n", getReadableDate($event['start']), 1, $event['name']); + } + $bodyhtml .= "
".PHP_EOL; + $params = array(); + $params['count'] = count($events); + $params['__body__'] = $body; + $params['__body_html__'] = $bodyhtml; + $params['sitename'] = $settings->_siteName; + $email->toIndividual('', $auser, 'calendar_events_mail_subject', '', $params); + + $logger->log('Task \'calendar_events\': Sending reminder \'calender_events_mail_subject\' to user \''.$auser->getLogin().'\'', PEAR_LOG_INFO); + } + } + } return true; } @@ -518,4 +554,4 @@ $GLOBALS['SEEDDMS_SCHEDULER']['tasks']['core']['expireddocs'] = 'SeedDMS_Expired $GLOBALS['SEEDDMS_SCHEDULER']['tasks']['core']['indexingdocs'] = 'SeedDMS_IndexingDocumentsTask'; $GLOBALS['SEEDDMS_SCHEDULER']['tasks']['core']['checksum'] = 'SeedDMS_CheckSumTask'; $GLOBALS['SEEDDMS_SCHEDULER']['tasks']['core']['preview'] = 'SeedDMS_PreviewTask'; -//$GLOBALS['SEEDDMS_SCHEDULER']['tasks']['core']['calendar'] = 'SeedDMS_CalendarTask'; +$GLOBALS['SEEDDMS_SCHEDULER']['tasks']['core']['calendar'] = 'SeedDMS_CalendarTask';