Exemplo n.º 1
0
 private function updateQuestion($question, $params)
 {
     $dirty = false;
     // UPDATE QUESTION
     if (isset($params['question'])) {
         $question->setQuestion($q = $params['question']);
         $question->setTitle(my_substr($q, 0, 50));
         $dirty = true;
     }
     // UPDATE CHOICES
     // TODO zuviel in dieser action, besser nur 10 zeilen pro function
     if (isset($params['answers'])) {
         $answers = array();
         foreach ($question->getAnswers() as $answer) {
             $answers[$answer['answer_id']] = $answer;
         }
         $new_answers = array();
         foreach ($params['answers'] as $id => $choice) {
             if ($choice !== '') {
                 $new_answers[] = is_int($id) ? Question::makeChoice($choice) : array_merge($answers[$id], array('text' => $choice));
             }
         }
         $question->setAnswers($new_answers);
         $dirty = true;
     }
     if ($dirty) {
         $question->executeWrite();
     }
     return $question->isError();
 }