/**
  * Merges the marked threads.
  */
 public function merge()
 {
     if ($this->thread == null) {
         throw new IllegalLinkException();
     }
     $this->board->checkModeratorPermission('canMergeThread');
     list($boards, $boardIDs) = ThreadEditor::getBoards($this->threadIDs);
     // check permissions
     foreach ($boards as $board) {
         $board->checkModeratorPermission('canMergeThread');
     }
     $this->thread->merge($this->threadIDs);
     ThreadEditor::unmarkAll();
     // refresh counts
     BoardEditor::refreshAll($boardIDs . ',' . $this->board->boardID);
     // set last post
     $this->board->setLastPosts();
     foreach ($boards as $board) {
         $board->setLastPosts();
     }
     self::resetCache();
     HeaderUtil::redirect('index.php?page=Thread&threadID=' . $this->thread->threadID . SID_ARG_2ND_NOT_ENCODED);
     exit;
 }