/** * @param SS_HTTPRequest $r * @return SS_HTTPResponse|void * @throws SS_HTTPResponse_Exception */ public function handleEmailSpeakers(SS_HTTPRequest $r) { if (!Member::currentUser()) { return $this->httpError(403); } $email = $r->postVar('email'); if ($email != null) { $current_user = Member::currentUser(); $toAdresses = []; $ccAddresses = ['*****@*****.**']; foreach ($this->presentation->getSpeakersAndModerators() as $s) { $toAddresses[] = $s->getEmail(); } $chairs = $this->presentation->Category()->TrackChairs()->exclude('MemberID', $current_user->ID); foreach ($chairs as $chair) { $ccAddresses[] = $chair->Member()->Email; } $subject = "Track chair {$current_user->getName()} has a question about your presentation"; $body = $email; $email = EmailFactory::getInstance()->buildEmail(null, implode(',', $toAddresses), $subject, $body); $email->setCC(implode(',', $ccAddresses)); $email->replyTo($current_user->Email); try { $email->send(); $this->presentation->addNotification(' {member} emailed the speakers '); return new SS_HTTPResponse('OK'); } catch (Exception $e) { return new SS_HTTPResponse($e->getMessage(), 400); } } return $this->httpError(400, "Invalid comment"); }