/**
  * Update quiz
  */
 public static function updateQuiz()
 {
     wfProfileIn(__METHOD__);
     $wgRequest = F::app()->getGlobal('wgRequest');
     $wgUser = F::app()->getGlobal('wgUser');
     $res = array();
     $quizId = $wgRequest->getInt('quizId');
     $quiz = WikiaQuiz::newFromId($quizId);
     if (empty($quiz) || !$quiz->exists()) {
         $res = array('success' => false, 'error' => F::app()->renderView('Error', 'Index', array(wfMsg('wikiaquiz-error-invalid-quiz'))));
     } else {
         $error = null;
         $content = self::parseCreateEditQuizRequest($wgRequest, $quiz, $error);
         if ($error) {
             $res = array('success' => false, 'error' => F::app()->renderView('Error', 'Index', array($error)));
         } else {
             $article = Article::newFromID($quizId);
             $status = $article->doEdit($content, 'Quiz Updated', EDIT_UPDATE, false, $wgUser);
             $title_object = $article->getTitle();
             // @todo check status object
             $res = array('success' => true, 'quizId' => $article->getID(), 'url' => $title_object->getLocalUrl(), 'title' => $title_object->getPrefixedText());
         }
     }
     wfProfileOut(__METHOD__);
     return $res;
 }
 function __construct($title)
 {
     parent::__construct($title);
     // quiz object is linked to NS_WIKIA_QUIZ namespace
     $quizTitle = F::build('Title', array($title->getText(), NS_WIKIA_QUIZ), 'newFromText');
     $this->mQuiz = WikiaQuiz::newFromTitle($quizTitle);
     if (!empty($this->mQuiz)) {
         $this->mQuiz->getData();
         // lazy load data
     }
 }
 function __construct($title)
 {
     parent::__construct($title);
     $this->mQuiz = WikiaQuiz::newFromArticle($this);
 }
 public function executeEditQuiz($params)
 {
     $title = Title::newFromText($params['title'], NS_WIKIA_QUIZ);
     if (is_object($title) && $title->exists()) {
         $this->quiz = WikiaQuiz::NewFromTitle($title);
         $this->data = $this->quiz->getData();
     }
 }