private static function filterSubscriptions(GWF_ForumThread $thread, array $users) { foreach ($users as $uid => $user) { if (!$user->hasValidMail()) { unset($users[$uid]); } } if (0 < ($gid = $thread->getGroupID())) { foreach ($users as $uid => $user) { if (!$user->isInGroupID($gid)) { unset($users[$uid]); } } } return array_values($users); }
private function onReply() { $form = $this->getForm(); if (false !== ($error = $form->validate($this->module))) { return $error . $this->templateReply(); } # Gather vars $user = GWF_Session::getUser(); $is_mod = $user === false && $this->module->isGuestPostModerated(); $title = $form->getVar('title'); $message = $form->getVar('message'); $options = 0; $options |= Common::getPost('bbcode') === false ? 0 : GWF_ForumPost::DISABLE_BB; $options |= Common::getPost('smileys') === false ? 0 : GWF_ForumPost::DISABLE_SMILE; $options |= $is_mod ? GWF_ForumPost::IN_MODERATION : 0; // $options |= Common::getPost('guest_view') === false ? 0 : $this->thread->isGuestView(); $options |= $this->thread->isGuestView() ? GWF_ForumPost::GUEST_VIEW : 0; $threadid = $this->thread->getID(); $groupid = $this->thread->getGroupID(); # Post it $post = GWF_ForumPost::fakePost($user, $title, $message, $options, $threadid, $groupid); if (false === $post->insert()) { return GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__)); } if (!$is_mod) { if (false === $post->onApprove($this->module)) { return GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__)); } // $this->thread->increase('thread_postcount', 1); # Increase cache :/ $this->module->cachePostcount(); return $this->module->message('msg_posted', array($post->getThread()->getLastPageHREF())); } else { GWF_ForumSubscription::sendModeratePost($this->module, $post); return $this->module->message('msg_posted_mod', array($this->thread->getLastPageHREF())); } }