/** * 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; }
/** * 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; }
function testGetGroupIdWithProjectSet() { $r = new FRSRelease(); $p = new MockProject($this); $p->setReturnValue('getID', 123); $r->setProject($p); $this->assertEqual($r->getGroupID(), 123); }