/** * Create a generic page to use in a preview * @param \Jazzee\Entity\Page $page * @param stdClass $data */ protected function genericPage(\Jazzee\Entity\Page $page, \stdClass $data) { $page->tempId(); $page->notGlobal(); $page->setType($this->_em->getRepository('\\Jazzee\\Entity\\PageType')->find($data->typeId)); //create a temporary application page so we can access the JazzeePage and do setup if ($data->status == 'new') { $applicationPage = new \Jazzee\Entity\ApplicationPage(); $applicationPage->setPage($page); $applicationPage->getJazzeePage()->setController($this); $applicationPage->getJazzeePage()->setupNewPage(); unset($applicationPage); //give any created elements a temporary id so they will display in the form foreach ($page->getElements() as $element) { $element->tempId(); foreach ($element->getListItems() as $item) { $item->tempId(); } } } $page->setTitle($data->title); $page->setMin(empty($data->min) ? null : $data->min); $page->setMax(empty($data->max) ? null : $data->max); if ($data->isRequired) { $page->required(); } else { $page->optional(); } if ($data->answerStatusDisplay) { $page->showAnswerStatus(); } else { $page->hideAnswerStatus(); } $page->setInstructions(empty($data->instructions) ? null : $data->instructions); $page->setLeadingText(empty($data->leadingText) ? null : $data->leadingText); $page->setTrailingText(empty($data->trailingText) ? null : $data->trailingText); foreach ($data->variables as $v) { $page->setVar($v->name, $v->value); } foreach ($data->elements as $obj) { $element = new \Jazzee\Entity\Element(); $this->genericElement($element, $obj); $page->addElement($element); } foreach ($data->children as $obj) { $childPage = new \Jazzee\Entity\Page(); $this->genericPage($childPage, $obj); $page->addChild($childPage); } $this->_em->clear(); }