/** * Send task due notification to the list of users ($people) * * @param ProjectTask $task Due task * @param array $people * @return boolean * @throws NotifierConnectionError */ static function objectReminder(ObjectReminder $reminder) { $object = $reminder->getObject(); $context = $reminder->getContext(); $type = $object->getObjectTypeName(); $date = $object->getColumnValue($context); $several_event_subscribers = false; Env::useHelper("format"); $isEvent = $object instanceof ProjectEvent ? true : false; if ($reminder->getUserId() == 0) { $people = $object->getSubscribers(); if ($isEvent) { $several_event_subscribers = true; $aux = array(); foreach ($people as $person) { //grouping people by different timezone $time = $person->getTimezone(); if (isset($aux["{$time}"])) { $aux["{$time}"][] = $person; } else { $aux["{$time}"] = array($person); } } foreach ($aux as $tz => $group) { $string_date = format_datetime($date, 0, $tz); self::objectNotification($object, $group, null, "{$context} reminder", "{$context} {$type} reminder desc"); } } } else { $people = array($reminder->getUser()); if ($isEvent) { $string_date = format_datetime($date, 0, $reminder->getUser()->getTimezone()); } else { $string_date = $date->format("Y/m/d H:i:s"); } } if (!$several_event_subscribers) { if (!isset($string_date)) { $string_date = format_datetime($date); } self::objectNotification($object, $people, null, "{$context} reminder", "{$context} {$type} reminder desc"); } }