示例#1
0
 /**
  * Send a spam report via email
  * @return void
  */
 public function report()
 {
     $author = $this->post->getOne('Author');
     /* setup default properties */
     $subject = $this->modx->getOption('subject', $this->scriptProperties, $this->modx->getOption('discuss.email_reported_post_subject', null, 'Reported Post: [[+title]]'));
     $subject = str_replace('[[+title]]', $this->post->get('title'), $subject);
     $tpl = $this->modx->getOption('tpl', $this->scriptProperties, $this->modx->getOption('discuss.email_reported_post_chunk', null, 'emails/disReportedEmail'));
     /* build post url */
     $url = $this->post->getUrl();
     /* setup email properties */
     $emailProperties = array_merge($this->scriptProperties, $this->post->toArray());
     $emailProperties['tpl'] = $tpl;
     $emailProperties['title'] = $this->post->get('title');
     if ($author) {
         $emailProperties['author'] = $author->get('username');
     }
     $emailProperties['reporter'] = $this->discuss->user->get('username');
     $emailProperties['url'] = $url;
     $emailProperties['forum_title'] = $this->modx->getOption('discuss.forum_title');
     $emailProperties['message'] = nl2br(strip_tags($this->scriptProperties['message']));
     /* send reported email */
     $moderators = $this->thread->getModerators();
     /** @var disUser $moderator */
     foreach ($moderators as $moderator) {
         $sent = $this->discuss->sendEmail($moderator->get('email'), $moderator->get('username'), $subject, $emailProperties);
     }
     unset($emailProperties);
     $this->discuss->logActivity('post_report', $this->post->toArray(), $this->post->getUrl());
     /* redirect to thread */
     $this->modx->sendRedirect($url);
 }