private function sanitize() { if (false === ($this->thread = GWF_ForumThread::getByID(Common::getGetString('tid')))) { return $this->module->error('err_thread'); } $this->ppt = $this->module->getPostsPerThread(); $this->nPosts = $this->thread->getPostCount(); $this->nPages = GWF_PageMenu::getPagecount($this->ppt, $this->nPosts); $default_page = isset($_GET['last_page']) ? $this->nPages : 1; $this->page = Common::clamp(Common::getGetInt('page'), $default_page, $this->nPages); if (!$this->thread->getBoard()) { return $this->module->error('err_thread_perm'); } if (!$this->thread->hasPermission(GWF_Session::getUser())) { return $this->module->error('err_thread_perm'); } if ($this->thread->isInModeration()) { return $this->module->error('err_in_mod'); } return false; }
private function onMerge(GWF_ForumThread $first, GWF_ForumThread $last) { // Delete thread if (false === $last->delete()) { return GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__)); } // Sum counters if (false === $first->saveVar('thread_postcount', $first->getPostCount() + $last->getPostCount())) { return GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__)); } if (false === $first->saveVar('thread_viewcount', $first->getVar('thread_viewcount') + $last->getVar('thread_viewcount'))) { return GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__)); } if (false === $first->saveVar('thread_thanks', $first->getVar('thread_thanks') + $last->getVar('thread_thanks'))) { return GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__)); } if (false === $first->saveVar('thread_votes_up', $first->getVar('thread_votes_up') + $last->getVar('thread_votes_up'))) { return GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__)); } if (false === $first->saveVar('thread_votes_down', $first->getVar('thread_votes_down') + $last->getVar('thread_votes_down'))) { return GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__)); } // -1 thread if (false === $first->getBoard()->adjustCounters(-1, 0)) { return GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__)); } // change threadid's $t1id = $first->getID(); $t2id = $last->getID(); if (false === GDO::table('GWF_ForumPost')->update("post_tid={$t1id}", "post_tid={$t2id}")) { return GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__)); } // Done return $this->module->message('msg_merged'); }