/** * EXECUTE **/ function execute($par = '') { global $wgOut, $wgRequest, $wgHooks, $wgCanonical, $wgSquidMaxage; if ($wgRequest->getVal('otherquizzesfor')) { $others = self::getOtherQuizzes($wgRequest->getVal('otherquizzesfor')); $wgOut->disable(); print_r(json_encode($others)); return; } $quiz = preg_replace('@-@', ' ', $par); wfLoadExtensionMessages('Quizzes'); //no side bar $wgHooks['ShowSideBar'][] = array('Quizzes::removeSideBarCallback'); //no head section $wgHooks['ShowHeadSection'][] = array('Quizzes::removeHeadSectionCallback'); //make a custom canonical url self::$quizURL = wfExpandUrl(self::$quizURL . $par); $wgHooks['GetFullURL'][] = array('Quizzes::getCanonicalUrl'); //page title $page_title = wfMsg('quiz_pagetitle') . ' ' . wfMsg('howto', $quiz); $wgOut->setHTMLTitle(wfMsg('pagetitle', $page_title)); //css & js for quizzes $wgOut->addHeadItem('quiz_css', HtmlSnips::makeUrlTags('css', array('quizzes.css'), 'extensions/wikihow/quizzes', false)); $wgOut->addScript(HtmlSnips::makeUrlTags('js', array('quizzes.js'), 'extensions/wikihow/quizzes', false)); //$wgOut->addScript(HtmlSnips::makeUrlTags('js', array('interstitialCookie.js'), 'extensions/wikihow/wikihowAds', false)); $html = $this->displayContainer($par); if (!$html) { //nothin' $wgOut->setStatusCode(404); $html = '<p>' . wfMsg('quiz-no-quiz-err') . '</p>'; } else { //http caching headers $wgOut->setSquidMaxage($wgSquidMaxage); //meta tags $wgOut->addMeta('description', 'Test yourself on How to ' . $quiz . ' with a fun and challenging quiz from wikiHow. See how well you score.'); $wgOut->setRobotPolicy('index,follow'); } $wgOut->addHTML($html); }