function execute($par) { global $wgOut, $wgUser, $wgRequest, $wgLang; $err = ""; $target = isset($par) ? $par : $wgRequest->getVal('target'); $restore = $wgRequest->getVal('restore', null); $sk = $wgUser->getSkin(); $wgOut->setHTMLTitle('Clear Ratings - Accuracy Patrol'); $type = $wgRequest->getVal('type', 'article'); $rateItem = new RateItem(); $ratingTool = $rateItem->getRatingTool($type); if ($ratingTool) { $t = $ratingTool->makeTitle($target); } if ($t == '') { $wgOut->addHTML(wfMsg('clearratings_notitle')); $this->addClearForm($target, $type, $err); return; } $me = SpecialPage::getTitleFor('Clearratings', $target); if ($wgUser->getID() == 0) { return; } if ($wgRequest->wasPosted()) { // clearing ratings $clearId = $wgRequest->getVal('clearId', null); if ($clearId != null) { $ratingTool->clearRatings($clearId, $wgUser); $wgOut->addHTML(wfMsg('clearratings_clear_finished') . "<br/><br/>"); } } if ($restore != null && $wgRequest->getVal('reason', null) == null) { //ask why the user wants to resotre $tmpl = new EasyTemplate(dirname(__FILE__)); $tmpl->set_vars(array('postUrl' => $me->getFullURL(), 'params' => $_GET)); $wgOut->addHTML($tmpl->execute('restore.tmpl.php')); return; } else { if ($restore != null) { $user = $wgRequest->getVal('user'); $page = $wgRequest->getVal('page'); $reason = $wgRequest->getVal('reason'); $u = User::newFromId($user); $up = $u->getUserPage(); $hi = $wgRequest->getVal('hi'); $low = $wgRequest->getVal('low'); $count = $ratingTool->getUnrestoredCount($page); $ratingTool->restore($page, $user, $hi, $low); $wgOut->addHTML("<br/><br/>" . wfMsg('clearratings_clear_restored', $sk->makeLinkObj($up, $u->getName()), $when) . "<br/><br/>"); // add the log entry $ratingTool->logRestore($page, $low, $hi, $reason, $count); } } if ($target != null && $type != null) { $id = $ratingTool->getId($t); if ($id === 0) { $err = wfMsg('clearratings_no_such_title', $target); } else { if ($type == "article" && $t->getNamespace() != NS_MAIN) { $err = wfMsg('clearratings_only_main', $target); } else { // clearing info $ratingTool->showClearingInfo($t, $id, $me, $target); $ap = Title::makeTitle(NS_SPECIAL, "AccuracyPatrol"); $wgOut->addHTML($sk->makeLinkObj($ap, "Return to accuracy patrol")); } } } $this->addClearForm($target, $type, $err); }
<?php require_once 'commandLine.inc'; global $wgUser; $user = $wgUser; $wgUser = User::newFromName('MiscBot'); $ratingType = $argv[0]; if ($ratingType == null || $ratingType != "article" && $ratingType != "sample") { echo "You must choose to reset sample or article ratings.\n"; return; } echo "Are you sure you want to reset all ratings for {$ratingType}s? This cannot be undone. (y/n)\n"; $response = trim(fgets(STDIN)); if ($response != "y") { return; } $ratingTool = RateItem::getRatingTool($ratingType); wfLoadExtensionMessages('RateItem'); $items = $ratingTool->getAllRatedItems(); foreach ($items as $id) { $ratingTool->clearRatings($id, $wgUser, 'Resetting all ratings'); if ($ratingType == "sample") { $ratingTool->deleteRatingReason($id); } } echo "Ratings have been reset for all " . count($items) . " {$ratingType}s\n"; $wgUser = $user;
function execute($par) { if ($par == NULL) { $ratingTool = RateItem::getRatingTool('article'); } else { $ratingTool = RateItem::getRatingTool($par); } $ratingTool->showListRatings(); }