/** * 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; }
/** * 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__); }