Start working on multiple choice questions.
[platal.git] / modules / survey / multiple.inc.php
1 <?php
2 /***************************************************************************
3 * Copyright (C) 2003-2011 Polytechnique.org *
4 * http://opensource.polytechnique.org/ *
5 * *
6 * This program is free software; you can redistribute it and/or modify *
7 * it under the terms of the GNU General Public License as published by *
8 * the Free Software Foundation; either version 2 of the License, or *
9 * (at your option) any later version. *
10 * *
11 * This program is distributed in the hope that it will be useful, *
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14 * GNU General Public License for more details. *
15 * *
16 * You should have received a copy of the GNU General Public License *
17 * along with this program; if not, write to the Free Software *
18 * Foundation, Inc., *
19 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
20 ***************************************************************************/
21
22 class SurveyQuestionMultiple extends SurveyQuestion
23 {
24 public function __construct(Survey $survey)
25 {
26 parent::__construct($survey);
27 $this->type = "multiple";
28 }
29
30 protected function buildAnswer(SurveyAnswer $answer, PlDict $data)
31 {
32 $content = $data->v($this->qid);
33 $value = $content['answer'];
34 if (empty($value)) {
35 $answer->answer = null;
36 return true;
37 }
38 $id = to_integer($value);
39 if ($id === false) {
40 if ($value != 'other') {
41 $answer->answers = null;
42 return false;
43 }
44 if (@$this->parameters['allow_other']) {
45 $answer->answer = array('other' => $content['text']);
46 }
47 } else {
48 if ($id >= count($this->parameters['answers'])) {
49 $answer->answers = null;
50 return false;
51 }
52 $answer->answer = array('answer' => $id);
53 }
54 return true;
55 }
56 }
57
58 ?>