/**
  * @see Page::readData()
  */
 public function readData()
 {
     parent::readData();
     // get users online
     if (MODULE_USERS_ONLINE && THREAD_ENABLE_ONLINE_LIST) {
         $this->renderOnlineList();
     }
     // get posts
     $this->postList->offset = ($this->pageNo - 1) * $this->itemsPerPage;
     $this->postList->limit = $this->itemsPerPage;
     $this->postList->readPosts();
     $this->readSimilarThreads();
     // update thread visit
     if ($this->thread->isNew() && $this->postList->maxPostTime > $this->thread->lastVisitTime) {
         WCF::getUser()->setThreadVisitTime($this->threadID, $this->postList->maxPostTime);
     }
     // get marked posts
     $sessionVars = WCF::getSession()->getVars();
     if (isset($sessionVars['markedPosts'])) {
         $this->markedPosts = count($sessionVars['markedPosts']);
     }
     if (isset($sessionVars['markedThreads'])) {
         $this->markedThreads = count($sessionVars['markedThreads']);
     }
     if (isset($sessionVars['quotes'][$this->threadID])) {
         foreach ($sessionVars['quotes'][$this->threadID] as $postID => $postQuotes) {
             $this->quotes += count($postQuotes);
         }
     }
     // get tags
     if (MODULE_TAGGING && THREAD_ENABLE_TAGS) {
         $this->readTags();
     }
     // init sidebars
     $this->sidebarFactory = new MessageSidebarFactory($this);
     foreach ($this->postList->posts as $post) {
         $this->sidebarFactory->create($post);
     }
     $this->sidebarFactory->init();
     // update views
     if (!WCF::getSession()->spiderID) {
         $this->updateViews();
     }
 }