function execute($par) { global $wgOut, $wgRequest, $IP, $wgArticle, $wgUser, $isDevServer; wfProfileIn(__METHOD__); $wgOut->disable(); header('Vary: Cookie'); $oldWgUser = $wgUser; // Run this as the mqg user if anonymous user if (!$wgUser->mId || $wgUser->isAnon()) { if ($isDevServer) { $wgUser = User::newFromName('Mqg'); } else { // MQG User id. Use this vs. name so we can load from memcache $wgUser = User::newFromId(1738044); } $wgUser->load(); } require_once "{$IP}/extensions/wikihow/mobile/MobileHtmlBuilder.class.php"; if ($wgRequest->getVal('fetchInnards')) { echo json_encode($this->getInnards()); wfProfileOut(__METHOD__); return; } else { if ($email = strtolower(trim($wgRequest->getVal('email')))) { if (preg_match("/^[_a-z0-9-]+(\\.[_a-z0-9-]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*(\\.[a-z]{2,3})\$/", $email)) { $this->saveEmail($email); } return; } else { if ($wgRequest->wasPosted()) { if ($wgRequest->getVal('qc_skip', 1) == 1) { QCRule::skip($wgRequest->getVal('qc_id')); } else { QCRule::vote($wgRequest->getVal('qc_id'), $wgRequest->getVal('qc_vote')); } echo json_encode($this->getInnards()); wfProfileOut(__METHOD__); return; } else { // Only for initial load echo $this->getShell(); } } } // Restore $wgUser $wgUser = $oldWgUser; wfProfileOut(__METHOD__); }
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(); }