/** * Gets the summary data. * * @since 0.1 * * @param Survey $survey * * @return array */ protected function getSummaryData(Survey $survey) { $stats = array(); $stats['name'] = $survey->getField('name'); $stats['title'] = $survey->getField('title'); $stats['status'] = wfMsg('surveys-surveystats-' . ($survey->getField('enabled') ? 'enabled' : 'disabled')); $stats['questioncount'] = count($survey->getQuestions()); $stats['submissioncount'] = SurveySubmission::count(array('survey_id' => $survey->getId())); return $stats; }
public function execute() { global $wgUser; if ( !$wgUser->isAllowed( 'surveyadmin' ) || $wgUser->isBlocked() ) { $this->dieUsageMsg( array( 'badaccess-groups' ) ); } $params = $this->extractRequestParams(); foreach ( $params['questions'] as &$question ) { $question = SurveyQuestion::newFromUrlData( $question ); } $survey = new Survey( Survey::getValidFields( $params, $params['id'] ) ); $this->getResult()->addValue( null, 'success', $survey->writeToDB() ); $this->getResult()->addValue( 'survey', 'id', $survey->getId() ); $this->getResult()->addValue( 'survey', 'name', $survey->getField( 'name' ) ); }
public function execute() { global $wgUser; if ( !$wgUser->isAllowed( 'surveyadmin' ) || $wgUser->isBlocked() ) { $this->dieUsageMsg( array( 'badaccess-groups' ) ); } $params = $this->extractRequestParams(); foreach ( $params['questions'] as &$question ) { $question = SurveyQuestion::newFromUrlData( $question ); } try { $survey = new Survey( Survey::getValidFields( $params ) ); $success = $survey->writeToDB(); } catch ( DBQueryError $ex ) { if ( $ex->errno == 1062 ) { $this->dieUsage( wfMsgExt( 'survey-err-duplicate-name', 'parsemag', $params['name'] ), 'duplicate-survey-name' ); } else { throw $ex; } } $this->getResult()->addValue( null, 'success', $success ); $this->getResult()->addValue( 'survey', 'id', $survey->getId() ); $this->getResult()->addValue( 'survey', 'name', $survey->getField( 'name' ) ); }
/** * Show the survey. * * @since 0.1 * * @param Survey $survey */ protected function showSurvey(Survey $survey) { $fields = array(); $fields[] = array('type' => 'hidden', 'default' => $survey->getId(), 'name' => 'survey-id', 'id' => 'survey-id'); $fields[] = array('type' => 'hidden', 'default' => $survey->getField('name'), 'name' => 'survey-name', 'id' => 'survey-name'); $fields[] = array('type' => 'hidden', 'default' => $survey->getField('expiry'), 'name' => 'survey-expiry', 'id' => 'survey-expiry'); $fields[] = array('class' => 'SurveyNameField', 'default' => $survey->getField('name'), 'label-message' => 'survey-special-label-name', 'style' => 'font-weight: bold;'); $fields[] = array('type' => 'text', 'default' => $survey->getField('title'), 'label-message' => 'survey-special-label-title', 'id' => 'survey-title', 'name' => 'survey-title'); $fields[] = array('type' => 'check', 'default' => $survey->getField('enabled') ? '1' : '0', 'label-message' => 'survey-special-label-enabled', 'id' => 'survey-enabled', 'name' => 'survey-enabled'); $fields[] = array('type' => 'radio', 'default' => $survey->getField('user_type'), 'label-message' => 'survey-special-label-usertype', 'id' => 'survey-user_type', 'name' => 'survey-user_type', 'options' => array(wfMsg('survey-user-type-all') => Survey::$USER_ALL, wfMsg('survey-user-type-loggedin') => Survey::$USER_LOGGEDIN, wfMsg('survey-user-type-confirmed') => Survey::$USER_CONFIRMED, wfMsg('survey-user-type-editor') => Survey::$USER_EDITOR, wfMsg('survey-user-type-anon') => Survey::$USER_ANON)); $fields[] = array('type' => 'select', 'default' => $survey->getField('ratio'), 'label-message' => 'survey-special-label-ratio', 'id' => 'survey-ratio', 'name' => 'survey-ratio', 'options' => $this->getNumericalOptions(array_merge(array(0.01, 0.1), range(1, 100)))); $fields[] = array('type' => 'select', 'default' => $survey->getField('min_pages'), 'label-message' => 'survey-special-label-minpages', 'id' => 'survey-min_pages', 'name' => 'survey-min_pages', 'options' => $this->getNumericalOptions(range(0, 250))); $fields[] = array('type' => 'text', 'default' => $survey->getField('header'), 'label-message' => 'survey-special-label-header', 'id' => 'survey-header', 'name' => 'survey-header'); $fields[] = array('type' => 'text', 'default' => $survey->getField('footer'), 'label-message' => 'survey-special-label-footer', 'id' => 'survey-footer', 'name' => 'survey-footer'); $fields[] = array('type' => 'text', 'default' => $survey->getField('thanks'), 'label-message' => 'survey-special-label-thanks', 'id' => 'survey-thanks', 'name' => 'survey-thanks'); foreach ($survey->getQuestions() as $question) { $fields[] = array('class' => 'SurveyQuestionField', 'options' => $question->toArray()); } // getContext was added in 1.18 and since that version is // the second argument for the HTMLForm constructor. if (version_compare($GLOBALS['wgVersion'], '1.18', '>=')) { $form = new HTMLForm($fields, $this->getContext()); } else { $form = new HTMLForm($fields); $form->setTitle($this->getTitle()); } $form->setSubmitText(wfMsg('surveys-special-save')); $form->addButton('cancelEdit', wfMsg('cancel'), 'cancelEdit', array('onclick' => 'window.location="' . SpecialPage::getTitleFor('Surveys')->getFullURL() . '";return false;')); $form->show(); }