예제 #1
0
 /**
  * Purge quiz article after an edit
  */
 public static function onArticleSaveComplete(&$article, &$user, $text, $summary, $minoredit, $watchthis, $sectionanchor, &$flags, $revision, &$status, $baseRevId)
 {
     wfProfileIn(__METHOD__);
     wfDebug(__METHOD__ . "\n");
     $title = $article->getTitle();
     if (!empty($title)) {
         switch ($title->getNamespace()) {
             case NS_WIKIA_QUIZ:
                 $quizIndexArticle = new WikiaQuizIndexArticle($title);
                 $quizIndexArticle->doPurge();
                 //					$quiz = WikiaQuiz::newFromArticle($article);
                 //					$quiz->purge();
                 break;
             case NS_WIKIA_QUIZARTICLE:
                 $quizArticle = new WikiaQuizArticle($title);
                 $quizArticle->doPurge();
                 //					$quizElement = WikiaQuizElement::newFromArticle($article);
                 //					$quizElement->purge();
                 break;
         }
     }
     wfProfileOut(__METHOD__);
     return true;
 }
예제 #2
0
 /**
  * Purges memcache entry
  */
 public function purge()
 {
     global $wgMemc;
     wfProfileIn(__METHOD__);
     // clear data cache
     $wgMemc->delete($this->mMemcacheKey);
     $this->mData = null;
     $article = Article::newFromId($this->mQuizElementId);
     if (!empty($article)) {
         // purge quizElement page
         $article->doPurge();
         // apply changes to page_touched fields
         $dbw = wfGetDB(DB_MASTER);
         $dbw->commit();
     }
     // purge cached quiz
     if (empty($this->mQuizTitleObject)) {
         $this->load();
     }
     if (!empty($this->mQuizTitleObject)) {
         $quizArticle = new WikiaQuizIndexArticle($this->mQuizTitleObject);
         $quizArticle->doPurge();
     } else {
         // should never get to this point
     }
     wfDebug(__METHOD__ . ": purged quizElement #{$this->mQuizElementId}\n");
     wfProfileOut(__METHOD__);
 }