'Jeopardy' ); public function __construct($row) { $this->question = $row; $this->fieldFactory = new DbFieldFactory(); $this->setFields(); } public function getHtml() { return theme('chgk_db_question', $this); } public function getFb2() { return theme('chgk_db_question_fb2', $this); } public function getImages() { $this->images = array(); foreach ($this->fields as $f) { $this->images = array_merge($this->images, $f->getImages()); } return $this->images; } public function getField($name) { return $this->fields[$name]; } public function getNumber() { return $this->question->Number; } protected function setFields() { $this->setQuestionField(); $fields = array('Answer', 'PassCriteria', 'Comments', 'Sources', 'Authors'); foreach ($fields as $field) { $this->setField($field); } } private function setQuestionField() { $this->fields['Question'] = $this->fieldFactory->getField( 'Question', $this->question->Question, $this->question->Number); } private function setField($field) { $f = $this->fieldFactory->getField( $field, $this->question->{$field} ); if ($f->isEmpty()) { return; } $this->fields[$field] = $f; } }