Esempio n. 1
0
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;
}
Esempio n. 2
0
 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();
 }
Esempio n. 3
0
 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;
 }