Пример #1
0
 /**
  * @covers MWDebug::deprecated
  */
 public function testAvoidNonConsecutivesDuplicateDeprecations()
 {
     MWDebug::deprecated('wfOldFunction', '1.0', 'component');
     MWDebug::warning('some warning');
     MWDebug::log('we could have logged something too');
     // Another deprecation
     MWDebug::deprecated('wfOldFunction', '1.0', 'component');
     // assertCount() not available on WMF integration server
     $this->assertEquals(3, count(MWDebug::getLog()), "Only one deprecated warning per function should be kept");
 }
Пример #2
0
 function execute($par)
 {
     global $wgOut, $wgRequest, $wgUser, $wgParser, $wgDebugToolbar;
     $user = $this->getUser();
     wfLoadExtensionMessages("TipsPatrol");
     if ($user->isBlocked()) {
         $wgOut->blockedPage();
         return;
     }
     if ($user->isAnon() || self::isBlockedFromTipsPatrol($user)) {
         $wgOut->setRobotpolicy('noindex,nofollow');
         $wgOut->showErrorPage('nosuchspecialpage', 'nospecialpagetext');
         return;
     }
     $this->skipTool = new ToolSkip("tiptool", "tipsandwarnings", "tw_checkout", "tw_checkout_user", "tw_id");
     if ($wgRequest->wasPosted()) {
         $wgOut->disable();
         $result = array();
         try {
             $tipId = $wgRequest->getVal('tipId');
             if ($wgRequest->getVal('coachTip')) {
                 $tip = $wgRequest->getVal('tip');
                 $this->coachResult($tipId, $tip, &$result);
             } elseif ($tipId != null && $wgRequest->getVal('skipTip')) {
                 $this->logTip($tipId, self::TIP_ACTION_SKIP);
                 $this->skipTool->skipItem($tipId);
                 $this->skipTool->unUseItem($tipId);
             } elseif ($wgRequest->getVal('deleteTip')) {
                 $tip = $wgRequest->getVal('tip');
                 $this->logTip($tipId, self::TIP_ACTION_DELETE, $tip);
                 $articleId = $wgRequest->getVal('articleId');
                 $this->deleteTip($tipId, $articleId, $tip);
             } elseif ($wgRequest->getVal('keepTip')) {
                 $articleId = $wgRequest->getVal('articleId');
                 $tip = $wgRequest->getVal('tip');
                 $qcId = $this->addToQG($tipId, $articleId, $tip);
                 $this->logTip($tipId, self::TIP_ACTION_KEEP, $tip, $qcId);
                 $dbw = wfGetDB(DB_MASTER);
                 $dbw->delete('tipsandwarnings', array('tw_id' => $tipId));
             }
             $this->getNextTip(&$result);
             // if debug toolbark pass logs back in response
             if ($wgDebugToolbar) {
                 $result['debug']['log'] = MWDebug::getLog();
             }
             echo json_encode($result);
         } catch (MWException $e) {
             $result['error'][] = $e->getText();
             echo json_encode($result);
             throw $e;
         }
         return;
     }
     $wgOut->setHTMLTitle(wfMessage('tipspatrol')->text());
     $wgOut->setPageTitle(wfMessage('tipspatrol')->text());
     $wgOut->addJSCode('mt');
     // Mousetrap library
     $wgOut->addCSSCode('tpc');
     // Tips Patrol CSS
     $wgOut->addScript(HtmlSnips::makeUrlTags('js', array('tipspatrol.js'), 'extensions/wikihow/tipsandwarnings'));
     if ($wgDebugToolbar) {
         $wgOut->addScript(HtmlSnips::makeUrlTags('js', array('consoledebug.js'), 'extensions/wikihow/debug', false));
     }
     EasyTemplate::set_path(dirname(__FILE__));
     $vars = array();
     $vars['tip_skip_title'] = wfMessage('tip_skip_title')->text();
     $vars['tip_keep_title'] = wfMessage('tip_keep_title')->text();
     $vars['tip_delete_title'] = wfMessage('tip_delete_title')->text();
     $wgOut->addHTML(EasyTemplate::html('TipsPatrol.tmpl.php', $vars));
     $coach = $this->getRequest()->getVal("coach");
     // code to init the tipspatrol javascript.. doing it here lets us pass in extra variables when we init
     $wgOut->addScript("<script>\$(document).ready(function(){WH.tipsPatrol.init({$coach})});</script>");
     $bubbleText = "Only publish this tip if you can make it helpful, clear, and grammatically correct. Most tips should get deleted.";
     InterfaceElements::addBubbleTipToElement('tip_tip', 'tptrl', $bubbleText);
     $this->displayLeaderboards();
 }
Пример #3
0
 function execute($par)
 {
     global $wgDebugToolbar;
     $request = $this->getRequest();
     $out = $this->getOutput();
     $this->checkPermissions();
     wfLoadExtensionMessages("UCIPatrol");
     if ($request->getVal("stats")) {
         $out->disable();
         $result = $this->getStats();
         if ($request->getVal("format") == "json") {
             echo json_encode($result);
             return;
         }
         UCIPatrol::printStatsUploads($result['uploads']);
         UCIPatrol::printStatsTitles($result['titles']);
         return;
     }
     if ($request->wasPosted()) {
         $out->disable();
         // wrapping it all in try catch to get any database errors
         try {
             $result = array();
             if ($request->getVal('next')) {
                 $result = $this->getNext();
             } elseif ($request->getVal('skip')) {
                 $this->skip();
             } elseif ($request->getVal('bad')) {
                 $this->downVote();
             } elseif ($request->getVal('good')) {
                 $this->upVote();
             } elseif ($request->getVal('undo')) {
                 $this->undo();
             } elseif ($request->getVal('error')) {
                 $this->error();
                 $result = $this->getNext();
             } elseif ($request->getVal('resetskip')) {
                 $this->resetSkip();
                 $result = $this->getNext();
             } elseif ($request->getVal('flag')) {
                 $this->flag();
                 $result = UCIPatrol::getImagesHTML($request->getVal('hostPage'));
                 echo $result;
                 return;
             }
             // if debug toolbar is active, pass logs back in json response
             if ($wgDebugToolbar) {
                 $result['debug']['log'] = MWDebug::getLog();
             }
             echo json_encode($result);
         } catch (MWException $e) {
             $result = $result ?: array();
             $result['error'][] = $e->getText();
             echo json_encode($result);
             throw $e;
         }
     } else {
         $out->setHTMLTitle(wfMessage('ucipatrol')->text());
         $out->setPageTitle(wfMessage('ucipatrol')->text());
         $out->addJSCode('mt');
         // Mousetrap library
         $out->addCSSCode('ucipc');
         // Tips Patrol CSS
         $out->addScript(HtmlSnips::makeUrlTags('js', array('ucipatrol.js'), 'extensions/wikihow/mobile/ucipatrol', false));
         if ($wgDebugToolbar) {
             $out->addScript(HtmlSnips::makeUrlTags('js', array('consoledebug.js'), 'extensions/wikihow/debug', false));
         }
         EasyTemplate::set_path(dirname(__FILE__));
         $anon = $this->getUser()->isAnon();
         $out->addHTML(EasyTemplate::html('UCIPatrol.tmpl.php', $vars));
         $out->addScript("<script>\$(document).ready(function(){WH.uciPatrol.init({$anon})});</script>");
         $bubbleText = "Help us pick the best user submitted photos to match the article.";
         InterfaceElements::addBubbleTipToElement('uci', 'ucitp', $bubbleText);
         $this->displayLeaderboards();
     }
 }