Пример #1
0
 /**
  * Send email notification to people monitoring the package the release belongs to
  *
  * @param FRSRelease $release Release in which the file is published
  *
  * @return Integer The number of people notified. False in case of error.
  */
 function emailNotification(FRSRelease $release)
 {
     $fmmf = new FileModuleMonitorFactory();
     $result = $fmmf->whoIsMonitoringPackageById($release->getGroupID(), $release->getPackageID());
     if ($result && count($result) > 0) {
         $package = $this->_getFRSPackageFactory()->getFRSPackageFromDb($release->getPackageID());
         // To
         $array_emails = array();
         foreach ($result as $res) {
             $array_emails[] = $res['email'];
         }
         $list = implode($array_emails, ', ');
         $pm = ProjectManager::instance();
         $project = $pm->getProject($package->getGroupID());
         // Subject
         $subject = ' ' . $GLOBALS['Language']->getText('file_admin_editreleases', 'file_rel_notice_subject', array($GLOBALS['sys_name'], $project->getPublicName(), $package->getName()));
         // Body
         $fileUrl = get_server_url() . "/file/showfiles.php?group_id=" . $package->getGroupID() . "&release_id=" . $release->getReleaseID();
         $notifUrl = get_server_url() . "/file/filemodule_monitor.php?filemodule_id=" . $package->getPackageID();
         $body = $GLOBALS['Language']->getText('file_admin_editreleases', 'download_explain_modified_package', array($project->getPublicName(), $package->getName(), $release->getName(), $fileUrl));
         if ($release->getNotes() != '') {
             $body .= $GLOBALS['Language']->getText('file_admin_editreleases', 'file_rel_notice_notes', array($release->getNotes()));
         }
         if ($release->getChanges() != '') {
             $body .= $GLOBALS['Language']->getText('file_admin_editreleases', 'file_rel_notice_changes', array($release->getChanges()));
         }
         $body .= $GLOBALS['Language']->getText('file_admin_editreleases', 'download_explain', array($notifUrl));
         $mail = new Mail();
         $mail->setFrom($GLOBALS['sys_noreply']);
         $mail->setBcc($list);
         $mail->setSubject($subject);
         $mail->setBody($body);
         if ($mail->send()) {
             return count($result);
         } else {
             return false;
         }
     }
     return true;
 }
Пример #2
0
 /**
  * Send email notification to people monitoring the package the release belongs to
  *
  * @param FRSRelease $release Release in which the file is published
  *
  * @return Integer The number of people notified. False in case of error.
  */
 function emailNotification(FRSRelease $release)
 {
     $fmmf = new FileModuleMonitorFactory();
     $result = $fmmf->whoIsMonitoringPackageById($release->getGroupID(), $release->getPackageID());
     if ($result && count($result) > 0) {
         $package = $this->_getFRSPackageFactory()->getFRSPackageFromDb($release->getPackageID());
         // To
         $array_emails = array();
         foreach ($result as $res) {
             $array_emails[] = $res['email'];
         }
         $notification = $this->getNotification($release, $package, $array_emails);
         $is_email_sent = $this->sendEmail($release, $notification);
         if ($is_email_sent) {
             return count($result);
         } else {
             return false;
         }
     }
     return true;
 }
Пример #3
0
 function testGetGroupIdWithProjectSet()
 {
     $r = new FRSRelease();
     $p = new MockProject($this);
     $p->setReturnValue('getID', 123);
     $r->setProject($p);
     $this->assertEqual($r->getGroupID(), 123);
 }