Ejemplo n.º 1
0
 function moveToPage($title, $reason, $leave_trace)
 {
     if (!$this->isTopmostThread()) {
         throw new MWException("Attempt to move non-toplevel thread to another page");
     }
     $this->dieIfHistorical();
     $dbr = wfGetDB(DB_MASTER);
     $oldTitle = $this->getTitle();
     $newTitle = $title;
     $new_articleNamespace = $title->getNamespace();
     $new_articleTitle = $title->getDBkey();
     $new_articleID = $title->getArticleID();
     if (!$new_articleID) {
         $article = new Article($newTitle);
         Threads::createTalkpageIfNeeded($article);
         $new_articleID = $article->getId();
     }
     // Update on *all* subthreads.
     $dbr->update('thread', array('thread_article_namespace' => $new_articleNamespace, 'thread_article_title' => $new_articleTitle, 'thread_article_id' => $new_articleID), array('thread_ancestor' => $this->id()), __METHOD__);
     $this->articleNamespace = $new_articleNamespace;
     $this->articleTitle = $new_articleTitle;
     $this->articleId = $new_articleID;
     $this->article = null;
     $this->commitRevision(Threads::CHANGE_MOVED_TALKPAGE, null, $reason);
     if ($leave_trace) {
         $this->leaveTrace($reason, $oldTitle, $newTitle);
     }
 }