コード例 #1
0
 /**
  * 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");
     }
 }