Example #1
0
 /**
  * Return the data of this content.
  *
  * @param  string  $var        The element to be return, if NULL, all datas are returned
  * @param  Boolean $forceArray Force the return as array
  *
  * @return mixed Could be either NULL or one or array of scalar, array, AbstractClassContent instance
  * @throws \BackBee\AutoLoader\Exception\ClassNotFoundException Occurs if the class of a subcontent can not be loaded
  */
 public function getData($var = null, $forceArray = false)
 {
     try {
         return parent::getData($var, $forceArray);
     } catch (UnknownPropertyException $e) {
         return;
     }
 }
 /**
  * Executes revert action on content and its draft.
  *
  * @param  AbstractClassContent $content
  * @param  Revision             $draft
  * @param  array                $data
  *
  * @return ClassContentManager
  */
 private function executeRevert(AbstractClassContent $content, Revision $draft, array $data)
 {
     $content->setDraft(null);
     if ($content instanceof ContentSet) {
         if (isset($data['elements']) && true === $data['elements']) {
             $draft->clear();
             foreach ($content->getData() as $element) {
                 if ($element instanceof AbstractClassContent) {
                     $draft->push($element);
                 }
             }
         }
     } else {
         foreach ($content->getData() as $key => $element) {
             if (isset($data['elements']) && in_array($key, $data['elements'])) {
                 $draft->{$key} = $content->{$key};
             }
             if (in_array('Element\\Keyword', $content->getAccept()[$key])) {
                 $this->entityManager->getRepository('BackBee\\ClassContent\\Element\\Keyword')->cleanKeywordLinks($content, $element);
             }
         }
     }
     if (isset($data['parameters'])) {
         foreach ($content->getDefaultParams() as $key => $params) {
             if (in_array($key, $data['parameters'])) {
                 $draft->setParam($key, $content->getParamValue($key));
             }
         }
     }
     return $this;
 }
 /**
  * Executes revert action on content and its draft.
  *
  * @param  AbstractClassContent $content
  * @param  Revision      $draft
  * @param  array         $data
  * @return self
  */
 private function executeRevert(AbstractClassContent $content, Revision $draft, array $data)
 {
     if ($content instanceof ContentSet) {
         if (isset($data['elements']) && true === $data['elements']) {
             $draft->clear();
             foreach ($content->getData() as $element) {
                 $draft->push($element);
             }
         }
     } else {
         foreach ($content->getData() as $key => $element) {
             if (isset($data['elements']) && in_array($key, $data['elements'])) {
                 $draft->{$key} = $content->{$key};
             }
         }
     }
     if (isset($data['parameters'])) {
         foreach ($content->getDefaultParams() as $key => $params) {
             if (in_array($key, $data['parameters'])) {
                 $draft->setParam($key, $content->getParamValue($key));
             }
         }
     }
     return $this;
 }
Example #4
0
 /**
  * Auto commit content put or post in the library.
  *
  * @param AbstractClassContent $content
  */
 private function autoCommitContent(AbstractClassContent $content)
 {
     // Commit subelement of the Media content
     foreach ($content->getData() as $subcontent) {
         if (!$subcontent instanceof AbstractClassContent) {
             continue;
         }
         $this->commit($subcontent);
     }
     // Commit the Media content itself
     $this->commit($content);
 }
Example #5
0
 public function tryResolveParentObject(AbstractClassContent $parent, AbstractClassContent $element)
 {
     foreach ($parent->getData() as $key => $values) {
         if (!is_array($values)) {
             $values = array($values);
         }
         foreach ($values as $value) {
             if ($value instanceof AbstractClassContent) {
                 if (!$value->isLoaded()) {
                     // try to load subcontent
                     if (null !== ($subcontent = $this->getApplication()->getEntityManager()->getRepository(\Symfony\Component\Security\Core\Util\ClassUtils::getRealClass($value))->load($value, $this->getRenderer()->getApplication()->getBBUserToken()))) {
                         $value = $subcontent;
                     }
                 }
                 if ($element->equals($value)) {
                     $this->__currentelement = $key;
                     $this->__object = $parent;
                     $this->_parentuid = $parent->getUid();
                 } else {
                     $this->tryResolveParentObject($value, $element);
                 }
             }
             if (null !== $this->__currentelement) {
                 break;
             }
         }
         if (null !== $this->__currentelement) {
             break;
         }
     }
 }
 /**
  * Enables provided content by set its revision to 1 and
  * its state to 1001 (STATE_NORMAL) so it can be displayed in front.
  *
  * @param  AbstractClassContent $content
  * @return self
  */
 protected function enableContent(AbstractClassContent $content)
 {
     $content->setRevision(1)->setState(AbstractClassContent::STATE_NORMAL);
     foreach ($content->getData() as $element) {
         if ($element instanceof AbstractClassContent) {
             $this->enableContent($element);
         }
     }
     return $this;
 }