/** * Format an answer array * @param \array $answer * @param \Jazzee\Entity\Page $page * * @return array */ protected function arrayAnswer(array $answer, \Jazzee\Entity\Page $page) { $elements = $answer['elements']; $answer['elements'] = array(); foreach ($elements as $elementId => $elementAnswers) { $element = $page->getElementById($elementId); $answer['elements'][] = $element->getJazzeeElement()->formatApplicantArray($elementAnswers); } $children = $answer['children']; $answer['children'] = array(); foreach ($children as $child) { $answer['children'][] = $this->arrayAnswer($child, $page->getChildById($child['page_id'])); } if (!is_null($answer['attachment'])) { $answer['attachment'] = $this->arrayAnswerAttachment($answer['attachment'], $page); } return $answer; }
/** * Render a single answer in the PDF * @param \Jazzee\ApplicantPDF $pdf * @param \Jazzee\Entity\Page $page * @param \Jazzee\Entity\Answer $answer */ protected function renderPdfAnswerFromArray(\Jazzee\Entity\Page $page, \Jazzee\ApplicantPDF $pdf, array $answerData) { if (!empty($answerData['elements'])) { $pdf->addText("{$this->_applicationPage->getPage()->getVar('branchingElementLabel')}: ", 'b'); $pdf->addText("{$answerData['elements'][0]['displayValue']}\n", 'p'); foreach ($page->getChildren() as $childPage) { $jazzeePage = $childPage->getApplicationPageJazzeePage(); $jazzeePage->setController($this->_controller); $jazzeePage->renderPdfAnswerFromArray($childPage, $pdf, $answerData); } if ($attachment = $answerData['attachment']) { $pdf->addPdf(\Jazzee\Globals::getFileStore()->getFileContents($attachment["attachmentHash"])); } } else { if (!empty($answerData['children'][0])) { $childAnswer = $answerData['children'][0]; $childPage = $page->getChildById($childAnswer['page_id']); $pdf->addText("{$this->_applicationPage->getPage()->getVar('branchingElementLabel')}: ", 'b'); $pdf->addText("{$childPage->getTitle()}\n", 'p'); $jazzeePage = $childPage->getApplicationPageJazzeePage(); $jazzeePage->setController($this->_controller); $jazzeePage->renderPdfAnswerFromArray($childPage, $pdf, $childAnswer); } } }