Example #1
0
 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__);
 }
Example #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();
 }