function wfCheckQC(&$article, &$user, $text, $summary, $minoredit, $watchthis, $sectionanchor, &$flags, $revision) { global $wgChangedTemplatesToQC; // if an article becomes a redirect, vanquish all previous qc entries if (preg_match("@^#REDIRECT@", $text)) { QCRule::markAllAsPatrolled($article->getTitle()); return true; } // check for bots $bots = WikihowUser::getBotIDs(); if (in_array($user->getID(), $bots)) { return true; } // ignore reverted edits if (preg_match("@Reverted edits by@", $summary)) { return true; } // check for intro image change, reverts are ok for this one // $l = new QCRuleIntroImage($revision, $article); // $l->process(); // do the templates foreach ($wgChangedTemplatesToQC as $t) { wfDebug("QC: About to process template change {$t}\n"); $l = new QCRuleTemplateChange($t, $revision, $article); $l->process(); } // check for video changes $l = new QCRuleVideoChange($revision, $article); $l->process(); return true; }
function execute($par) { global $wgUser, $wgOut, $wgRequest; if ($wgUser->isBlocked()) { $wgOut->blockedPage(); return; } if ($wgUser->getID() == 0) { $wgOut->setRobotpolicy('noindex,nofollow'); $wgOut->errorpage('nosuchspecialpage', 'nospecialpagetext'); return; } wfLoadExtensionMessages("QG"); if ($wgRequest->getVal('fetchInnards')) { $wgOut->disable(); header('Vary: Cookie'); $result = self::getNextInnards($wgRequest->getVal('qc_type'), $wgRequest->getVal('by_username')); print_r(json_encode($result)); return; } elseif ($wgRequest->getVal('getOptions')) { $wgOut->setArticleBodyOnly(true); $wgOut->addHTML(self::getOptionMenu($wgRequest->getVal('menuName'), $wgRequest->getVal('choices'), $wgRequest->getVal('username'))); return; } elseif ($wgRequest->getVal('getVoteBlock')) { $wgOut->setArticleBodyOnly(true); $wgOut->addHTML(self::getVoteBlock($wgRequest->getVal('qc_id'))); return; } elseif ($wgRequest->wasPosted()) { if ($wgRequest->getVal('qc_skip', 0) == 1) { QCRule::skip($wgRequest->getVal('qc_id')); } else { QCRule::vote($wgRequest->getVal('qc_id'), $wgRequest->getVal('qc_vote')); } $wgOut->disable(); $result = self::getNextInnards($wgRequest->getVal('qc_type'), $wgRequest->getVal('by_username')); header('Vary: Cookie'); print_r(json_encode($result)); return; } /** * This is the shell of the page, has the buttons, etc. */ $wgOut->setHTMLTitle('Quality Guardian'); $wgOut->addScript("<script type='text/javascript' src='" . wfGetPad('/extensions/min/f/extensions/wikihow/qc/qc.js?rev=') . WH_SITEREV . "'></script>"); $wgOut->addStyle('/extensions/min/f/extensions/wikihow/qc/qc.css?rev=' . WH_SITEREV); $wgOut->addStyle(wfGetPad('/skins/common/diff.css?' . WH_SITEREV)); $wgOut->addHTML(QuickNoteEdit::displayQuickEdit() . QuickNoteEdit::displayQuickNote(true)); $wgOut->setHTMLTitle(wfMsg('quality_control')); $wgOut->setPageTitle(wfMsg('quality_control')); // add standings widget $group = new QCStandingsGroup(); $indi = new QCStandingsIndividual(); $indi->addStatsWidget(); $group->addStandingsWidget(); }
private function getNext() { wfProfileIn(__METHOD__); $qgItem = QCRule::getNextToPatrol('changedintroimage', null); if ($qgItem) { $this->qgItem = $qgItem; $revId = $qgItem->mResult->qc_rev_id; $this->r = Revision::newFromId($revId); } wfProfileOut(__METHOD__); return $qgItem; }