Example #1
0
 /**
  * Update all of the elements on a page with an array of elements passed in
  * @param \Jazzee\Entity\Page $page
  * @param array $elements
  */
 protected function savePageElements(\Jazzee\Entity\Page $page, array $elements)
 {
     $htmlPurifier = $this->getFilter();
     foreach ($elements as $e) {
         switch ($e->status) {
             case 'delete':
                 //don't try and delete temporary elements
                 if ($element = $page->getElementByID($e->id)) {
                     if ($this->_em->getRepository('\\Jazzee\\Entity\\Page')->hasAnswers($page)) {
                         $this->setLayoutVar('status', 'error');
                         $this->addMessage('error', $element->getTitle() . '  could not be deleted becuase it has applicant information associated with it.');
                     } else {
                         $this->_em->remove($element);
                         $page->getElements()->remove($element->getId());
                     }
                 }
                 break;
             case 'new':
                 $element = new \Jazzee\Entity\Element();
                 $page->addElement($element);
                 $element->setType($this->_em->getRepository('\\Jazzee\\Entity\\ElementType')->find($e->typeId));
                 $element->setFixedId(empty($e->fixedId) ? null : $e->fixedId);
             default:
                 if (!isset($element)) {
                     $element = $page->getElementByID($e->id);
                 }
                 $element->setWeight($e->weight);
                 $element->setTitle($htmlPurifier->purify($e->title));
                 $element->setName(empty($e->name) ? null : $htmlPurifier->purify($e->name));
                 $element->setFormat(empty($e->format) ? null : $htmlPurifier->purify($e->format));
                 $element->setInstructions(empty($e->instructions) ? null : $htmlPurifier->purify($e->instructions));
                 $element->setDefaultValue(empty($e->defaultValue) ? null : $htmlPurifier->purify($e->defaultValue));
                 if ($e->isRequired) {
                     $element->required();
                 } else {
                     $element->optional();
                 }
                 $element->setMin(empty($e->min) ? null : $e->min);
                 $element->setMax(empty($e->max) ? null : $e->max);
                 $this->saveElementListItems($element, $e->list);
                 $this->_em->persist($element);
         }
         unset($element);
         //this isn't for memory management if it stays set it gets re-used at the begning of the default switch
     }
 }