Example #1
0
 /**
  * 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();
 }