示例#1
0
 /**
  * Main method.
  * 
  * @since 0.1
  * 
  * @param string $arg
  */
 public function execute($subPage)
 {
     if (!parent::execute($subPage)) {
         return;
     }
     if (is_null($subPage) || trim($subPage) === '') {
         $this->getOutput()->redirect(SpecialPage::getTitleFor('Surveys')->getLocalURL());
     } else {
         $subPage = trim($subPage);
         if (Survey::has(array('name' => $subPage))) {
             $survey = Survey::newFromName($subPage);
             $this->displayNavigation(array(wfMsgExt('survey-navigation-edit', 'parseinline', $survey->getField('name')), wfMsgExt('survey-navigation-take', 'parseinline', $survey->getField('name')), wfMsgExt('survey-navigation-list', 'parseinline')));
             $this->displayStats($survey);
         } else {
             $this->showError('surveys-surveystats-nosuchsurvey');
         }
     }
 }
示例#2
0
 /**
  * Hook to insert things into article headers.
  *
  * @since 0.1
  *
  * @param Article &$article
  * @param boolean $outputDone
  * @param boolean $useParserCache
  *
  * @return true
  */
 public static function onArticleViewHeader(Article &$article, &$outputDone, &$useParserCache)
 {
     if (!Survey::has(array('enabled' => 1))) {
         return true;
     }
     $surveys = Survey::select(array('id', 'namespaces', 'ratio', 'expiry', 'min_pages'), array('enabled' => 1, 'user_type' => Survey::getTypesForUser($GLOBALS['wgUser'])));
     foreach ($surveys as $survey) {
         if (count($survey->getField('namespaces')) == 0) {
             $nsValid = true;
         } else {
             $nsValid = in_array($article->getTitle()->getNamespace(), $survey->getField('namespaces'));
         }
         if ($nsValid) {
             $GLOBALS['wgOut']->addWikiText(Xml::element('survey', array('id' => $survey->getId(), 'ratio' => $survey->getField('ratio'), 'expiry' => $survey->getField('expiry'), 'min-pages' => $survey->getField('min_pages'))));
         }
     }
     return true;
 }