Пример #1
0
 /**
  * Create the school choice form
  */
 public function setupNewPage()
 {
     $entityManager = $this->_controller->getEntityManager();
     $types = $entityManager->getRepository('Jazzee\\Entity\\ElementType')->findAll();
     $elementTypes = array();
     foreach ($types as $type) {
         $elementTypes[$type->getClass()] = $type;
     }
     $standardPageType = $entityManager->getRepository('\\Jazzee\\Entity\\PageType')->findOneBy(array('class' => '\\Jazzee\\Page\\Standard'));
     $newSchool = new \Jazzee\Entity\Page();
     $newSchool->setType($standardPageType);
     $newSchool->setFixedId(self::PAGE_FID_NEWSCHOOL);
     $newSchool->setTitle('New School');
     $this->_applicationPage->getPage()->addChild($newSchool);
     $entityManager->persist($newSchool);
     $elements = array(array('fid' => self::ELEMENT_FID_NAME, 'title' => 'School Name', 'max' => 255, 'required' => true), array('fid' => self::ELEMENT_FID_CITY, 'title' => 'City', 'max' => 64, 'required' => true), array('fid' => self::ELEMENT_FID_STATE, 'title' => 'State or Province', 'max' => 64, 'required' => false), array('fid' => self::ELEMENT_FID_COUNTRY, 'title' => 'Country', 'max' => 64, 'required' => true), array('fid' => self::ELEMENT_FID_POSTALCODE, 'title' => 'Postal Code', 'max' => 10, 'required' => false));
     $count = 1;
     foreach ($elements as $arr) {
         $element = new \Jazzee\Entity\Element();
         $element->setType($elementTypes['\\Jazzee\\Element\\TextInput']);
         $element->setTitle($arr['title']);
         if ($arr['required']) {
             $element->required();
         } else {
             $element->optional();
         }
         $element->setWeight($count++);
         $element->setMax($arr['max']);
         $element->setFixedId($arr['fid']);
         $newSchool->addElement($element);
         $entityManager->persist($element);
     }
     $defaultVars = array('schoolListType' => 'full', 'partialSchoolList' => '');
     foreach ($defaultVars as $name => $value) {
         $var = $this->_applicationPage->getPage()->setVar($name, $value);
         $entityManager->persist($var);
     }
 }
Пример #2
0
 /**
  * Copy a Page
  * @param \Doctrine\ORM\EntityManager $em
  * @param \Jazzee\Entity\Page $page
  * @return \Jazzee\Entity\Page
  */
 public function copyPage(\Doctrine\ORM\EntityManager $em, \Jazzee\Entity\Page $page)
 {
     $newPage = new \Jazzee\Entity\Page();
     $newPage->setTitle($page->getTitle());
     $newPage->setMax($page->getMax());
     $newPage->setInstructions($page->getInstructions());
     $newPage->setLeadingText($page->getLeadingText());
     $newPage->setTrailingText($page->getTrailingText());
     $newPage->setFixedId($page->getFixedId());
     $newPage->setType($em->getRepository('\\Jazzee\\Entity\\PageType')->findOneByClass($page->getType()->getClass()));
     if ($page->isGlobal()) {
         $newPage->makeGlobal();
     } else {
         $newPage->notGlobal();
     }
     if ($page->isRequired()) {
         $newPage->required();
     } else {
         $newPage->optional();
     }
     foreach ($page->getChildren() as $child) {
         $newPage->addChild($this->copyPage($em, $child));
     }
     foreach ($page->getVariables() as $variable) {
         $newPage->setVar($variable->getName(), $variable->getValue());
     }
     foreach ($newPage->getVariables() as $variable) {
         $em->persist($variable);
     }
     foreach ($page->getElements() as $element) {
         $newElement = new \Jazzee\Entity\Element();
         $newElement->setType($em->getRepository('\\Jazzee\\Entity\\ElementType')->findOneByClass($element->getType()->getClass()));
         $newElement->setWeight($element->getWeight());
         $newElement->setFixedId($element->getFixedId());
         $newElement->setTitle($element->getTitle());
         $newElement->setMax($element->getMax());
         $newElement->setMin($element->getMin());
         $newElement->setInstructions($element->getInstructions());
         $newElement->setDefaultValue($element->getDefaultValue());
         $newElement->setFormat($element->getFormat());
         if ($element->isRequired()) {
             $newElement->required();
         } else {
             $newElement->optional();
         }
         foreach ($element->getListItems() as $item) {
             $newItem = new \Jazzee\Entity\ElementListItem();
             $newItem->setValue($item->getValue());
             $newItem->setWeight($item->getWeight());
             $newElement->addItem($newItem);
             $em->persist($newItem);
         }
         $em->persist($newElement);
         $newPage->addElement($newElement);
     }
     $em->persist($newPage);
     return $newPage;
 }